Komponenteninstantiierung

Nebenläufige Anweisungen – Komponenteninstantiierung

ENTITY rs_ff IS

PORT (r_bar, s_bar : IN bit := '0';
q, q_bar : INOUT bit);

END rs_ff;


---------------------------------------------------

ARCHITECTURE structural OF rs_ff IS

-- Komponentendeklaration -------------
COMPONENT nand2_socket
PORT (a, b : IN bit; y : OUT bit);
END COMPONENT;

BEGIN

-- Komponenteninstantiierung ----------
nand_a : nand2_socket
PORT MAP (a => r_bar, b => q, y => q_bar);
nand_b : nand2_socket
PORT MAP (a => q_bar, b => s_bar, y => q);



END structural;


---------------------------------------------------

CONFIGURATION rs_ff_config OF rs_ff IS

FOR structural

-- Komponentenkonfiguration --------
FOR ALL : nand2_socket
USE ENTITY work.nand2 (number_one);
-- verwendet Default-PORT MAP
-- und Default-GENERIC MAP
END FOR;

END FOR;

END rs_ff_config;
Strukturale Modellierung bedeutet im allgemeinen die Verwendung (=Instantiierung) und das Verdrahten von Komponenten in Form einer Netzliste.

Als Beispiel soll die strukturale Modellierung eines RS-Flip-Flops dienen. Dazu wird eine Komponentendeklaration 'nand2_socket', zwei Instantiierungen 'nand_a' und 'nand_b' und eine Komponentenkonfiguration 'rs_ff_config benötigt.

Bei der Instantiierung erhält jede Komponente zwingend einen eigenen Referenznamen. Die Komponenten werden über die Port-Map-Liste verdrahtet; eine Komponente wird aktiviert, wenn ein Ereignis auf einem Signal in der Port-Map-Liste auftritt.