Sequenzielle Logikssysteme

ZIELE

  • Verständnis der Funktionsweise von zustandsbasierten sequenziellen Logiksystemen
  • Verständnis und Anwendung der Grundelemente von sequenzieller Digitallogik (Register, FLIP-FLOPs)
  • Unterscheidung von Daten-, Takt-, und Taktflanken gesteuerten Speichern

Sequenzielle Logik

  • Sequenzielle Logik besteht aus:

    • Kombinatorischer Logik
    • Speicherelementen
  • Die Ausgangssignale solcher Logik hängen von den aktuellen Eingangangssignalen E (Eingangszuständen) und zusätzlich von Signalen (Zuständen) aus der Vergangenheit ab.

figseq1


Abb. 1. Allgemeine Struktur eines sequenziellen Logiksystems.

Sequenzielle Logik

  • Das aktuelle Ausgangssignal O bzw. eine logische Funktion davon wird zeitlich verzögert der kombinatorischen Logik durch Rückkopplung wieder zugeführt.
    • Die Speicherelemente werden als Zustandsspeicher des Systems bezeichnet. Man unterscheidet den aktuellen Zustand Zn des Systems und den nächsten Zustand Zn+1 des Systems:
\[\begin{gathered}
Z_{n+1} = f(Z_n, E_{n+1}) \hfill \\
Z_n = f(Z_{n−1},E_n), O_n = g(Z_n) \hfill \\
\end{gathered}
\]
  • Man unterscheidet synchrone und asynchrone sequenzielle Systeme.
    • Synchrone Systeme ändern ihren Zustand nur zu bestimmten Zeitpunkten. D.h. synchrone Systeme sind taktgesteuert.
    • Asynchrone können ihren Zustand jederzeit (zeitkontinuierlich) ändern.

Sequenzielle Logik

  • Der Zustandsspeicher eines asynchronen Systems kann mit selbst steuernden Latches, der eines synchronen Systems mit taktgesteuerten FLIP-FLOPs implementiert werden.

  • Der Entwurf synchroner Schaltungen ist deutlich einfacher als bei asynchronen. Bei synchronen Systemen übernehmen die Speicherelemente nur zu bestimmten Zeitpunkten oder Intervallen die Daten.

Synchrone Logiksysteme

  • Ein Algorithmus ist eine Sequenz von Berechnungsschritten

  • Sequenzielle Datenverarbeitung wird in synchronen Systemen mit einer globalen Zeitreferenz - dem Takt (Clock) - gesteuert.

  • Der längste kombinatorische Pfad (die Verzögerung) zwischen zwei Registern bestimmt kürzeste Taktzykluszeit (1/Taktfrequenz)

  • Synchrone RT Systeme bestehen aus einer Folge von Registerebenen verbunden durch kombinatorische Logikblöcke

    figrtl1[Jordi Cortadella et al., 2002]


    Abb. 2. Allgemeine Architektur von synchronen RT Sytstemen

Asynchrone Logiksysteme

  • Asynchrone Logik arbeitet selbst gesteuert ohne globale Zeitreferenz (self-timed, speed-independent, delay-insensitive)
  • Längste Laufzeit eines kombinatorischen Digitallogikteils zwischen zwei Registern ist nicht mehr bestimmend für das gesamte System!
  • Asynchrones System: Module die über ein Handshake Protokoll (Anfrage REQ - Bestätigung der Verarbeitung ACK) kommunizieren

figrtl2


Abb. 3. Allgemeine Architektur von asychronen RT Systemen

Asynchrone Logiksysteme

  • Partitionierung eines Datenverarbeitungssystems und der Digitallogik in kleinere synchron arbeitende Module.
  • Die einzelnen Module besitzen einen eigenen lokalen Takt und sind taktgesteuert. Der Datenaustausch findet zwischen den Modulen asynchron statt (mit REQ-ACK Protokoll): GALS (Global Asynchronous, Local Synchronous)

figgals1


Abb. 4. Allgemeiner Architektur und Schnittstelle von GALS (Global Asynchronous, Local Synchronous) Systemen

Speicherelemente sequenzieller Logik

Die Speicherelemente lassen sich in zwei Gruppen unterteilen:

  1. Ungetaktete FLIP-FLOP-Speicher, sog. Latches,
  2. Getaktete FLIP-FLOP-Speicher, sog. Register.

Latch-Speicher oder RS-Latch

  • Aufgebaut mit zwei rückgekoppelten invertierenden Logikgattern, z.B. mit NOR-Gattern:

figlatch1

Speicherelemente sequenzieller Logik

figlatchft1


Abb. 5. Funktionstabelle des RS-Latches mit Eingängen S: Set und R: Reset und Ausgängen QQ

Speicherelemente sequenzieller Logik

  • RS-Latch alternativ mit NAND-Gattern:

figlatch2

