Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

School of Engineering VHDL 8: Automaten 2. School of Engineering Übung 7: Aufgabe 3 Getränkeausgabe nach Einwurf von 2 x 1 Fr. Jederzeit Geldrückgabe.

Ähnliche Präsentationen


Präsentation zum Thema: "School of Engineering VHDL 8: Automaten 2. School of Engineering Übung 7: Aufgabe 3 Getränkeausgabe nach Einwurf von 2 x 1 Fr. Jederzeit Geldrückgabe."—  Präsentation transkript:

1 School of Engineering VHDL 8: Automaten 2

2 School of Engineering Übung 7: Aufgabe 3 Getränkeausgabe nach Einwurf von 2 x 1 Fr. Jederzeit Geldrückgabe durch Betätigen der Taste Geldrückgabe

3 School of Engineering Q !Q Ansteuer Logik n = Anzahl der FFs n Takt n Ausgangs- Logik EtEt E t = Eingangsvektor Z t = Zustandssvektor zum gegenwärtigen Zeitpunkt t Z t+1 = Zustandssvektor nach dem Taktimpuls ZtZt Z t+1 = (Z t, E t ) A t = (Z t ) m Gegenwärtiger(Aktueller) Zustand Folge Zustand Bisher kennen wir den Moore Automat

4 School of Engineering 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 Knightrider als Moore Automat

5 School of Engineering Blinker rechts=1 led2led3 brms led4 idle led1 Blinker links=0 blinker rechts=0 bremesen=0 Reset Blinker links = 1 Bremsen=1 00 Bremsen=1 Steuerlogik QD !Q Q D QD Q0 Q1 Takt Reset L1 L2 L3 L4 Ausgangslogik Blinker rechts Blinker links Bremshebel Q2 Mealy Automat

6 School of Engineering 6 Q !Q Ansteuer Logik n = Anzahl der FFs n Takt n Ausgangs- Logik EtEt E t = Eingangsvektor Z t = Zustandssvektor zum gegenwärtigen Zeitpunkt t Z t+1 = Zustandssvektor nach dem Taktimpuls ZtZt Z t+1 = (Z t, E t ) A t = (Z t,, E t ) m Mealy Automat allgemein

7 School of Engineering led2led3brmsled4idleled Zustände können wegrationalisiert werden Weniger Zustände brauchen weniger Flip Flops Zustandscodierung

8 School of Engineering led2led3led4led1 Blinker rechts=1 Blinker links = Reset Blinker rechts=0 AND Blinker links = 0 Zustandsübergänge müssen neu definiert werden

9 School of Engineering 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 Knightrider als Mealyautomat mit 2 FF

10 School of Engineering 10 No.EingängeAktueller Zustand Lampen linksrechtsbremsenQ1Q0L1L2L3L led led led led led led led led led led led led led led led led41111 Idle Bremsen Ausgangslogik beim Knightrider als Mealy

11 School of Engineering 11 No.EingängeAktueller Zustand Lampen linksrechtsbremsenQ1Q0L1L2L3L led led led led led led Led led led led led led led led led led41111 Ausgangslogik Mealy(Fortsetzung)

12 School of Engineering Kombinatori- scher Prozess Getakteter Prozess moore_gegenwart moore_folge clk reset 4 4 Eingänge Next State Logik Zustands Speicher Ausgangslogik Kombinatori- scher Prozess Drei Prozess FSM Prozesse beim Mealy Automaten

13 School of Engineering 13 Ausgang: PROCESS (aktueller_zustand) BEGIN IF BREMSEN = 1 THEN led_out <= "1111"; ELSIF (LINKS = 0 ) AND (RECHTS = 0 )) THEN led_out <= 0000"; ELSE CASE 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 OTHERS=> led_out <= "0000"; END CASE; END IF; END PROCESS ausgang; Ausgangslogik des Knightriders nach Mealy

14 School of Engineering 14 DQ DQ DQDQDQDQDQ 5nS 6nS 2nS 3nS 4nS Baugruppe A Mealy AutomatBaugruppe C t PDCLKQ-FF = 3 nS t SU-FF = 2 nS T pfad1 = 3 nS + 3 nS + 4 nS + 1 nS + 2 nS = 13 nS T period-max = t PDCLKQ-FF + t PD-Logic + t PD-Leitung + t SU-FF T pfad3 = 3 nS + 3 nS + 5 nS + 2 nS + 1 nS + 2 nS = 16 nS F max = 62.5 MHz T pfad2 = 3 nS + 6 nS + 2 nS + 1 nS + 2 nS = 14 nS Verzögerungszeiten beim Mealy Automaten

15 School of Engineering Mealy vs. Moore MooreMealy Braucht normalerweise mehr Zustände als die Mealy Maschine Man kann Zustände einsparen Indirekt, muss erst bis zur nächsten Taktflanke warten, bis diese reagiert Schnelleres reagieren der Ausgänge Eventuelle Glitches werden von Eingang zu Ausgang durchgeschleusst Beim Zusammenschalten von mehreren Mealy Maschinen kann ein langer kombinatorischer Pfad entstehen, der die max. Taktfrequenz beeinflusst.

16 School of Engineering Übung 7, Aufgabe 2 5V KK RUFK RUFE VRE VRK M MAUF MAB 5V TKK TKE Aufzug hat zwei Endpunkte oben und unten Drücken der Ruf Taste Speichert Funktion (Aufzug hat nur zwei Geschosse, desh. Nur eine Taste) Aufzug fährt erst los wenn Tür geschlossen

17 School of Engineering Medvedev Automat

18 School of Engineering led2led3brmsled4idleled1 Blinker links=0 blinker rechts=0 bremesen=0 Blinker rechts=1 Reset Blinker links = 1 Bremsen= Zustandscodierung des Knightriders als Medvedev Automat

19 School of Engineering 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 Knightrider als Moore Automat

20 School of Engineering Glitches CLK Q0 Q1 seven Q2 NQ3Q2Q1Q0 seve n Glitch N7 Glitch = kurzzeitiger Signaleinbruch ~ 0.5 nS Q3 1

21 School of Engineering aktueller_zustand clk bl_links bl_rechts bremse Steuer- logik !Q QD n folge_zustand Led_out(1) Led_out(2) Led_out(3) Led_out(4) reset DQ Knightrider als Medvedev Automat

22 School of Engineering 22 Q !Q Ansteuer Logik n = Anzahl FFs = Anzahl der Ausgänge n Takt n EtEt E t = Eingangsvektor Z t = Zustandssvektor zum gegenwärtigen Zeitpunkt t Z t+1 = Zustandssvektor nach dem Taktimpuls ZtZt Z t+1 = (Z t, E t ) m A t = Z t, Medvedev Automat

23 School of Engineering One Hot Kodierung

24 School of Engineering led2led3brmsled4idleled1 Blinker links=0 blinker rechts=0 bremesen=0 Blinker rechts=1 Reset Blinker links = 1 Bremsen= One Hot Kodierung (Option im Synthesizer)

25 School of Engineering Einfachere Ansteuerlogik bei One Hot Kodierung QD !Q QD QD Q0 Q1 Q2 Takt E

26 School of Engineering Zustandsdefinierung durch Typen

27 School of Engineering led2led3 brms led4 idle led ZustandQ2Q1Q0 idle000 led1100 led2110 led3011 led4001 brms111 undef1101 undef2010 Zustandskodierung des Knightriders

28 School of Engineering 1. Zustandskodierung mit Konstanten 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 Kodierung constant 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

29 School of Engineering Simulation mit Constant State- Assignmnets

30 School of Engineering TYPE knight_state IS (state_idle, state_led1, state_led2, state_led3, state_led4,state_bremsen); Name des neuen Type --Zustands Kodierung constant 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"; Type ersetzt Definierung von Konstanten signal folge_zustand: knight_state; signal aktueller_zustand: knight_state; Signale müssen jetzt vom Type sein, der die Zustände definiert 2. Zustandskodierung durch Typendefinierung

31 School of Engineering Simulation mit Type State-Assignments

32 School of Engineering Vorteile der Typendefinierung Die Zustandskodierung muss nicht selbst bestimmt werden, es wird vom VHDL Synthesizer übernommen. (Nachteil – kein Einfluss auf Kodierung) Der Synthesizer bestimmt die minimale Anzahl nötiger Flip Flops selbst. In der Simulation werden die Zustände mit Namen angezeigt leichteres debugging. Für Medvedev 3. Möglichkeit: Enumerieret Kodierung anwenden

33 School of Engineering type mc_state_type is (idle,write,read1,read2,read3,read4 ); attribute enum_encoding : string; attribute enum_encoding of mc_state_type: type is " "; Wird durch die meiste Synthesesoftware unterstützt 3. Enumerierte Zustandskodierung

34 School of Engineering Synchronisierung

35 School of Engineering QD !Q QD QD Q0 Q1 Takt Reset L1 L2 L3 L4 Steuerlogik Ausgangslogik Blinker rechts Blinker links Bremshebel Q2 Eingänge sind nicht synchronisiert

36 School of Engineering Verhältnis von Steuersignalen und Takt Wenn sich die Eingänge von Automaten zu jeder beliebigen Zeit ändern können, so können sie Setup Zeit Verletzungen bei den Flip Flops der Automaten verursachen. Dies hat zur Folge, dass der Automat nicht in gewollte Zustände springt oder Parasitäre Zustände annimmt. Eingangssignale von Automaten müssen deshalb immer synchron zum Takt geändert werden.

37 School of Engineering Eingang CLK B (z.B. 1 MHz) Automat QD !Q QD A Abhilfe: Synchronisierschaltung


Herunterladen ppt "School of Engineering VHDL 8: Automaten 2. School of Engineering Übung 7: Aufgabe 3 Getränkeausgabe nach Einwurf von 2 x 1 Fr. Jederzeit Geldrückgabe."

Ähnliche Präsentationen


Google-Anzeigen