Hardware-Entwurf mit VHDL
Hardware-Entwurf mit VHDL
Hardware-Entwurf mit VHDL
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