Hochschule Kempten      
Fakultät Elektrotechnik      
Digitaltechnik       Fachgebiet Elektronik, Prof. Vollrath      

Digitaltechnik

10 Zustandsmaschinen

Prof. Dr.

Jörg Vollrath


09 Schaltwerke


Ein kurze Videozusammenfassung der Vorlesung



Länge: 6:03 min

Eine Zustandstabelle einer VHDL-Beschreibung



Länge: 6:03 min

Rückblick und Heute

Rückblick:




Heute:


Lesen:

Synchrone Schaltungen


Es gibt einen globalen Takt CLK für alle positiv flankengesteuerte Speicherglieder (positive edge triggered). Langsamere Abläufe werden mit der Kombination aus CLK und CE (clock enable) realisiert.
Das CE Signal wird mit der gewünschten Frequenz immer für einen Zyklus '1'.

Praktische Realisierung von Speicherglieder: Baustein

D-Flip-Flop CD4013


Positiv flankengesteuert
Asynchroner Reset, Set


CD4013 Texas Instruments

Praktische Realisierung von Speichergliedern: Schaltung


Im Schaltsymbol kann man das Dreieck für die Taktflankensteuerung erkennen. Es werden 2 Takteingangssignale verwendet. Diese sind nicht überlappend, damit eine korrekte Funktion sichergestellt wird.
Beim Resetb Eingang sieht man einen Kreis. Das Signal wird invertiert. Wenn das Signal '0' ist, wird das D-Flip-Flop zurück gesetzt.
Im Zweifelsfall sollte man die Funktion möglichst früh verifizieren.
Wenn man nicht selbsterstellte Schaltungsblöcke verwendet, sollte immer ein Test dabei sein, der die Funktion verifiziert.
Weiterhin sieht man in der Abbildung den Schaltplan mit Transistoren. Der Schaltplan enthält 2 Latches. Der Reset ist synchron, da das Signal alternativ zu den Daten anliegt wird. Unten sieht man noch lokale Treiber für die CLOCK Signale, um auch invertierte Signale zu erzeugen.
Insgesamt hat die Schaltung 30 Transistoren.
Im Layout sieht man, wie gross ein typisches D-Flip-Flop ist. Transistoren ergeben sich an den kreuzungen der orangen und grünen Flächen.
Die Gesamtfläche wird dabei weniger durch die Transistoren, als durch die Anschlüsse und die Verdrahtung bestimmt.

VHDL code eines Speichergliedes

entity: Name, Eingänge, Ausgänge

  • Process
  • Sensitivity list !!!
  • Architecture
  • Positive Flankensteuerung:
    Clk‘event and clk='1'
  • Asynchrones RESET
  • Unvollständiges if else erzeugt Speicherglieder.
    Clk='0' und Clk='1' fehlt hier
  • CE: CLK enable signal fehlt
entity DFlop is
   port   (
      clk, d, reset: in std_logic; 
      q,bq: out std_logic
   );
end entity DFlop;
 
architecture Behavioral of DFlop is
begin 
     process(clk,reset)
     begin
       if ( reset = '1') then   
            q<='0'; bq<= '1';
       elsif  (clk'event) and (clk='1') then 
           q<=d; bq<= not(d);
       end if;
     end process;
end architecture Behavioral;
Für ein Speicherglied benötigt man in VHDL einen 'process' Block und eine unvollständige 'if' Anweisung. Im Beispiel oben wird nur das Verhalten für eine steigende CLK Flanke definiert. Alle anderen Fälle für das CLK Signal werden nicht spezifiziert. Dies stellt eine unvollständige 'if' Abfrage dar und der VHDL Compiler erstellt ein Speicherglied.
Es ist nicht klar, ob der Compiler ein Speicherglied mit Inverter für q und bq synthetisiert, oder 2 Speicherglieder eins für q und eins für nicht q.
In der Log Datei werden diese Informationen aufgeführt.

Man sollte rising_edge(clk) statt (clk'event) and (clk='1') verwenden.

Verifikation mit Simulation

Hierarchische Blöcke
Component, Instanz

Abfrage eines Tasters

Pull down und/oder pull up Widerstand
Clock: 10 MHz, 100ns
Drücken: 100ms 10 mal pro Sekunde.

Prellen
Jeder Wechsel von 0 auf 1 kann eine Aktion auslösen.
Beim einmaligen Drücken wird der Taster mehrmals von der Clock abgefragt und der Zähler wird mehrmals hochgezählt.
Ein langsamer Takt, der durch einen Zähler erzeugt werden kann, oder besser ein CE Signal wird zur Abfrage verwendet.
Das Abfrageintervall darf nicht zu kurz oder lang sein. Ist das Intervall zu lang hat der Benutzer das Gefühl es passiert nichts.

Zustandsmaschinen

Automaten: zeitgesteuerter Ablauf mit einem Takt
Zähler, Uhr, Waschmaschine, Aufzug, MP3 Player

Mealey, Moore, Medwedew
Mealey: Y = g( x, S(f(x)))
Der Ausgang Y ist vom Eingang X und Zustand S abhängig. Moore: Y = g( S(f(X)))
Der Ausgang Y vom Zustand S abhängig. Medwedew: Y = S(f(X))
Der Ausgang Y ist der Zustand S.

Aufgrund der Testbarkeit werden nur noch Medwedew Automaten verwendet.

Fragen und Diskussion

  • Ist die Truth Table des CD4013 eine Wahrheitstabelle oder eine Zustandstabelle?
  • Wozu benötigt man einen Pull down Widerstand?
  • Warum ist ein CE Signal besser als ein langsames Clock Signal?
  • Warum ist der Medwedew Automat besser testbar als andere Automaten?

11 Zustandsdiagramm und Zähler
Truth table, Pull up Widerstand, Prellen, Automat, Zustandsmaschine, Mealey Automat, Moore Autmat, Medwedew Automat