Hardware Reference
In-Depth Information
Ablaufgraph
Zielstruktur
0/1
1/0
y
f y
s +
s
1/1 0/0
0/0
00
x
x
I
f s
I
10
01
1/1
T
a)
b)
T
signal x, y, T, I:std_logic;
signal s:std_logic_vector( 1 downto 0 );
Abb. 1.70. Mealy-Automat a) Zustandsgraph b) Zielstruktur
Der Folgezustand ergibt sich dabei jeweils aus dem aktuellen Zustand und der
Eingabe. In der Prozessbeschreibung in Abb. 1.71 ist der Auswahlausdruck
eine Konkatenation (Verkettung) des Zustands- und des Eingabesignals zu
einem gemeinsamen Bitvektor. So genügt eine Fallunterscheidung. Alle Aus-
wahlwerte mit demselben Folgezustand sind zu einem Auswahlfall zusammen-
gefasst. Alle anderen im Zustandsgraph nicht berücksichtigten Fälle - ungül-
tiger Ist-Zustand, ungültige Eingabe etc. - erfasst der Sonst-Zweig, der dem
Folgezustand den Pseudo-Wert »ungültig« zuweist. Ein ungültiger Zustand
darf nicht weiterverarbeitet werden bzw. signalisiert eine Fehlfunktion.
process (I, T)
variable v:std_logic_vector( 2 downto 0 );
begin
if I= '1' then
s <= "00" ;
elsif rising_edge(T) then
v := s & x;
case v is
when "00" & '0' | "10" & '0' => s <= "00" ;
when "01" & '0' | "00" & '1' => s <= "01" ;
when "10" & '1' | "01" & '1' => s <= "10" ;
when others
0/1
00
0/0 1/0
10 01
1/1 0/0
1/1
s +
s
x
I
f s
x
I
=> s <= "XX" ;
end case ;
end if ;
end process ;
T
Web-Projekt:P1.6/BspMealy.vhdl
Abb. 1.71. Abtastprozess zur Beschreibung der Übergangsfunktion und des Zu-
standsregisters für den Mealy-Automaten in Abb. 1.70
Die Ausgabefunktion ist als kombinatorischer Prozess beschrieben (Abb.
1.72). Ihre Eingabesignale - das sind der Ist-Zustand
und das Eingabesi-
gnal des Automaten x - stehen in der Weckliste. Der Ausgabewert wird auch
hier mit einer Auswahlanweisung mit einer Konkatenation des Eingabewer-
tes und des Zustands als Auswahlausdruck gebildet. Alle Kanten mit dem
s
 
Search WWH ::




Custom Search