Hardware Reference
In-Depth Information
Registermodell einbetten. Das Register erhält dazu zusätzlich einen Freiga-
beeingang E und übernimmt seine Eingabewerte nur noch dann bei einer
aktiven Taktflanke, wenn das Freigabesignal aktiv ist (Abb. 2.16 b). Die Ein-
bettung der Übernahmesteuerung in das Registermodell eröffnet zusätzlichen
Gestaltungsspielraum für die Schaltungsoptimierung, die sich an die Register-
Transfer-Synthese anschließt (siehe später Abschnitt 4.3.5).
Abgetastete Signale können im Folgetakt weiterverarbeitet werden. Ab-
bildung 2.17 zeigt das am Beispiel eines 4-Bit-Zählers. Der Zähler hat einen
Takteingang, einen Initialisierungseingang, einen Steuereingang V zum Vor-
wärtszählen und einen Steuereingang R zum Rückwärtszählen. Der Zählzu-
stand ist ein 4-Bit-Vektor zur Darstellung vorzeichenfreier ganzer Zahlen.
Wenn das Initialisierungssignal aktiv ist, wird der Zählzustand mit »0000«
initialisiert. Sonst wird bei einer aktiven Taktflanke, wenn V aktiv ist, der
Zählstand um »1« erhöht und, wenn V inaktiv und R aktiv ist, der Zähl-
stand um »1« verringert. Die Auswertung und Veränderung des Zählsignals
im selben Prozess ist nur deswegen zulässig, weil die Zuweisung an die aktive
Taktflanke gebunden ist. In einem kombinatorischen Prozess, der bei jeder
Eingabeänderung geweckt wird, würde eine solche Signalzuweisung ein unsin-
niges, schaltungstechnisch nicht nachbildbares Verhalten beschreiben, nämlich
ein Signal, das seinen Wert ständig weiterzählt, ohne dass dazwischen Simu-
lationszeit vergeht.
signal y: tUnsigned( 3 downto 0 );
signal T, I, V, R: std_logic;
...
process(T, I)
begin
if I= '1' then
y <= "0000" ;
elsif rising_edge(T) then
if V= '1' then y <= y+ "1" ;
elsif R= '1' then y <= y- "1" ;
end if ;
end if;
end process;
4
4
+1
1
1
4
4
1 x
I
y
4
0
4
0
R
V
I T
Web-Projekt:P2.1/VRZaehler1.vhdl
Abb. 2.17. Beschreibung und extrahierte Schaltung eines Vorwärts-Rückwärts-
Zählers
In Abb. 2.17 findet die Register-Transfer-Synthese zwei arithmetische Ope-
rationen, von denen entweder die eine oder die andere oder keine auszuführen
ist. Die If-Anweisung wird durch einen Multiplexer nachgebildet, der zwischen
dem um »1« erhöhten Zählwert und dem Ausgabewert des Multiplexers für
den Else-Zweig auswählt. Der Multiplexer für den Else-Zweig wählt zwischen
dem um »1« verringerten und dem aktuellen Zählwert aus. Die Fallunterschei-
Search WWH ::




Custom Search