Hardware Reference
In-Depth Information
(
BS
- Bezeichner der Objekte, denen etwas zugeordnet wird;
BZ
- Bezeichner
der zugeordneten Objekte, vgl. Abschnitt 1.2.5).
Bei Feldern sind die Bezeichner der Objekte, denen etwas zugeordnet wird,
Indexwerte oder Indexbereiche. Im folgenden Beispiel werden den Elementen
eines Zeichenkettenfeldes mit dem Indexbereich »1 bis 3« verschiedene Zei-
chenkettenwerte zugeordnet. Positionsbasiert wird dem ersten Feldelement der
erste Wert der Zuordnungsliste, dem zweiten Feldelement der zweite Wert etc.
zugeordnet:
type tTextFeld is array ( 1 to 3 ) ofstring( 1 to 5 );
constant TextFeld: tTextFeld :=( "Text1" , "Text2" , "Text3" );
Namensbasiert werden der Indexwert und der Zuordnungsoperator dem zuge-
ordneten Datenobjekt vorangestellt:
constant TextFeld:tTextFeld :=( 1 => "Text1" , 2 => "Text2" , 3 => "Text3" );
Bei der namensbasierten Zuordnung können Elemente, denen dasselbe Objekt
zugeordnet wird, zusammengefasst werden. In der folgenden Anweisung wird
dem ersten Feldelement »Text1« und allen anderen Feldelementen »Text2«
zugeordnet:
TextFeld := ( 1 => "Text1" , others => "Text2" );
Die Initialisierung eines Bitvektors vom Typ std_logic_vector mit dem
Pseudo-Wert »ungültig« wird üblicherweise als Zuordnung von »X« an »alle
anderen«, d.h an alle Elemente, beschrieben:
variable x:std_logic_vector(...) :=( others => 'X' );
Nach diesem Schema werden Vektoren in Unterprogrammen, deren Länge erst
beim Aufruf festgelegt wird, initialisiert.
Zuordnungslisten - positions- oder namensbasiert - können auch in Varia-
blen- und Signalzuweisung zur Zusammenfassung mehrerer Anweisungen ge-
nutzt werden. Dazu werden mehrere Ausdrücke oder Signale auf der rechten
Zuweisungsseite zu einem Feld oder Verbund zusammengefasst und/oder die
Ergebniselemente auf der linken Seite unterschiedlichen Variablen oder Signa-
len zugeordnet:
variable x:std_logic_vector( 1 downto 0 );
variable a, b, c, d, e, f:std_logic;
...
x := ( 0 =>a, 1 =>b); -- Vektortyp := Zuordnungsliste
(c, d) := x; -- Zuordnungsliste := Vektortyp
-- Zuordnungsliste := Zuordnungsliste
(e, f) :=std_logic_vector'( 1 => a and b, 0 => a or b);
) WEB-Projekt:P3.2/TestZL.vhdl
 
Search WWH ::




Custom Search