Hardware Reference
In-Depth Information
signal
W:std_logic;
signal
a:std_logic_vector(
1
downto
0
);
signal
x, s, q, y0, y1, y2, y3, s:
std_logic_vector(
3
downto
0
);
...
Dec:
process
(a)
begin
case
a
is
when
"00"
=> s <=
"0001"
;
when
"01"
=> s <=
"0010"
;
when
"10"
=> s <=
"0100"
;
when others
=> s <=
"1000"
;
end case
;
end process
;
Und:
process
(s, W)
begin
if
W=
'1'
then
q <= s;
else
q <=
"0000"
;
end if
;
end process
;
Latch0:
process
(x, q(
0
))
begin
if
q(0)=
'1'
then
y0<=x;
end if
;
end process
;
x
x
y
0
q
0
&
E
s
0
s
1
s
2
s
3
x
y
1
q
1
&
E
a
Dec
x
y
2
q
2
&
E
x
y
3
q
3
&
E
W
a)
a
s
0
s
1
11
00 10 01 11
0
1
0
1
0
W
1
q
0
q
1
1
0
1
0
b)
...
Latch3:
process
(x, q(
3
))
begin
if
q(3)=
'1'
then
y3<=x;
end if
;
end process
;
c)
⇒
Web-Projekt/P2.1/LatchBS.vhdl
Abb. 2.23. Adressierbarer Blockspeicher a) Schaltung mit Latches b) Zeitverläufe
für die Bildung der Freigabesignale c) VHDL-Beschreibung
UND-Verknüpfungen mit der Decoderfunktion zu einem Funktionsblock zu-
sammengefasst werden, ist nicht mehr garantiert, dass bei Adresssignalwech-
seln bei inaktivem Schreibsignal alle Latch-Freigabesignale inaktiv bleiben.
Die Synthesebeschreibung muss nicht nur die Funktion, sondern auch die Ziel-
struktur beinhalten. In Abb. 2.23 c beschreibt der erste Prozess den Decoder,
der zweite die UND-Gatter und die restlichen vier Prozesse beschreiben die
Latches. Zusätzlich ist dem Syntheseprogramm mitzuteilen, dass es die vorge-
gebene Struktur nicht zu Optimierungszwecken ändern darf. Letzteres erfolgt
mit Hilfe von Constraints (siehe nächster Abschnitt). Durch die zusätzlich er-
forderlichen Strukturvorgaben ist der Entwurf von Schaltungen mit Latches
deutlich komplizierter als der mit Registern.
Auch in Abtastprozessen lassen sich Funktionen beschreiben, die die Syn-
these möglicherweise mit Latches nachbildet. Das sind z.B. bedingte Varia-
blenzuweisungen, bei denen der zugewiesene Variablenwert nur nach der Zu-
weisung ausgewertet wird. In der VHDL-Beschreibung in Abb. 2.24 a wird
einer Variablen v, wenn eine Bedingung b erfüllt ist, der Wert eines Signals c
zugewiesen. Die nachfolgende Anweisung beschreibt eine EXOR-Verknüpfung
des Variablenwertes und eine Ergebniszuweisung an ein Signal. Bei der Nach-