school of engineering vhdl 7: automaten 1. school of engineering blockdiagramm:...
TRANSCRIPT
![Page 1: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/1.jpg)
School ofEngineering
VHDL 7: Automaten 1
![Page 2: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/2.jpg)
School ofEngineeringBlockdiagramm:
Vorwärts/Rückwärtszähler
QD
!Q
QD
!Q
QD
!Q
Q0
Q1
Q2
Takt
E
![Page 3: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/3.jpg)
School ofEngineeringMoore Automat
Q
!Q
AnsteuerLogik
n = Anzahlder FFs
n
Takt
nAusgangs-
Logik
Et
Et = Eingangsvektor
Zt = Zustandssvektor zum gegenwärtigen Zeitpunkt t
Zt+1 = Zustandssvektor nach dem Taktimpuls
Zt
Zt+1 = (Zt, Et)At = (Zt)
m
Gegenwärtiger(Aktueller) Zustand
Folge Zustand
![Page 4: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/4.jpg)
School ofEngineering
L1 L2 L3 L4
Blinker links Blinker rechts
Bremse
Beispiel: Knightrider FSM
![Page 5: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/5.jpg)
School ofEngineering
L1 L2 L3 L4
Blinker links Blinker rechts
Bremse
Beispiel: Knightrider FSM
![Page 6: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/6.jpg)
School ofEngineering
L1 L2 L3 L4
Blinker links Blinker rechts
Bremse
Beispiel: Knightrider FSM
![Page 7: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/7.jpg)
School ofEngineering
L1 L2 L3 L4
Blinker links Blinker rechts
Bremse
Beispiel: Knightrider FSM
![Page 8: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/8.jpg)
School ofEngineering
Knightrider Moore
aktueller_zustand
clk
bl_links
bl_rechts
bremse
Steuer-logik
Ausgangslogik
QD
!Q
n
folge_zustand
Led_out(1)
Led_out(2)
Led_out(3)
Led_out(4)
reset
![Page 9: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/9.jpg)
School ofEngineering
Eingänge und Ausgänge
bl_links
bl_rechts
bremse
reset
KnightriderAutomat
clk
Led_out(1)
Led_out(2)
Led_out(3)
Led_out(4)
![Page 10: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/10.jpg)
School ofEngineering
led2 led3
brms
led4
idle
led1
Definition der unterscheidbarenZustände
![Page 11: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/11.jpg)
School ofEngineering
led2 led3
brms
led4
idle
led1
bl_rechts = ‚1‘
bl_links = ‚1‘
bremsen = ‚1‘
bl_rechts = ‚0‘bl_links = ‚0‘
bremsen = ‚0‘
Ermitteln der Zustandsübergänge
![Page 12: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/12.jpg)
School ofEngineering
led2 led3
brms
led4
idle
led1
bl_rechts = ‚1‘
bl_links = ‚1‘
bremsen = ‚1‘bl_rechts = ‚0‘bl_links = ‚0‘
bremsen = ‚0‘
Ermitteln der Zustandsübergänge
![Page 13: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/13.jpg)
School ofEngineering
led2
brms
led4
idle
led1
bl_rechts = ‚1‘
bl_links = ‚1‘
bremsen = ‚1‘bl_rechts = ‚0‘bl_links = ‚0‘
bremsen = ‚0‘
Ermitteln der Zustandsübergänge
![Page 14: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/14.jpg)
School ofEngineering
led2 led3
brms
led4
idle
led1
bl_rechts = ‚1‘bl_links = ‚1‘
bremsen = ‚1‘
bl_rechts = ‚0‘bl_links = ‚0‘
bremsen = ‚0‘
Ermitteln der Zustandsübergänge
![Page 15: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/15.jpg)
School ofEngineering
led2 led3
brms
led4
idle
led1
bl_rechts = ‚1‘ bl_links = ‚1‘
bremsen = ‚1‘
bl_rechts = ‚0‘bl_links = ‚0‘
bremsen = ‚0‘
Ermitteln der Zustandsübergänge
![Page 16: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/16.jpg)
School ofEngineering
led2 led3
brms
led4
idle
led1
bl_rechts = ‚1‘
bl_links = ‚1‘
bremsen = ‚1‘
bl_rechts = ‚0‘bl_links = ‚0‘
bremsen = ‚0‘
Ermitteln der Zustandsübergänge
![Page 17: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/17.jpg)
School ofEngineering
led2 led3
brms
led4
idle
led1
Blinker links=0blinker rechts=0
bremesen=0
Blinker links=0blinker rechts=0
bremesen=0
Blinker rechts=1Blinker rechts=1 Blinker rechts=1
Blinker rechts=1
Reset
Blinker links = 1
Blinker links = 1Blinker links = 1Blinker links = 1
Blinker links = 1
Bremsen=1 Bremsen=1
Bremsen=1
Zustandsübergangsdiagramm des Knightriders
![Page 18: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/18.jpg)
School ofEngineering
Zustand Q2 Q1 Q0
idle 0 0 0
led1 1 0 0
led2 1 1 0
led3 0 1 1
led4 0 0 1
brms 1 1 1
undef1 1 0 1
undef2 0 1 0
Zustandscodierung
![Page 19: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/19.jpg)
School ofEngineering
led2 led3
brms
led4
idle
led1
Blinker links=0blinker rechts=0
bremesen=0
Blinker links=0blinker rechts=0
bremesen=0
Blinker rechts=1Blinker rechts=1 Blinker rechts=1
Blinker rechts=1
Reset
Blinker links = 1
Blinker links = 1Blinker links = 1Blinker links = 1
Blinker links = 1
Bremsen=1 Bremsen=1
Bremsen=1000 111
100 110 011 001
Zustandsübergangsdiagramm des Knightriders
![Page 20: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/20.jpg)
School ofEngineering
ENTITY knightrider IS
PORT(clk,reset, bl_links, bl_rechts, bremse: IN std_logic;led_out : OUT std_logic_vector(4 downto 1));
END knightrider;
ARCHITECTURE rtl OF knightrider IS
SIGNAL folge_zustand : std_logic_vector(2 downto 0);SIGNAL aktueller_zustand : std_logic_vector(2 downto 0);
--Zustands KodierungCONSTANT state_idle : std_logic_vector(2 downto 0) := "000";CONSTANT state_led1 : std_logic_vector(2 downto 0) := "100";CONSTANT state_led2 : std_logic_vector(2 downto 0) := "110";CONSTANT state_led3 : std_logic_vector(2 downto 0) := "011";CONSTANT state_led4 : std_logic_vector(2 downto 0) := "001";CONSTANT state_bremsen : std_logic_vector(2 downto 0) := "111";
BEGIN
Zustandsübergangsdiagramm des Knightriders
![Page 21: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/21.jpg)
School ofEngineering
Aktueller Zustand
clk
bl_links
bl_rechtsbremse
Steuer-logik
Ausgangslogik
QD
!Q
nFolge
ZustandLed_out(1)
Led_out(2)
Led_out(3)
Led_out(4)reset
SteuerLogik
Prozess
GetakterProzess
moore_gegenwart
moore_folge
clk
reset
4
4
AusgangsProzess
Eingänge
Prozesse des Automaten
![Page 22: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/22.jpg)
School ofEngineering
clocked: PROCESS (clk, reset)
BEGIN
IF reset = '1' THEN
aktueller_zustand <= "000";
ELSIF clk'EVENT AND clk = '1' THEN
aktueller_zustand <= folge_zustand;
END IF;
END PROCESS clocked;
Getakteter Process des Knightrider
![Page 23: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/23.jpg)
School ofEngineering
knight_logic: PROCESS (aktueller_zustand, bl_links, bl_rechts, bremse) BEGINCASE aktueller_zustand ISWHEN state_idle =>
IF bremse = '1' THEN folge_zustand <= state_bremsen;ELSIF bl_links = '1' THEN folge_zustand <= state_led4;ELSIF bl_rechts = '1‘ THEN folge_zustand <= state_led1;ELSE folge_zustand <= state_idle;END IF;
WHEN state_led1 => IF bremse = '1‚ THEN folge_zustand <= state_bremsen;ELSIF bl_links = '1' THEN folge_zustand <= state_led4;ELSIF bl_rechts = '1‚ THEN folge_zustand <= state_led2;ELSE folge_zustand <= state_idle;END IF;
.
.
WHEN OTHERS => folge_zustand <= state_idle;END CASE;
END PROCESS knight_logic;
Steuer Logik des Knightrider Automaten
![Page 24: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/24.jpg)
School ofEngineering
aktueller_zustand
clk
bl_links
bl_rechts
bremse
Steuer-logik
Ausgangslogik
QD
!Q
n
folge_zustand
Led_out(1)
Led_out(2)
Led_out(3)
Led_out(4)
reset
Ausgangslogik des Knightrider Automaten
![Page 25: School of Engineering VHDL 7: Automaten 1. School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E](https://reader033.vdocuments.us/reader033/viewer/2022052618/55204d7649795902118cbaf9/html5/thumbnails/25.jpg)
25
School ofEngineering
knight_ausg: PROCESS (aktueller_zustand)
BEGINCASE aktueller_zustand IS
WHEN state_led1 => led_out <= "1000";WHEN state_led2 => led_out <= "0100";WHEN state_led3 => led_out <= "0010";WHEN state_led4 => led_out <= "0001";WHEN state_bremsen => led_out <= "1111";WHEN OTHERS => led_out <= "0000";
END CASE;
END PROCESS knight_ausg;
Ausgangslogik des Knightriders