Hardware Reference
In-Depth Information
library Tuc;
use Tuc.Numeric_Sim.all;
...
signal T, I, s: std_logic;
signal y: tUnsigned( 3 downto 0 );
...
process(I, T)
begin
if I= '1' then
s <= '0' ;
y <= "0000" ;
elsif rising_edge(T) then
case s is
when '0' => y <= y + "1" ;
if y= "1110" then s <= '1' ; end if;
when '1' => y <= y - "1" ;
if y= "0001" then s <= '0' ; end if;
when others => y <= "XXXX" ;
end case;
end if;
end process;
1111
1110
1101
y
0010
0001
0000
0 1530 Schritt
a)
inc
dec
+1
y
1
y
clr
0000 y
b)
I =1
ct=1110
0
inc
1
dec
clr
ct=0001
sonst
sonst
c)
d)
Web-Projekt:P1.6/DreieckGen.vhdl
Abb. 1.79. 4-Bit-Dreiecksignalgenerator a) zu generierendes Dreiecksignal b)
Operationen des Zählregisters c) Operationsablaufgraph d) VHDL-Beschreibung
zählt der Zähler bis zum Maximalwert. Dann wechselt der Automat in den
Zustand »1« und lässt den Zähler bis zum Minimalwert abwärts zählen. Dann
wechselt er zurück zum Anfangszustand »0« und beginnt den Zyklus von vorn.
In der VHDL-Beschreibung sind sowohl die Zähloperationen als auch die
Übergangsfunktion des Kontrollflussautomaten Register-Transfer-Funktionen,
die in einem gemeinsamen Abtastprozess beschrieben werden können. Bei akti-
vem Initialisierungssignal werden der Zählerstand und der Automatenzustand
auf null gesetzt. Im anderen Fall, bei einer aktiven Taktflanke, erfolgt eine Fall-
unterscheidung nach dem Zustand. Im Zustand s = 0 wird der Zählstand um
»1« erhöht und abgefragt, ob der vorletzte Zählstand erreicht ist. Wenn ja,
wird dem Automatenzustand der Wert für »Abwärtszählen« zugewiesen. Man
beachte, dass
und s Signale in einem Abtastprozess sind, die ihre zugewie-
senen Werte erst mit der nächsten aktiven Taktflanke übernehmen. Deshalb
muss der Folgezustand immer einen Zählschritt vor dem Endzustand zuge-
wiesen werden. Im Zustand s = 1 wird bis »0000« abwärtsgezählt und einen
Schritt zuvor wieder der Automatenzustand für »Aufwärtszählen« zugewie-
sen.
Das Simulationsmodell enthält eine Addition und eine Subtraktion. Dafür
wird ein Bitvektortyp benötigt, für den diese beiden arithmetischen Operatio-
nen definiert sind. Im Weiteren werden, wie auch hier im Beispiel, vorzeichen-
freie Zahlen mit dem Typ »tUnsigned« dargestellt. Für vorzeichenbehaftete
y
Search WWH ::




Custom Search