Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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.

Ähnliche Präsentationen


Präsentation zum Thema: "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."—  Präsentation transkript:

1 School of Engineering VHDL 7: Automaten 1

2 School of Engineering Blockdiagramm: Vorwärts/Rückwärtszähler QD !Q QD QD Q0 Q1 Q2 Takt E

3 School of Engineering Moore Automat 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

4 School of Engineering L1L2L3L4 Blinker linksBlinker rechts Bremse Beispiel: Knightrider FSM

5 School of Engineering L1L2L3L4 Blinker linksBlinker rechts Bremse Beispiel: Knightrider FSM

6 School of Engineering L1L2L3L4 Blinker linksBlinker rechts Bremse Beispiel: Knightrider FSM

7 School of Engineering L1L2L3L4 Blinker linksBlinker rechts Bremse Beispiel: Knightrider FSM

8 School of Engineering 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

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

10 School of Engineering led2led3brmsled4idleled1 Definition der unterscheidbaren Zustände

11 School of Engineering led2led3brmsled4idleled1 bl_rechts = 1 bl_links = 1 bremsen = 1 bl_rechts = 0 bl_links = 0 bremsen = 0 Ermitteln der Zustandsübergänge

12 School of Engineering led2led3brmsled4idleled1 bl_rechts = 1 bl_links = 1 bremsen = 1 bl_rechts = 0 bl_links = 0 bremsen = 0 Ermitteln der Zustandsübergänge

13 School of Engineering led2brmsled4idleled1 bl_rechts = 1 bl_links = 1 bremsen = 1 bl_rechts = 0 bl_links = 0 bremsen = 0 Ermitteln der Zustandsübergänge

14 School of Engineering led2led3brmsled4idleled1 bl_rechts = 1 bl_links = 1 bremsen = 1 bl_rechts = 0 bl_links = 0 bremsen = 0 Ermitteln der Zustandsübergänge

15 School of Engineering led2led3brmsled4idleled1 bl_rechts = 1 bl_links = 1 bremsen = 1 bl_rechts = 0 bl_links = 0 bremsen = 0 Ermitteln der Zustandsübergänge

16 School of Engineering led2led3brmsled4idleled1 bl_rechts = 1 bl_links = 1 bremsen = 1 bl_rechts = 0 bl_links = 0 bremsen = 0 Ermitteln der Zustandsübergänge

17 School of Engineering led2led3brmsled4idleled1 Blinker links=0 blinker rechts=0 bremesen=0 Blinker rechts=1 Reset Blinker links = 1 Bremsen=1 Zustandsübergangsdiagramm des Knightriders

18 School of Engineering ZustandQ2Q1Q0 idle000 led1100 led2110 led3011 led4001 brms111 undef1101 undef2010 Zustandscodierung

19 School of Engineering led2led3brmsled4idleled1 Blinker links=0 blinker rechts=0 bremesen=0 Blinker rechts=1 Reset Blinker links = 1 Bremsen= Zustandsübergangsdiagramm des Knightriders

20 School of Engineering 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 Zustandsübergangsdiagramm des Knightriders

21 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 Steuer Logik Prozess Getakter Prozess moore_gegenwart moore_folge clk reset 4 4 Ausgangs Prozess Eingänge Prozesse des Automaten

22 School of Engineering 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

23 School of Engineering knight_logic: PROCESS (aktueller_zustand, bl_links, bl_rechts, bremse) BEGIN CASE aktueller_zustand IS WHEN state_idle => IF bremse = '1'THEN folge_zustand IF bremse = '1THEN folge_zustand <= state_bremsen; ELSIF bl_links = '1' THEN folge_zustand <= state_led4; ELSIF bl_rechts = '1THEN folge_zustand <= state_led2; ELSEfolge_zustand <= state_idle; END IF;. WHEN OTHERS => folge_zustand <= state_idle; END CASE; END PROCESS knight_logic; Steuer Logik des Knightrider Automaten

24 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 Ausgangslogik des Knightrider Automaten

25 School of Engineering 25 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; Ausgangslogik des Knightriders


Herunterladen ppt "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."

Ähnliche Präsentationen


Google-Anzeigen