Taktgesteuertes RS-FLIP-FLOP

  • Das taktgesteuerte RS-FLIP-FLOP stellt eine Erweiterung des RS-Latch-Speichers mit einem Aktivierungseingang dar, und ist zweistufig aufgebaut.
  • Der RS-Speicher ist nur bei T=1 schaltfähig.
    • Ist T=0, bleiben die Daten an den Ausgängen unverändert, unabhängig von den Eingangsdaten.

Speicherelemente sequenzieller Logik

Algorithm 1. (VHDL Modell eine RS Latches)

\[\begin{mdmathpre}%mdk
\mathkw{entity}~\mathid{RSL}~\mathkw{is}\\
\mdmathindent{2}\mathkw{port}~\{~\mathid{r}:~\mathid{in}~\mathid{bit},~\mathid{s}:~\mathid{in}~\mathid{bit},~\mathid{q}:~\mathid{out}~\mathid{bit},~\mathid{nq}:~\mathid{out}~\mathid{bit}~\}\\
\mathkw{architecture}~\mathid{main}~\mathkw{of}~\mathid{RSL}~\mathkw{is}\\
\mdmathindent{2}\mathkw{signal}~\mathid{l}:~\mathid{bit};\\
\mathkw{begin}~\\
\mdmathindent{2}\mathkw{process}~\mathid{rsl}(\mathid{r},\mathid{s})\\
\mdmathindent{2}\mathkw{begin}\\
\mdmathindent{4}\mathkw{if}~\mathid{r}~=~'1'~\mathkw{then}\\
\mdmathindent{6}\mathid{l}~<=~'0';\\
\mdmathindent{4}\mathkw{elsif}~\mathid{s}~=~'1'~\mathkw{then}\\
\mdmathindent{6}\mathid{l}~<=~'1';\\
\mdmathindent{4}\mathkw{end}~\mathkw{if};\\
\mdmathindent{2}\mathkw{end}~\mathkw{process};\\
\mdmathindent{2}\mathid{q}~<=~\mathid{l};\\
\mdmathindent{2}\mathid{nq}~<=~\mathid{not}~\mathid{l};\\
\mathkw{end}~\mathid{RSL};
\end{mdmathpre}%mdk
\]

Speicherelemente sequenzieller Logik

  • T-RS-FLIP-FLOP:

figlatch3

Taktgesteuertes D-FLIP-FLOP

  • Das D-FLIP-FLOP vermeidet durch geeignete Beschaltung am Eingang die irreguläre Eingangskombination RS={00,11}.

Speicherelemente sequenzieller Logik

figlatch4

Taktflanken gesteuertes FLIP-FLOP (Register)

  • Mit Taktflankensteuerung werden FLIP-FLOPs synchron, d.h. nur zu bestimmten diskreten Zeitpunkten gesteuert.

    • Dadurch wird eine größere Störsicherheit erreicht!
  • Für die Taktflankensteuerung werden Impulsglieder (Hochpass-Filter) benötigt, die nur bei einer auftretenden Änderung des Taktsignals 0 1 oder 1 0 einen kurzen Impuls erzeugen.

Speicherelemente sequenzieller Logik

figtakt1


Abb. 6. Steigende und fallende Taktflanke als Auslöser für Speicheraktivität (ΔT(Flanke) → ∞)

Speicherelemente sequenzieller Logik

  • Übertragungsfunktion von Impulsgliedern, aufgebaut mit einem RC-Schaltnetzwerk und einer Diode.
  • Das Signal P dient als neuer Aktivierungseingang des RS- oder D-FLIP-FLOP’s.

figtakt2

Speicherelemente sequenzieller Logik

Taktflanken gesteuertes D- und JK-FLIP-FLOP (Register)

  • D- und JK-FLIP-FLOPs, die häufig in sequenzieller Logik eingesetzt werden.

figlatch5

Speicherelemente sequenzieller Logik

figlatchft2


Abb. 7. Funktionstabelle eines D-FLIP-FLOP’s

Speicherelemente sequenzieller Logik

Algorithm 2. (VHDL Modell eine D-FLIP-FLOPs)

