Hardware Reference
In-Depth Information
Im nächsten Schritt wird der Zustandsgraph entwickelt (Abb. 1.78 a). In
seinem Kern ist ein Zahlenschloss ein Akzeptorautomat. Die Eingabe einer
Ziffernfolge beginnt mit der Initialisierung, die den Automaten in den Start-
zustand Z 0 versetzt. Von dort aus führt eine Zustandsfolge Z i zum Endzustand
Z n (Eingabe akzeptiert). Der Index i ist dabei jeweils die Anzahl der bisher
richtig eingegebenen Ziffern. Im Endzustand Z n soll die Leuchtdiode leuchten
(y = 0) und in allen andern Zuständen soll sie ausgeschaltet sein (y = 1).
signal T, I, I_next, xu, xu_del, y:std_logic;
signal s:std_logic_vector( 2 downto 0 );
signal x, x_next:std_logic_vector( 3 downto 0 );
...
-- c) Beschreibung der Abtastregister
process (T)
begin
if rising_edge(T) then
x <= x_next;
I <= I_next;
xu_del <= xu;
end if ;
end process ;
-- d) nebenläufige Bildung von xu
xu <= x( 0 ) and x( 1 ) and x( 2 ) and x( 3 );
-- e) Abtastprozess der Uebergangsfunktion
process (I, T)
variable v:std_logic_vector( 6 downto 0 );
begin
if I= '0' then
s <= "000" ;
elsif rising_edge(T) and xu= '0' and
xu_del= '1' and s(2)= '0' then
v := s & x;
case v is
when "000" & "1110" => s <= "001" ; -- 1. Geheimzahl: Taste 0
when "001" & "0111" => s <= "010" ; -- 2. Geheimzahl: Taste 3
when "010" & "1101" => s <= "100" ; -- 3. Geheimzahl: Taste 1
when others => s <= "111" ;
end case ;
end if ;
end process ;
-- f) nebenläufige Anweisung zur Bildung von y
y <= not s( 2 ) or s( 1 ) or s( 0 );
Z 0
sonst
LEDaus
1110
Z 1
sonst
LEDaus
0111
sonst
Z 2
1101 LEDaus
Z 3 F
LEDein LEDaus
a)
(x U =0) (x U '=1)
ZustandCodierung
Z 0
Z 1
Z 2
Z 3
F
000
001
010
100
b)
111
Web-Projekt:P1.6/Zahlenschloss.vhdl
Abb. 1.78. Fortsetzung des Entwurfs der Zahlenschlosssteuerung a) Zustands-
graph b) Zustandscodierung c) Abtastregister d) UND-Gatter e) Übergangsfunk-
tion und Zustandsregister f) Ausgabefunktion
 
Search WWH ::




Custom Search