VHDL 7: Automaten 1.

Slides:



Advertisements
Ähnliche Präsentationen
Vom HW-Automaten zum Prozessor
Advertisements

Vortrag: Praktikum Technische Informatik Sommersemester 2007
Didaktisch- methodische Überlegungen zur Antriebstechnik
FH-Hof Formale Sprachen - Maschinenmodelle Richard Göbel.
Thomas Kloecker Betreuer: Tim Priesnitz
Moore E A Zustands- speicher (ZS) Übergangs- logik (ÜL) Folgezustand
Technische Informatik I (SS 2006) Teil 1: Logik 1b: Schaltnetze.
Weitere wichtige Schaltnetze?
Rechneraufbau & Rechnerstrukturen, Folie 7.1 © 2006 W. Oberschelp, G. Vossen.
1 Elektronische Bedienkarte Türker Yigitoglu und David Jesensek.
Institut für Angewandte Mikroelektronik und Datentechnik Fachbereich Elektrotechnik und Informationstechnik, Universität Rostock Spezielle Anwendungen.
Christian Schindelhauer
Modellbildung in der Geoökologie (G5, 103) SS 2004
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
3 Rahmenkonzept Lernumgebungen
BSP Binary Space Partitioning
Digital Design Schnuppervorlesung /
Elemente optischer Netze
Technische Informatik II (INF 1211) Aufgabenteil (mit Unterlagen)
Basisinformationstechnologie HK-Medien
VHDL-Synthese für Fortgeschrittene
DW-Architektur: Row Store vs Column Store
FPGA... ein Versuch. Uli Schäfer 1. Historie: PLD Uli Schäfer 2 Schaltungsgrösse wächst drastisch mit Zahl der Eingänge CPLD = Array + Flipflops + macro.
BSc. Matthias Wos Mikro II TutoriumSS 09 1 q2q2 q1q1 Indifferenzkurve: q 2 (q 1 ) 1. Ableitung Ind.-Kurve= GRS = q 2 (q 1 )
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter EVA-WIE-Quickie Eingabe – Verarbeitung - Ausgabe.
Logische Grundelemente
3.2 Grundlegende digitale logische Schaltungen
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.
© Béat Hirsbrunner, University of Fribourg, Switzerland
VHDL 3: Sequential Statements (Process)
Synthetisierbares VHDL
School of Engineering Themen: Variablen Architecture-Types.
VHDL 8: Automaten 2.
VHDL2_Sprachelemente und Concurrent Statements (Nebenläufige Anweisungen)
VHDL 4: Getaktete Logik (D-FF, Zähler, Automaten)
School of Engineering DT2 Projekt-3: Baud Rate Generator & GPS Decoder.
Inhalt Einen Zähler generisch aufbauen CPLD Synthese Timing Analyse
School of Engineering DT2 Projekt-2: Baud Rate Generator & GPS Decoder.
DT2 Projekt-1Einführung
Logische Grundschaltungen
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Abtragen von Strecken P Q O H t 1-t und Daraus folgt:
Zustandsübergangsdiagramme (1)
Brüche-Quartett Klasse 6-8 Spieler 4-6. Brüche-Quartett A1 Brüche-Quartett A2 Brüche-Quartett A3 Brüche-Quartett A4 Brüche-Quartett B1 Brüche-Quartett.
Technische Informatik II
Technische Informatik II
Technische Informatik II Übung 7: Automaten Implementierungsaspekte
Technische Informatik II
Technische Informatik II (INF 1211) Aufgabenteil (Mit Unterlagen)
Logik Von Fabian Undi Fabian Undi - Logik.
Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung
1.Woche: Organisation Synthetisierbares VHDL
Mikrocomputertechnik Jürgen Walter
Microcomputer Projekt
Mikrocomputertechnik Port-Quickie Prof. J. Walter Stand Januar Mikrocomputertechnik Jürgen Walter „Port-Quickie“ 8051-Port Eingabe - Ausgabe.
Mikrocomputertechnik Jürgen Walter
Rechnerstrukturen 3b. Endliche Automaten.
Dioden.
Linear Rückgekoppelte Schieberegister und Tristate Treiber
FPGA Praktikum WS2000/ Woche: VHDL Tips Ein Schläger für das Spiel.
Technische Informatik II
Technische Informatik II (INF 1211) Aufgabenteil (Mit Unterlagen)
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.
Technische Informatik II
Technische Informatik II
Eine elektronische Schaltung von der Idee bis zum Einbau am Experiment
Vom Transistor zum HW-Automaten
4 Ein- / Ausgänge parametrierbar
 Präsentation transkript:

