Hardware Reference
In-Depth Information
Freigabesignals lange genug stabil anliegt und dass der Freigabeimpuls aus-
reichend lang ist. Das Simulationsmodell in Abb. 2.21 nähert das skizzierte
Verhalten wie folgt an. Wenn das Freigabesignal nicht inaktiv ist und der ge-
speicherte Wert vom Eingabewert abweicht, wird der gespeicherte Wert nach
einer Haltezeit t
h
auf ungültig gesetzt. Wenn das Freigabesignal aktiv ist, wird
dem Zustandssignal zusätzlich mit dem Transportverzögerungsmodell nach ei-
ner Verzögerungszeit t
d
der Eingabewert zugewiesen. Zusätzlich werden die
Zeiten zwischen der steigenden und der fallenden Flanke des Freigabesignals
und die Zeiten seit der letzten Eingabedatenänderung vor der fallenden Flan-
ke des Freigabesignals überprüft. Wenn sie kleiner als der Zeitparameter t
s
sind, wird der gespeicherte Zustand nachträglich invalidiert.
signal
E:std_logic;
signal
x, y:tTyp;
...
process
(x, E)
variable
tE:delay_length;
begin
if
E/=
'0'
and
y/=x
then
y <=
ungültig after
th;
end if
;
if
E='1'
then
y <=
transport
x
after
td;
end if
;
-- Kontrolle der Vorhaltebedingungen
if
rising_edge(E) then
tE :=now;
elsif
falling_edge(E)
and
(now-tE<ts
or
x'last_event<ts)
then
y <=
ungültig
;
end if
;
end process
;
tTyp
tTyp
L
x y
x
E
E
E
1
0
>t
s
>t
s
w
1
w
2
x
t
d
t
d
t
h
t
h
w
0
w
2
w
1
y
t
d
t
h
Haltezeit
Verz¨ogerungszeit
t
s
Vorhaltezeit
E
Freigabeeingang
tTypBit-oderBitvek-
tortyp
Wertung¨ultig
⇒
Web-ProjektP2.1/TestLatch.vhdl
Abb. 2.21. Simulationsmodell, Zeitverhalten und Symbol eines Latches
In der Synthesebeschreibung für ein Latch entfallen wieder die Beschrei-
bung des Zeitverhaltens und die Modellierung der Gültigkeit. Übrig bleibt eine
bedingte Signalzuweisung in einem Prozess mit allen Signalen in der Weckliste:
process
(x, E)
begin
if
E=
'1'
then
y <= x;
end if
;
end process
;