Hardware Reference
In-Depth Information
In den nachfolgenden Beispielen werden in den Abtastprozessen die Mel-
dungen weggelassen und für die Nachhaltezeit t
n
= 0 unterstellt. Das verein-
facht die Registerbeschreibung auf folgende Beschreibungsschablone:
6:
process
(T)
7:
begin
8:
if
rising_edge(T)
then
9:
if
x'last_event>ts
then
10: x_del <=
ungültig after
thr, x
after
tdr;
11:
else
12: x_del <=
ungültig after
thr;
13:
end if
;
14:
end if
;
15:
end process
;
1.4.3 Verarbeitung plus Abtastung
Mit Abtastprozessen werden nicht nur Register, sondern auch kombinatori-
sche Schaltungen, deren Ausgaben abgetastet oder kombinatorische Schaltun-
gen, die abgetastete Signale verarbeiten, modelliert. Abbildung 1.48 zeigt eine
kombinatorische Schaltung mit einem Abtastregister am Ausgang.
t
hf
,t
df
t
s
t
hr
,t
dr
T
t
hf
t
df
+t
s
y
+
f(
x
)
x
y
process
(T)
begin
if
rising_edge(T)
then
if
x'delayed(thf)'last_event>tdf+ts-thf
then
y <=
ungültig after
thr,
f(x) after
tdr;
else
y <=
ungültig after
thr;
end if
;
end if
;
end process
;
w
i
x
T
t
s
y
+
f(w
i
)
t
dr
t
hr
f(w
i
)
y
f(w
i−
1
)
notwendigesG¨ultigkeitsfenster
f(
x
)
Beschreibungderkombinatorischen
Funktion,z.B.durcheinenAusdruck
Abb. 1.48. Verarbeitung plus Ausgabeabtastung
Der Prozess wird wie der eines Registers bei jeder Taktänderung geweckt.
Zur Kontrolle der Vorhaltebedingung wird das Eingabesignal
mit dem At-
tribut 'delayed(...) um die Haltezeit der vorgelagerten kombinatorischen
Schaltung verzögert und für das verzögerte Signal kontrolliert, dass seine letz-
te Änderung mindestens eine Zeit t
df
+ t
s
t
hf
zurückliegt. Wenn die Vorhal-
tebedingung erfüllt ist, übernimmt der Registerausgang nach einer Haltezeit
den Pseudo-Wert »ungültig« und nach der Verzögerungszeit den abgetasteten
Funktionswert. Sonst übernimmt der Registerausgang nur den Wert »ungül-
tig« und behält ihn bis zur nächsten aktiven Taktflanke. Die kombinatorische
x