11.10.2013 Aufrufe

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Hardware</strong>-<strong>Entwurf</strong> <strong>mit</strong> <strong>VHDL</strong><br />

Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik<br />

- Beispiel:<br />

SIGNAL s1 : bit_vector (7 DOWNTO 0) ;<br />

. .<br />

s1 ’1’ ) ; -- die unteren 4 Bits werden auf ’1’ gesetzt<br />

• „Named association“:<br />

- Die Bezeichnung „named“ bezieht sich auf den Index der Elemente.<br />

- Bei der „named association“ werden die einzelnen Elemente des Zieloperanden in beliebiger<br />

Reihenfolge direkt angesprochen. Der OTHERS-Operator muß immer zuletzt stehen.<br />

- Mit dem ’’|’’-Zeichen können mehrere einzelne, nicht aufeinanderfolgende Elementanweisungen<br />

zusammengefaßt werden.<br />

- Zur Auswahl der Elemente im Zieloperanden gibt es ansonsten noch folgende Möglichkeiten:<br />

1. Direkte Angabe des Indexes (Einzelelement),<br />

2. Bereiche angeben durch: Oberer_Index DOWNTO Unterer_Index,<br />

3. Bereiche angeben durch: Unterer_Index TO Oberer_Index,<br />

4. Alle übrigen <strong>mit</strong> dem Schlüsselwort OTHERS auswählen.<br />

- Eine Mischung von „positional association“ und „named association“ ist nicht erlaubt.<br />

- Beispiele:<br />

TYPE int_vector IS ARRAY (7 DOWNTO 0) OF integer;<br />

-- Eindimensionaler Vektor von Integer-Werten<br />

CONSTANT weite : integer := 12;-- ganzzahlige Konstante<br />

. . .<br />

VARIABLE a, b, c : int_vector; -- drei Variablen vom Typ ’’int_vector’’<br />

. . .<br />

-- named association <strong>mit</strong> verschiedenen Zuweisungsarten:<br />

a := (5 TO 7 => 3+weite , 3 => 100 , 2 | 4 => 16, OTHERS => 0);<br />

-- Ergebnis: a hat den Wert (15, 15, 15, 16, 100, 16, 0, 0)<br />

-- Fehlerfall: Index liegt außerhalb des gültigen Bereichs<br />

b := (9 DOWNTO 2 => 25, OTHERS => 1);<br />

-- Fehlerfall: Mischung von positional association und named association<br />

c := (22, 12, 15, 0, 2 => 225, OTHERS => 1);<br />

<strong>VHDL</strong>-GRUNDLAGEN 36

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!