k430-Entwurf_sequentieller_Schaltkreise
k430-Entwurf_sequentieller_Schaltkreise
Page 1
Kapitel 4 – Sequentielle Logik
- Speichernde Elemente
- Sequentielle Schaltkreise
- Entwurf sequentieller Schaltkreise
- SRAM
- Anwendung: Datenpfade von ReTI
- Anwendung: Kontrolllogik von ReTI
Albert-Ludwigs-Universität Freiburg
Prof. Dr. Armin Biere
Institut für Informatik
Page 2
Entwurf sequentieller Schaltkreise
Zustandsdiagramm:
┌───┐ 0/0 ┌───┐
│ 0 │───→───│ 1 │
└───┘ └───┘
Zustands- und Ausgangstafel:
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 | 1 |
x₁ᵗ ... xₖᵗ y₁ᵗ ... yₘᵗ
│ │ ↑ ↑
┌──────────────────┐ s₁ᵗ⁺¹ ... sₚᵗ⁺¹ │ │
│ δ │──→ │ Register │ │
└──────────────────┘ │ │ │
┌──────────────────┐ │ │ │
│ λ │←───│ s₁ᵗ ... sₚᵗ │ │
└──────────────────┘ └───────────────┘ │
Page 3
Entwurfsschritte
- Optimierung des Zustandsdiagramms:
- Zustandsminimierung – Identifikation der äquivalenten Zustände.
- Ergebnis: Ein (evtl. kleineres) Zustandsdiagramm.
- Wahl der Zustandskodierung.
- Ergebnis: Anzahl der Flipflops im Register, Funktionen
und (Zustands- und Ausgangstafel).
- Ergebnis: Anzahl der Flipflops im Register, Funktionen
- Implementierung von
und .- Kombinatorische Logiksynthese, z.B. Quine-McCluskey.
Page 4
Zustandsminimierung
Idee: Bestimme und verschmelze äquivalente Zustände.
Zwei Zustände sind äquivalent, wenn der Automat von ihnen aus bei gleichen Eingabefolgen stets die gleichen Ausgabefolgen produziert.
s₁ s₂ s₃ s₄ s₁,₂ s₃ s₄
●─────●─────●─────● ⇒ ●─────●─────●
Page 5
Weiteres Beispiel (1/4)
Hinreichende Bedingung (unvollständiges Verfahren!): Wenn bei zwei Zuständen bei gleicher Eingabe auch die gleiche Ausgabe erzeugt wird und der gleiche Folgezustand angenommen wird, dann sind die Zustände sicherlich äquivalent.
Äquivalente Zustände können durch einen einzigen Zustand ersetzt werden (siehe nächste Folie).
Page 6
Weiteres Beispiel (2/4)
a ── b ── c ── d ── e ── f ── g ── h
Zustand
Page 7
Weiteres Beispiel (3/4)
a ── b ── c ── d ── f ── g ── h
Zustand
Zustand
Page 8
Weiteres Beispiel (4/4)
a ── b ── d ── f ── g ── h
Zustand
Page 9
Entwurfsschritte
- Optimierung des Zustandsdiagramms:
- Zustandsminimierung – Identifikation der äquivalenten Zustände.
- Ergebnis: Ein (evtl. kleineres) Zustandsdiagramm.
- Wahl der Zustandskodierung.
- Ergebnis: Anzahl der Flipflops im Register, Funktionen
und (Zustands- und Ausgangstafel).
- Ergebnis: Anzahl der Flipflops im Register, Funktionen
- Implementierung von
und .- Kombinatorische Logiksynthese, z.B. Quine-McCluskey.
Page 10
Zustandskodierung
Kodierung
4 Monome, 9 Literale
Kodierung
6 Monome, 11 Literale
Ziel: Wähle Zustandskodierung, die nachfolgende kombinatorische Synthese erleichtert. Dafür gibt es (heuristische) Verfahren.
Page 11
Gray-Code inspirierte Kodierungen
Gray-Code:
| 0 | 0 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 2 | 1 | 1 |
| 2 | 1 | 1 | 3 | 1 | 0 |
| 3 | 1 | 0 | 0 | 0 | 0 |
Natürliche Kodierung:
| 0 | 0 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 2 | 1 | 0 |
| 2 | 1 | 0 | 3 | 1 | 1 |
| 3 | 1 | 1 | 0 | 0 | 0 |
Page 12
Entwurf eines einfachen sequentiellen Schaltkreises am Beispiel
Aufgabenbeschreibung (Textspezifikation): Modulo-4 Vorwärts/Rückwärtszähler
Der Zähler soll von 0 bis 3 zählen können.
- Ist der Steuereingang
auf 1 gesetzt, so soll vorwärts gezählt werden, d.h. die Zahlenfolge durchlaufen werden. - Ist
auf 0 gesetzt, so soll rückwärts gezählt werden, d.h. die Zahlenfolge durchlaufen werden. - Am Ausgang ist der Zählerstand anzugeben (Ausgabevektor
). - Start des Zählers mit Wert 0.
Page 13
Zustände im Zustandsdiagramm
Wie viele Zustände benötigt das Zustandsdiagramm für den Zähler bei der gegebenen Spezifikation?
a. 1
b. 2
c. 4
d. 8
e. 16
Page 14
Von der Textspezifikation zum Zustandsdiagramm
4 Zustände erforderlich. Startzustand 0.
Start
↓
┌───┐ 1/ ┌───┐ 1/ ┌───┐ 1/ ┌───┐
│ 0 │──→──│ 1 │──→──│ 2 │──→──│ 3 │
└───┘ └───┘ └───┘ └───┘
Page 15
Vom Zustandsdiagramm zur Zustands- und Ausgangstafel
Zustandsminimierung
Zustandskodierung:
Zustands- und Ausgangstafel:
| 1 | 0 | 0 | 0 | 1 | 0 | 0 | Vorwärts |
| 1 | 0 | 1 | 1 | 0 | 0 | 1 | zählen |
| 1 | 1 | 0 | 1 | 1 | 1 | 0 | |
| 1 | 1 | 1 | 0 | 0 | 1 | 1 | |
| 0 | 1 | 1 | 1 | 0 | 1 | 1 | Rückwärts |
| 0 | 1 | 0 | 0 | 1 | 1 | 0 | zählen |
| 0 | 0 | 1 | 0 | 0 | 0 | 1 | |
| 0 | 0 | 0 | 1 | 1 | 0 | 0 |
←──── Eingänge ────→ ←──── Ausgänge ────→
Page 16
Implementierung des kombinatorischen Kerns
| 1 | 0 | 0 | 0 | 1 | 0 | 0 | Vorwärts |
| 1 | 0 | 1 | 1 | 0 | 0 | 1 | zählen |
| 1 | 1 | 0 | 1 | 1 | 1 | 0 | |
| 1 | 1 | 1 | 0 | 0 | 1 | 1 | |
| 0 | 1 | 1 | 1 | 0 | 1 | 1 | Rückwärts |
| 0 | 1 | 0 | 0 | 1 | 1 | 0 | zählen |
| 0 | 0 | 1 | 0 | 0 | 0 | 1 | |
| 0 | 0 | 0 | 1 | 1 | 0 | 0 |
Übergangsfunktion:
Page 17
Implementierung des komb. Kerns: Logikminimierung
Ausgangsfunktion:
Übergangsfunktion:
Minimierung:
Page 18
Beispiel: Ergebnis
┌─────────────┐
x ────────→│ Übergangs- │──→ z₁ᵗ⁺¹ ──→[D-FF₁]──→ z₁ᵗ ──→ y₁
│ funktion δ │ │
│ │──→ z₀ᵗ⁺¹ ──→[D-FF₀]──→ z₀ᵗ ──→ y₀
└─────────────┘ │
↑ │
└──────────────────────────┘
ck ──→
Resultierender Automat ist Moore-Automat.
Ausgabefunktion ist Identität auf den Zustandsbits:

















