Hardware Reference
In-Depth Information
unterscheidung wird durch einen 4-Bit-Multiplexer am Ende des Datenflusses
nachgebildet.
Zuweisungen an unterschiedliche Variablen oder Signale in einer Auswahl-
anweisung beschreiben mehrere Multiplexer. Abbildung 2.13 zeigt eine Aus-
wahlanweisung mit Zuweisungen an zwei Variablen. Beiden wird, damit die
Auswahlanweisung kein Speicherverhalten beschreibt, vor der Auswahlanwei-
sung ein Standardwert zugewiesen. Mit »|« werden mehrere Auswahlwerte
zusammengefasst. Die Synthese findet für die Variable u einen Multiplexer,
der zwischen den Eingabegrößen
undu
sonst
umschaltet, und fürveinen
Multiplexer, der zwischen den Eingabegrößen
a
,
b
c
,
d
undv
sonst
umschaltet.
u:=u
sonst
;
v:=v
sonst
;
case
when
when
when
endcase;
sis
w1 =
>
=
>
=
>
w2
u:=a;
u:=b;
w3
w4
v:=c;
v:=d;
Mux1
Mux2
t1
t2
t2
t2
a
b
c
w1
t1
w2
w3
t1
t2
w3
sonst
u
d
w4
v
t1
sonst
u
sonst
v
sonst
s
{
w1,w2,w3,...
}
t1,t2-beliebigeBit-oderBitvektortypen
Abb. 2.13. Auswahlanweisung zur Beschreibung mehrerer Multiplexer
Abbildung 2.14 zeigt als abschließendes Beispiel die Beschreibung einer
Wertetabelle mit einer Auswahlanweisung. Der Auswahlausdruck ist ein Bit-
vektor. Alle Eingabewerte, denen der Ausgabewert »1« zugeordnet ist, stehen
im ersten Auswahlfall. Alle anderen Eingabewerte, für die der Ausgabewert
»0« ist, erfasst der Sonst-Fall.
signal
x:std_logic_vector(
3
downto
0
);
signal
y:std_logic;
...
process
(x)
begin
case
x
is
when
"0001"|"0010"
|
"0100"
|
"1000"
=> y <=
'1'
;
when others
x
3
y
0
x
2
x
1
x
0
0
0
1
1
1
1
1
0
0
0
0
1
0
00
0
1
10
0
sonst
=> y <=
'0'
;
end case
;
end process
;
⇒
Web-Projekt:P2.1/SynthWTab.vhdl
Abb. 2.14. Beschreibung einer Wertetabelle mit einer Auswahlanweisung