ARCHITECTURE

Syntaktische Rahmen – ARCHITECTURE

ENTITY nand2 IS
PORT (s1, s2 : IN bit;
s3 : OUT bit);
END nand2;

ARCHITECTURE behavioral1 OF nand2 IS

BEGIN

s3 <= s1 NAND s2 AFTER 2.3 ns;
END behavioral1;
Bei dieser Architektur handelt es sich um eine einfache Verhaltensbeschreibung für ein NAND-Gatter.

Es sind keine lokalen Deklarationen innerhalb der Architektur (zwischen ARCHITECTURE ... und BEGIN) vorhanden.

ARCHITECTURE behavioral2 OF nand2 IS

SIGNAL sig_int : bit;
BEGIN

sig_int <= s1 AND s2 AFTER 1.2 ns;
s3 <= NOT sig_int AFTER 1.1 ns;
END behavioral2;
Bei dieser Architektur wird anstelle der Funktion NAND eine zweistufige Realisierung mit AND und INV benutzt.

Daher wird ein internes Zwischensignal (sig_int) benötigt, das vor BEGIN lokal innerhalb der Architektur deklariert wird.

ARCHITECTURE structural OF nand2 IS

COMPONENT inv
PORT (a : IN bit;
y : OUT bit);
END COMPONENT;
COMPONENT and
PORT (a, b : IN bit;
y : OUT bit);
END COMPONENT;
SIGNAL sig_int : bit;
BEGIN

instance1 : and PORT MAP (s1,s2,sig_int);
instance2 : inv PORT MAP (y=>s3,a=>sig_int);
END structural;
Hier handelt es sich nun um eine strukturale Architektur, welche die NAND-Funktion mittels eines AND-Gatters und eines Inverters realisiert.

Neben dem internen Signal müssen hier auch die COMPONENTs deklariert werden, sofern sie nicht aus einem vorbereiteten Package eingebunden werden.