112
2 Spezifikation und Modellierung
gleichen Ziel: sie stellt genügend Informationen über eine Komponente zur Verfügung, die zu dem Zeitpunkt evtl. noch nicht in der VHDL-Datenbank gespeichert ist
(was bei sogenannten Top-Down-Designs vorkommen kann). Ab der 1993er-Version
von VHDL sind solche Deklarationen nicht mehr notwendig, wenn die benötigten
Komponenten bereits in der Komponentendatenbank abgelegt wurden.
Verbindungen zwischen lokalen Komponenten und den Ports der Entity werden
mit Hilfe von Port Maps beschrieben. Der folgende VHDL-Code beschreibt den
Strukturrumpf aus Abb. 2.69:
architecture structure of fuuu_adder is
-- Architektur-Kopf
component haaf_adder
port (in1, in2: in BIT; carry: out BIT; sum: out BIT);
end component;
component or_gate
port (in1, in2: in BIT; o: out BIT);
end component;
signaa x, y, z: BIT;
-- -okaae Signaae
begin
-- port map
i1: haaf_adder
-- Instanz i1 vom Typ haaf_adder
port map (a, b, x, y);
-- Verbindungen zwischen Ports
i2: haaf_adder port map (y, carry_in, z, sum);
-- Instanz i2
i3: or_gate
port map (x, z, carry_out);
end structure;
∇
Zuweisungen
Beispiel 2.31 enthält mehrere Zuweisungen. Zuweisungen sind Spezialfälle von
Anweisungen. In VHDL gibt es zwei verschiedene Arten von Zuweisungen:
• Variablenzuweisungen: Die Syntax für Variablenzuweisungen lautet
Variable := Ausdruck
Wenn der Kontrollfluss eine solche Zuweisung erreicht, wird der entsprechende
Ausdruck berechnet und der Variablen zugewiesen. Diese Zuweisungen verhalten
sich wie Zuweisungen in normalen Programmiersprachen.
• Signalzuweisungen: Signalzuweisungen, die bereits auf den Seiten 97 und 111
erwähnt wurden, werden nebenläufig ausgeführt. Signale und Signalzuweisungen
wurden eingeführt, um elektrische Signale realer Hardwaresysteme modellieren
zu können. Signale ordnen Werte bestimmten Zeitpunkten zu. Diese Abbildung
wird in VHDL durch Signalverläufe dargestellt, die aus Signalzuweisungen berechnet werden. Die Syntax für Signalzuweisungen lautet
signal <= expression;
signal <= transport expression after delay;
signal <= expression after delay;
signal <= reject time inertiaa expression after delay;
2 Spezifikation und Modellierung
gleichen Ziel: sie stellt genügend Informationen über eine Komponente zur Verfügung, die zu dem Zeitpunkt evtl. noch nicht in der VHDL-Datenbank gespeichert ist
(was bei sogenannten Top-Down-Designs vorkommen kann). Ab der 1993er-Version
von VHDL sind solche Deklarationen nicht mehr notwendig, wenn die benötigten
Komponenten bereits in der Komponentendatenbank abgelegt wurden.
Verbindungen zwischen lokalen Komponenten und den Ports der Entity werden
mit Hilfe von Port Maps beschrieben. Der folgende VHDL-Code beschreibt den
Strukturrumpf aus Abb. 2.69:
architecture structure of fuuu_adder is
-- Architektur-Kopf
component haaf_adder
port (in1, in2: in BIT; carry: out BIT; sum: out BIT);
end component;
component or_gate
port (in1, in2: in BIT; o: out BIT);
end component;
signaa x, y, z: BIT;
-- -okaae Signaae
begin
-- port map
i1: haaf_adder
-- Instanz i1 vom Typ haaf_adder
port map (a, b, x, y);
-- Verbindungen zwischen Ports
i2: haaf_adder port map (y, carry_in, z, sum);
-- Instanz i2
i3: or_gate
port map (x, z, carry_out);
end structure;
∇
Zuweisungen
Beispiel 2.31 enthält mehrere Zuweisungen. Zuweisungen sind Spezialfälle von
Anweisungen. In VHDL gibt es zwei verschiedene Arten von Zuweisungen:
• Variablenzuweisungen: Die Syntax für Variablenzuweisungen lautet
Variable := Ausdruck
Wenn der Kontrollfluss eine solche Zuweisung erreicht, wird der entsprechende
Ausdruck berechnet und der Variablen zugewiesen. Diese Zuweisungen verhalten
sich wie Zuweisungen in normalen Programmiersprachen.
• Signalzuweisungen: Signalzuweisungen, die bereits auf den Seiten 97 und 111
erwähnt wurden, werden nebenläufig ausgeführt. Signale und Signalzuweisungen
wurden eingeführt, um elektrische Signale realer Hardwaresysteme modellieren
zu können. Signale ordnen Werte bestimmten Zeitpunkten zu. Diese Abbildung
wird in VHDL durch Signalverläufe dargestellt, die aus Signalzuweisungen berechnet werden. Die Syntax für Signalzuweisungen lautet
signal <= expression;
signal <= transport expression after delay;
signal <= expression after delay;
signal <= reject time inertiaa expression after delay;