\[\begin{mdmathpre}%mdk
\mathkw{entity}~\mathid{DFF}~\mathkw{is}\\
\mdmathindent{2}\mathkw{generic}~\{~\mathid{N}:~\mathid{natural}~:=~8~\}\\
\mdmathindent{2}\mathkw{port}~\{~\mathid{wr}~:~\mathid{in}~\mathid{bit}_\mathid{vector}(\mathid{N}-1~\mathkw{downto}~0),~\mathid{rd}:~\mathid{out}~\mathid{bit}_\mathid{vector}(\mathid{N}-1~\mathkw{downto}~0),~\\
\mdmathindent{10}\mathid{clk}:~\mathid{in}~\mathid{bit},~\mathid{we}:~\mathid{in}~\mathid{bit}~\}\\
\mathkw{architecture}~\mathid{main}~\mathkw{of}~\mathid{DFF}~\mathkw{is}\\
\mdmathindent{2}\mathkw{signal}~\mathid{r}:~\mathid{bit}_\mathid{vector}(\mathid{N}-1~\mathkw{downto}~0);\\
\mathkw{begin}~\\
\mdmathindent{2}\mathkw{process}~\mathid{dff}(\mathid{clk},\mathid{we},\mathid{wr})\\
\mdmathindent{2}\mathkw{begin}\\
\mdmathindent{4}\mathkw{if}~\mathid{clk}'\mathid{event}~\mathid{and}~\mathid{clk}='1'~\mathkw{then}\\
\mdmathindent{5}\mathkw{if}~\mathid{we}~=~'1'~\mathkw{then}\\
\mdmathindent{7}\mathid{r}~<=~\mathid{wr};\\
\mdmathindent{5}\mathkw{end}~\mathkw{if}\\
\mdmathindent{4}\mathkw{end}~\mathkw{if};\\
\mdmathindent{2}\mathkw{end}~\mathkw{process};\\
\mdmathindent{2}\mathid{rd}~<=~\mathid{r};\\
\mathkw{end}~\mathid{DFF};
\end{mdmathpre}%mdk
\]

Speicherelemente sequenzieller Logik

  • Das JK-FLIP-FLOP ist ähnlich dem RS-FF mit logischer Eingangsverknüpfung der J- und K-Eingänge aufgebaut

figlatchft3


Abb. 8. Funktionstabelle eines JK-FLIP-FLOPs

Sequenzielle Systeme

Wichtige sequenzielle Systeme:

Schieberegister

Daten werden taktgesteuert in einem N-Bit breiten Register jeweils um eine Stelle nach links oder rechts verschoben. Anwendung: Seriell-Parallel-Konverter.

Zähler

Mit taktflankengesteuerten FLIP-FLOPs aufgebaute Zähler.

Zustandsautomaten

Dienen der Implementierung komplexer sequenzieller Systeme mit einer endlichen Zustandsmenge.

Man unterscheidet:

Asynchronzähler
Kaskadierung von D-FLIP-FLOPs. Zähler vorwiegend für Binärzahlensystem verwendet. Die Laufzeit der einzelnen Ausgänge des Zählers ist nicht konstant, d.h. das erste Bit hat die kürzeste, und das letzte Bit die längste Laufzeit.

Sequenzielle Systeme

Synchronzähler
Realisiert als rückgekoppelter Zustandsautomat. Hier haben die einzelnen Ausgangsbits konstante Laufzeit, d.h. nach einer Verzögerungszeit Δt liegen alle Bits des Zählers als gültiger Wert vor. Die Rückkoppellogik (rein kombinatorisch) bestimmt das Zählverhalten.

Sequenzielle Systeme

Beispiel eines 3-Bit Synchronzählers mit D-FLIP-FLOPs.

Example 1. (VHDL-Beschreibung des obigen Synchronzählers)

entity syn3count is
  port ( clk: in bit;
         q: out bit_vector(2 downto 0);
end syn3count;
architecture main of syn3count is
  signal q_int: bit_vector(2 downto 0);
begin
  process (clk)
  begin
    if clk'event and clk=1 then
      q_int <= q_int + ”001”;
    end if;
  end process;
  q <= q_int;
end main;

Sequenzielle Systeme

figcounter1


Abb. 9. Architektur eines 3-Bit Synchronzählers

Sequenzielle Systeme

Beispiel eines 3-Bit Asynchronzählers mit rückgekoppelten D-FLIP-FLOPs.

Example 2. (VHDL-Beschreibung eines Asynchronzählers: Nicht implementierbar in FPGAs!)

entity asyn3count is
  port ( clk: in bit;
         q: out bit_vector(2 downto 0);
end asyn3count;
architecture main of syn3count is
  signal q_int: bit_vector(2 downto 0);
begin
  process (clk)
  begin
    if clk'event and clk=0 then q_int(0) <= not q_int(0); end if;
    if q_int(0)'event and q_int(0)=0 then q_int(1) <= not q_int(1); end if;
    if q_int(1)'event and q_int(1)=0 then q_int(2) <= not q_int(2); end if;
  end process;
  q <= q_int;
end main;

Sequenzielle Systeme

figcounter2


Abb. 10. Architektur eines 3-Bit Asynchronzählers
  • In dieser Architektur findet eine Vermischung von Daten- und Taktsignalen statt!
    • Sollte vermieden werden!

Sequenzielle Systeme

  • Wie beim Ripple-Carry Addierer sidn Laufzeitverzögerungen eines Asynchrinzählers akkumulativ!
  • Das höchste Bit hat die längste Verzögerung

figtakt3


Abb. 11. Signaldiagramm eines Asynchronzählers und Signalverzögerungen