VHDL 7: Automaten 1

Blockdiagramm: Vorwärts/Rückwärtszähler Q D !Q Q0 Q1 Q2 Takt E

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

Beispiel: Knightrider FSM Blinker links Blinker rechts Bremse

Beispiel: Knightrider FSM Blinker links Blinker rechts Bremse

Beispiel: Knightrider FSM Blinker links Blinker rechts Bremse

Beispiel: Knightrider FSM Blinker links Blinker rechts Bremse

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

Eingänge und Ausgänge Knightrider Automat bl_links Led_out(1) bl_rechts Led_out(2) Knightrider Automat bremse Led_out(3) reset Led_out(4) clk

Definition der unterscheidbaren Zustände led1 led2 led3 led4 idle brms

Ermitteln der Zustandsübergänge led1 led2 led3 led4 bl_rechts = ‚1‘ bremsen = ‚1‘ idle brms bl_links = ‚0‘ bl_rechts = ‚0‘ bl_links = ‚1‘ bremsen = ‚0‘

Ermitteln der Zustandsübergänge bl_links = ‚1‘ led1 led2 led3 led4 bl_rechts = ‚1‘ bl_links = ‚0‘ bremsen = ‚1‘ bl_rechts = ‚0‘ bremsen = ‚0‘ idle brms

Ermitteln der Zustandsübergänge bl_links = ‚1‘ led1 led2 led4 bl_rechts = ‚1‘ bl_links = ‚0‘ bl_rechts = ‚0‘ bremsen = ‚0‘ bremsen = ‚1‘ idle brms

Ermitteln der Zustandsübergänge bl_links = ‚1‘ bl_rechts = ‚1‘ led1 led2 led3 led4 bl_links = ‚0‘ bl_rechts = ‚0‘ bremsen = ‚0‘ bremsen = ‚1‘ idle brms

Ermitteln der Zustandsübergänge bl_rechts = ‚1‘ bl_links = ‚1‘ led1 led2 led3 led4 bl_links = ‚0‘ bl_rechts = ‚0‘ bremsen = ‚0‘ bremsen = ‚1‘ idle brms

Ermitteln der Zustandsübergänge led1 led2 led3 led4 bl_links = ‚0‘ bl_rechts = ‚1‘ bl_rechts = ‚0‘ bremsen = ‚0‘ bl_links = ‚1‘ idle brms bremsen = ‚1‘

Zustandsübergangsdiagramm des Knightriders Blinker rechts=1 Blinker links = 1 led1 led2 led3 led4 Blinker rechts=1 Blinker rechts=1 Blinker rechts=1 Bremsen=1 Blinker links=0 blinker rechts=0 bremesen=0 idle brms Reset Bremsen=1

Zustandscodierung Zustand Q2 Q1 Q0 idle led1 1 led2 led3 led4 brms led1 1 led2 led3 led4 brms undef1 undef2

Zustandsübergangsdiagramm des Knightriders Blinker rechts=1 Blinker links = 1 led1 led2 led3 led4 100 110 011 001 Blinker rechts=1 Blinker rechts=1 Blinker rechts=1 Blinker links=0 blinker rechts=0 bremesen=0 Bremsen=1 idle brms Reset 000 111 Bremsen=1

Zustandsübergangsdiagramm des Knightriders 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

Prozesse des Automaten Aktueller Zustand n Folge Zustand Led_out(1) bl_links Steuer- logik D Q Led_out(2) bl_rechts bremse Led_out(3) !Q Led_out(4) reset clk Ausgangslogik moore_folge Eingänge 4 Steuer Logik Prozess Getakter Prozess clk Ausgangs Prozess reset 4 moore_gegenwart

Getakteter Process des Knightrider 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;

Steuer Logik des Knightrider Automaten knight_logic: PROCESS (aktueller_zustand, bl_links, bl_rechts, bremse) BEGIN CASE aktueller_zustand IS WHEN 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;

Ausgangslogik des Knightrider Automaten 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 des Knightriders knight_ausg: PROCESS (aktueller_zustand) BEGIN 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 state_bremsen => led_out <= "1111"; WHEN OTHERS => led_out <= "0000"; END CASE; END PROCESS knight_ausg;