Hardware Reference
In-Depth Information
Eingabedaten und aktiviert ein Busy-Signal. Die Eingabedatenbereitstellung
erfolgt im Simulationsmodell wieder im Dialog. Die simulierte Dauer für die
Eingabeübernahme wird von der darauf folgenden Warteanweisung festgelegt
und ist im Beispielmodell die Zeit bis zur nächsten aktiven Taktflanke. In-
nerhalb der Schleife werden dieselben Operationen wie im Vorgängermodell
ausgeführt, nur dass die Werte Signalen zugewiesen werden und dass nach je-
dem Divisionsschritt die Simulationszeit bis zur nächsten aktiven Taktflanke
weitergestellt wird. Nach Abschluss aller Divisionsschritte werden das Busy-
Signal deaktiviert, die Ergebnisse auf dem Bildschirm ausgegeben und auf
die nächste Aktivierung des Startsignals gewartet. Mit dem so modifizierten
Simulationsmodell lassen sich alle Zeitabläufe, Signalverläufe und Zwischen-
ergebnisse des zu entwerfenden seriellen Divisionswerks visualisieren und kon-
trollieren:
signal Rest, q: tUnsigned( 3 downto 0 );
signal Subtr: tUnsigned( 6 downto 0 );
signal Start, busy, T:std_logic;
...
process
variable d: tUnsigned( 6 downto 0 );
begin
wait until rising_edge(T) and Start= '1' ;
Rest <= ...;
Subtr <= ... & "000" ;
busy <= '1' ;
wait until rising_edge(T);
for i in 0 to 3 loop
d := Rest - Subtr;
Subtr <= '0' & Subtr( 6 downto 1 );
q <= q( 2 downto 0 ) & ( not d( 6 ));
if d( 6 ) = '0' then
Rest <= d( 3 downto 0 );
end if ;
wait until rising_edge(T);
end loop ;
write( "Quotient= " & str(q) & " Rest=" & str(Rest));
busy <= '0' ;
-- Rechenwerk bereit
end process ;
)
WEB-Projekt:P2.6/SerDivAlg.vhdl
Der nächste Entwurfsschritt ist die Überführung in eine synthesefähige Be-
schreibung. In der bis hierher entwickelten Funktionsbeschreibung des seriel-
len Dividierers sind alle Signalzuweisungen an die aktive Taktflanke gebunden.
Es gibt weder eine asynchrone Initialisierung noch irgendeine andere Signal-
zuweisung, die nicht an der aktiven Taktflanke ausgerichtet ist. Die Scha-
blone für eine synthesefähige Beschreibung für ein solches Verhalten ist ein
Abtastprozess mit dem Takt in der Weckliste, in dem die Zustände anhand
 
Search WWH ::




Custom Search