k412-Speichernde_Elemente_D-FF_weitere_Bausteine

k412-Speichernde_Elemente_D-FF_weitere_Bausteine

Page 1

page-01.png

Kapitel 4 – Sequentielle Logik

  1. Speichernde Elemente
    1.1 Schaltpläne, RS-Flip Flop
    1.2 D-Flipflops, weitere Bausteine
  2. Sequentielle Schaltkreise
  3. Entwurf sequentieller Schaltkreise
  4. SRAM
  5. Anwendung: Datenpfade von ReTI
  6. Anwendung: Kontrolllogik von ReTI

Albert-Ludwigs-Universität Freiburg
Prof. Dr. Armin Biere
Institut für Informatik

Page 2

page-02.png

Schaltsymbol eines RS-FF

       ┌─────────┐
 /S ──→│  RS-FF  │──→ Q
 /R ──→│         │──→ /Q
       └─────────┘

Page 3

page-03.png

Nachteil von RS-FF

Beim Speichern eines Wertes 0 oder 1 muss man den Wert kennen:

  • Aktiviere
  • Aktiviere

Ziel: Speichern unbekannter Werte.

Page 4

page-04.png

D-Latch (1/2)

ist active high.

0 0 0 1
0 1 0 1
1 0 1 0
1 1 0 1
  • inaktiv

Page 5

page-05.png

D-Latch (2/2)

0 0 1 1
0 1 1 1
1 0 1 0 0 1
1 1 0 1 1 0

Symbol:

       ┌───────┐
   D ──→│ D-Latch │──→ Q
   W ──→│       │──→ /Q
       └───────┘

Page 6

page-06.png

Ansteuerung: Schreibimpuls

  • Die Daten müssen für eine gewisse Zeit , genannt Setup-Zeit, an stabil anliegen.
  • Dann geht von 0 auf 1, bleibt für eine Zeit , genannt Pulsweite, auf 1 und geht auf 0 zurück.
  • Anschließend müssen die Daten für eine Zeit , genannt Hold-Zeit, an stabil gehalten werden.

Page 7

page-07.png

Timing-Diagramm

     ┌── y ──┐
W ───┘       └────
     ← tSDW →← tHDW →

D ══════════════════
     ┌───┐
Q ───┘   └──────────

Wie lange müssen die einzelnen Signale aktiv sein, damit der Schreibvorgang reibungslos abläuft?

Siehe nächstes Kapitel (Timing).

Page 8

page-08.png

Taktflankengesteuertes D-Flipflop (1/2)

Taktflankengesteuerte Flipflops wie das D-Flipflop übernehmen Daten zu einem bestimmten Zeitpunkt (kein transparenter Modus!), nämlich bei der steigenden Flanke des Clocksignals.

Wahrheitstabelle D-FF:

ck
0 0 1
1 1 0
X 0
X 1

Schaltsymbol:

       ┌──────┐
   D ──→│ D-FF │──→ Q
  ck ──→│      │──→ /Q
       └──────┘

Vorteil: Daten müssen lediglich bei der steigenden Taktflanke stabil sein (zzgl. Setup- und Holdzeit).

Page 9

page-09.png

Taktflankengesteuertes D-Flipflop (2/2)

Realisierung: Wesentlich komplexer als bei taktzustandsgesteuerten D-Latches.

Analyse des Schaltplanes (und entsprechende Timing-Analyse) wesentlich komplizierter.

Page 10

page-10.png

D-FF: Realisierung mit RS-Flipflops

  • RS-FF₁: Wichtig, um zu gewährleisten, dass während die Daten vom Zeitpunkt der letzten steigenden Taktflanke gespeichert bleiben.
  • RS-FF₂: Aufnahme der Eingangsdaten bei
  • Ausgangs-FF

Page 11

page-11.png

Einfache Bausteine mit Flipflops

  • Register
  • Schieberegister
  • Zähler

Page 12

page-12.png

n-Bit Register

D-Flipflops mit gemeinsamen Clocksignal.

 D₀ ──→[D-FF]──→ Q₀
 D₁ ──→[D-FF]──→ Q₁
  ⋮               ⋮
Dₙ₋₁ ──→[D-FF]──→ Qₙ₋₁
       ← ck →

Entsprechend: n-Bit Latch = D-Latches mit gemeinsamem Schreibsignal .

Page 13

page-13.png

Schieberegister

D₀ ──→[D-FF]──→ Q₀ ──→[D-FF]──→ Q₁ ──→[D-FF]──→ Q₂ ──→[D-FF]──→ Q₃
              ck              ck              ck              ck

In jedem Takt (bei jeder steigenden Flanke von ck) werden die Werte im Register um eine Position nach rechts verschoben.

Page 14

page-14.png

Zähler

Ein -Bit-Zähler ist eine Schaltung mit folgenden Ein- und Ausgängen:

  • Dateneingänge
  • Datenausgänge
  • Dateneingang für Eingangsübertrag
  • Datenausgang für Ausgangsübertrag
  • Eingänge für Kontrollsignale:
    • (Clear)
    • (Load)
    • ck (Clock)
         ┌─────────┐
    /C ──→│         │──→ Cₒᵤₜ
    ck ──→│  n-CNT  │
    X ──→│         │──→ Y
    /L ──→│         │
         └─────────┘

Page 15

page-15.png

Aufbau eines Zählers

         ┌─────────┐     ┌───────┐
    /C ──→│         │──→│       │──→ Y
    ck ──→│  n-INC  │   │ n-Reg │
  Cin ──→│         │──→│       │──→ Cₒᵤₜ
    /L ──→│         │   │       │
    X ──→│         │   │       │
         └─────────┘     └───────┘
              ck ─────────→

Page 16

page-16.png

n-Bit Zähler: Funktionalität

Ein Zähler speichert ein -Bit-Wort, das an den Ausgängen erscheint (Zählerstand).

Bei jeder steigenden Flanke von ck wird ein neuer Zählerstand gespeichert. Für gilt: