VHDL 8: Automaten 2.

Slides:



Advertisements
Ähnliche Präsentationen
Workshop Workshops. #In this training, you have the choice to select what you want to learn.
Advertisements

Vom HW-Automaten zum Prozessor
Sortieren I - Bubblesort -
Arbeitstitel: DV-Infrastruktur
Peter Marwedel Informatik 12
Datentechnik13. Übung THS, 22.November 2006 Testen hochintegrierter Schaltungen Übung 3: SCOAP-Algorithmus (sequentiell) Ralph Weper.
FH-Hof Formale Sprachen - Maschinenmodelle Richard Göbel.
Moore E A Zustands- speicher (ZS) Übergangs- logik (ÜL) Folgezustand
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Technische Informatik I
Technische Informatik I (SS 2006) Teil 1: Logik 1b: Schaltnetze.
Weitere wichtige Schaltnetze?
Technische Informatik I (SS 2006)
Rechneraufbau & Rechnerstrukturen, Folie 7.1 © 2006 W. Oberschelp, G. Vossen.
1 Elektronische Bedienkarte Türker Yigitoglu und David Jesensek.
Technische Informatik I
Technische Informatik I
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Speicherglieder Aufgabe: - Aufnehmen - Speichern - Abgeben
Register BIT Martin Evertz.
BSP Binary Space Partitioning
Digital Design Schnuppervorlesung /
Elemente optischer Netze
Übungsblatt 08 Lehrstuhl für Kommunal- und Umweltökonomie
KFZ-Diebstahlsicherung
Basisinformationstechnologie HK-Medien
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter EVA-WIE-Quickie Eingabe – Verarbeitung - Ausgabe.
Schaltwerke Klaus Becker 2003.
3.3 Speicher Latches SR-Latch 1-bit Speicher S Q Q R Q Q
1 SR-Latch 3.3 Speicher Latches © Béat Hirsbrunner, University of Fribourg, Switzerland, 31. Oktober 2007 S Q Q R Q Q 1-bit Speicher.
3.3 Speicher Latches (1/4) SR-Latch S Q Q R Q Q
Elektronischer Würfel
VHDL 3: Sequential Statements (Process)
Synthetisierbares VHDL
VHDL 7: Automaten 1.
VHDL 4: Getaktete Logik (D-FF, Zähler, Automaten)
Inhalt Einen Zähler generisch aufbauen CPLD Synthese Timing Analyse
DT2 Projekt-1Einführung
Speichern von Informationen
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Speichern von Informationen
Technische Informatik II
Technische Informatik II
Technische Informatik II Übung 7: Automaten Implementierungsaspekte
Technische Informatik II
Technische Informatik II (INF 1211) Aufgabenteil (Mit Unterlagen)
Seite 1 Technische Informatik II (INF 1211) – Kurzfragenteil (Ohne Unterlagen) Am Prof. W. Adi Zeit: (20 Minuten) Bitte schreiben Sie die Lösung.
Seite 1 Technische Informatik II (INF 1211) – Kurzfragenteil (Ohne Unterlagen) Am Prof. W. Adi Zeit: (20 Minuten) Bitte schreiben Sie die Lösung.
Mikrocomputertechnik Jürgen Walter
Microcomputer Projekt
Mikrocomputertechnik Port-Quickie Prof. J. Walter Stand Januar Mikrocomputertechnik Jürgen Walter „Port-Quickie“ 8051-Port Eingabe - Ausgabe.
… erste Schritte mit einem programmierbaren Mikrocontroller
Mikrocomputertechnik Jürgen Walter
Rechnerstrukturen 3b. Endliche Automaten.
Dioden.
FPGA Praktikum WS2000/ Woche: VHDL Tips Ein Schläger für das Spiel.
Technische Informatik II
FPGA Praktikum WS2000/ Woche: Die Experimentierplatine Aufgaben.
2. Woche: Timingmodelle Synthetisierbares VHDL Aufgaben
 Sortigkeit oder Arität
Folien zur Vorlesung Hardwarearchitekturen und Rechensysteme von Prof. Dr. rer. nat. U. Brinkschulte Prof. Dr.-Ing. L. Hedrich (basierend auf Materialien.
X. Übungsblatt – Aufgabe X In dieser Aufgabe soll ein synchron getakteter Steuerungsautomat für den in Abbildung 1 dargestellten Prozessor-Chip mit geringem.
Automatentheorie Jendrik und Jeyhannes. Allgemeines Modelle mit Zuständen, die Eingaben annehmen und Ausgaben erstellen Endliche Automaten Auch Zustandsmaschine.
Universal E/A-Konzentrator UK/S 32.2
Technische Informatik II
Technische Informatik II
Grundlagen der Rechnerarchitektur [CS ]
FPGA-Design VHDL-basierter Designflow für FPGAs
Vom Transistor zum HW-Automaten
4 Ein- / Ausgänge parametrierbar
 Präsentation transkript:

VHDL 8: Automaten 2

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

Bisher kennen wir den Moore Automat Gegenwärtiger(Aktueller) Zustand Zt At = m (Zt) Zt+1 = d (Zt, Et) Q Ausgangs- Logik n AnsteuerLogik n n = Anzahl der FFs m Et m !Q d Folge Zustand Takt Et = Eingangsvektor Zt = Zustandssvektor zum gegenwärtigen Zeitpunkt t Zt+1 = Zustandssvektor nach dem Taktimpuls

Knightrider als Moore Automat Ausgangslogik n Led_out(1) aktueller_zustand folge_zustand Led_out(2) bl_links D Q Led_out(3) Steuer- logik bl_rechts bremse !Q Led_out(4) reset clk

Blinker links=0 blinker rechts=0 bremesen=0 Mealy Automat Blinker rechts=1 led2 led3 brms led4 idle led1 Blinker links=0 blinker rechts=0 bremesen=0 Reset Blinker links = 1 Bremsen=1 00 Steuerlogik Q D !Q Q0 Q1 Takt Reset L1 L2 L3 L4 Ausgangslogik Blinker rechts Blinker links Bremshebel Q2

Mealy Automat allgemein Zt At = w (Zt,, Et) Zt+1 = d (Zt, Et) Q Ausgangs- Logik n AnsteuerLogik n n = Anzahl der FFs w Et m !Q d Takt Et = Eingangsvektor Zt = Zustandssvektor zum gegenwärtigen Zeitpunkt t Zt+1 = Zustandssvektor nach dem Taktimpuls

Zustandscodierung led1 led2 led3 led4 100 110 011 001 00 01 10 11 idle brms 000 111 Zustände können „wegrationalisiert“ werden Weniger Zustände brauchen weniger Flip Flops

Zustandsübergänge müssen neu definiert werden Blinker rechts=1 Blinker links = 1 Blinker links = 1 Blinker links = 1 Blinker links = 1 led1 led2 led3 led4 00 01 10 11 Reset Blinker rechts=1 Blinker rechts=1 Blinker rechts=1 Blinker rechts=0 AND Blinker links = 0

Knightrider als Mealyautomat mit 2 FF Ausgangslogik n Led_out(1) aktueller_zustand folge_zustand Led_out(2) bl_links D Q Led_out(3) Steuer- logik bl_rechts bremse !Q Led_out(4) reset clk

Ausgangslogik beim Knightrider als Mealy No. Eingänge Aktueller Zustand Lampen links rechts bremsen Q1 Q0 L1 L2 L3 L4 led1 1 led2 2 led3 3 led4 4 5 6 7 8 9 10 11 12 13 14 15 Idle Bremsen

Ausgangslogik Mealy(Fortsetzung) No. Eingänge Aktueller Zustand Lampen links rechts bremsen Q1 Q0 L1 L2 L3 L4 16 1 led1 17 led2 18 led3 19 led4 20 21 22 Led3 23 24 25 26 27 28 29 30 31

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

Ausgangslogik des Knightriders nach Mealy 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;

Verzögerungszeiten beim Mealy Automaten Baugruppe A Mealy Automat Baugruppe C D Q D Q D Q Tpfad1 = 3 nS + 3 nS + 4 nS + 1 nS + 2 nS = 13 nS 3nS tPDCLKQ-FF = 3 nS 4nS 2nS 3nS D Q 6nS D Q Tpfad2 = 3 nS + 6 nS + 2 nS + 1 nS + 2 nS = 14 nS D Q tSU-FF = 2 nS Tpfad3 = 3 nS + 3 nS + 5 nS + 2 nS + 1 nS + 2 nS = 16 nS Fmax = 62.5 MHz 2nS D Q 5nS Tperiod-max = tPDCLKQ-FF+ tPD-Logic + tPD-Leitung+ tSU-FF

Mealy vs. Moore Moore Mealy 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.

Übung 7, Aufgabe 2 Aufzug hat zwei Endpunkte oben und unten 5V KK RUFK RUFE VRE VRK M MAUF MAB 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

Medvedev Automat

Zustandscodierung des Knightriders als Medvedev Automat Blinker rechts=1 Blinker links = 1 led1 led2 led3 led4 1000 0100 0010 0001 Bremsen=1 Blinker links=0 blinker rechts=0 bremesen=0 idle brms Reset 0000 1111 Bremsen=1

Knightrider als Moore Automat Ausgangslogik n Led_out(1) aktueller_zustand folge_zustand Led_out(2) bl_links D Q Led_out(3) Steuer- logik bl_rechts bremse !Q Led_out(4) reset clk

Glitch = kurzzeitiger Signaleinbruch Glitches N 5 6 7 N Q3 Q2 Q1 Q0 seven 1 2 3 4 5 6 7 CLK Q0 1 Q1 Q2 Q3 seven ~ 0.5 nS „Glitch“ Glitch = kurzzeitiger Signaleinbruch

Knightrider als Medvedev Automat aktueller_zustand folge_zustand Led_out(1) D Q Led_out(2) Steuer- logik Led_out(3) bl_links bl_rechts Q D Led_out(4) bremse !Q reset clk

Medvedev Automat d Zt Zt+1 = d (Zt, Et) At = Zt, Q n AnsteuerLogik n n = Anzahl FFs = Anzahl der Ausgänge Takt Et = Eingangsvektor Zt = Zustandssvektor zum gegenwärtigen Zeitpunkt t Zt+1 = Zustandssvektor nach dem Taktimpuls

One Hot Kodierung

One Hot Kodierung (Option im Synthesizer) Blinker rechts=1 Blinker links = 1 led1 led2 led3 led4 100000 010000 001000 000100 Bremsen=1 Blinker links=0 blinker rechts=0 bremesen=0 idle brms Reset 0000010 000001 Bremsen=1

Einfachere Ansteuerlogik bei One Hot Kodierung Q D !Q Q0 D Q Q1 E !Q D Q Q2 !Q Takt

Zustandsdefinierung durch Typen

Zustandskodierung des Knightriders led2 led3 brms led4 idle led1 000 111 100 110 011 001 Zustand Q2 Q1 Q0 idle led1 1 led2 led3 led4 brms undef1 undef2

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

Simulation mit Constant State-Assignmnets

2. Zustandskodierung durch Typendefinierung 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

Simulation mit Type State-Assignments

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

3. Enumerierte Zustandskodierung type mc_state_type is (idle ,write ,read1 ,read2 ,read3 ,read4 ); attribute enum_encoding : string; attribute enum_encoding of mc_state_type: type is "0000 0100 1000 1001 1010 1011"; Wird durch die meiste Synthesesoftware unterstützt

Synchronisierung

Eingänge sind nicht synchronisiert Reset Ausgangslogik Q0 L1 D Q Blinker links Blinker rechts L2 Bremshebel !Q L3 Q1 D Q L4 !Q Q2 D Q Steuerlogik !Q Takt

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.

Abhilfe: Synchronisierschaltung Automat A Q D !Q Q D !Q Eingang CLK B (z.B. 1 MHz)