Hardware Reference
In-Depth Information
ohne Berücksichtigung von Verzögerungen. Der Registerprozess hat, damit er
auch zur Initialisierung geweckt wird, zusätzlich das Initialisierungssignal in
der Weckliste. Bei einer Aktivierung des Initialisierungssignals wird der An-
fangswert - eine vordefinierte Konstante aus Nullen und Einsen - und sonst
bei jeder aktiven Taktflanke der Eingabewert zugewiesen.
process (T, I)
begin
if I= '1' then
y <= aw;
elsif rising_edge(T) then
y <= x;
end if ;
end process ;
x
I
x y
I
T
signal x, y: tTyp ;
signal T, I:std_logic;
constant aw: tTyp :=...;
...
Abb. 1.58. Register mit Initialisierungseingang (tTyp - beliebiger in Hardware
darstellbarer Datentyp)
Die Initialisierung eines Registers ist laufzeitkritisch. Abbildung 1.59 a
zeigt das am Beispiel einer Schaltung mit einem initialisierbaren Eingabe-
register und einem einfachen Ausgaberegister. Wenn das Initialisierungssignal
zu kurze Zeit aktiv ist, liegt, selbst wenn das Eingaberegister seinen Anfangs-
wert korrekt übernimmt, der Initialwert am Registerausgang möglicherweise
zu kurze Zeit stabil an, so dass das nachfolgende Register im ersten Schritt
einen ungültigen Wert übernimmt (Abb. 1.59b). Die in Abb. 1.59 c und 1.59 d
gezeigten Fehlersituationen unterstellen, dass das Register aus Master-Slave-
Flipflops besteht (siehe später Abschnitt 4.3.5). Ein Master-Slave-Flipflop be-
steht aus einer Master- und einer Slave-Speicherzelle. Der Master übernimmt
I
0 1
0
t hr ,t dr
t hf ,t df
t s
T
1
x
x
f()
y '
w 1 w 2
x
y
x '
I
I
x '
w 0
w 1 w 2
T
a)
b)
T P
I
I
T
1
1
0
0
Wertunbe-
stimmt
T
1
1
0
0
w 1 w 2
w 1
w 2
x
x
w 0 Anfangswert
WertVerarbei-
tungsschritti
x '
w 0
w 2
x '
w 0
w 1
w 2
w i
c)
d)
T P
Abb. 1.59. Registerinitialisierung a) Schaltung mit initialisierbarem Eingaberegis-
ter b-d) mögliche Fehlfunktionen ohne Abtastung
 
Search WWH ::




Custom Search