BCD-Decoder für 7-Segment-Anzeige: Von der Wahrheitstabelle zur Simulation
Ein BCD-Decoder wandelt eine 4-Bit-Binärcode-Dezimalzahl (0–9) in Signale für eine 7-Segment-Anzeige um. Jeder Segment (a–g) wird durch eine Logikfunktion gesteuert, die aus den Eingängen x3 (MSB), x2, x1 und x0 (LSB) abgeleitet wird. Für Ziffern 10–15 (1010–1111) werden alle Segmente deaktiviert.
Die Wahrheitstabelle definiert die Zustände der Segmente:
| Ziffer | x3 | x2 | x1 | x0 | a | b | c | d | e | f | g |
|--------|----|----|----|----|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
| 2 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
| 3 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
| 4 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
| 5 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
| 6 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 |
| 7 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| 8 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 9 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
Synthese der Logikfunktionen
Für jedes Segment wird eine Boolesche Funktion synthetisiert. Die Wahl der Methode richtet sich danach, ob Einsen oder Nullen dominieren:
- SOP (Summe von Produkten, mit Einsen): Konjunktionen von Mintermen mit Ausgabe 1, verbunden durch Disjunktion. Ideal, wenn mehr als 50 % der Ausgaben 1 sind.
- POS (Produkt von Summen, mit Nullen): Disjunktionen von Maxtermen mit Ausgabe 0, verbunden durch Konjunktion. Optimal, wenn mehr als 50 % der Ausgaben 0 sind.
Beispiel für Segment A (2 Nullen: 1, 4) – POS:
- Zeile 0001:
(x3 ∨ x2 ∨ x1 ∨ ¬x0) - Zeile 0100:
(x3 ∨ ¬x2 ∨ x1 ∨ x0) - A =
(x3 ∨ x2 ∨ x1 ∨ ¬x0) ∧ (x3 ∨ ¬x2 ∨ x1 ∨ x0)
Beispiel für E (4 Einsen) – SOP:
- 0000:
¬x3 ∧ ¬x2 ∧ ¬x1 ∧ ¬x0 - 0010:
¬x3 ∧ ¬x2 ∧ x1 ∧ ¬x0 - 0110:
¬x3 ∧ x2 ∧ x1 ∧ ¬x0 - 1000:
x3 ∧ ¬x2 ∧ ¬x1 ∧ ¬x0 - E = Vereinigung über ∨.
Ausdrucksminimierung
Vereinfachung mittels Karnaugh-Karten oder Online-Rechnern. Endgültige minimierte Ausdrücke (Summe von Produkten):
- a:
((¬x0 ∧ ¬x2) ∨ x3 ∨ x1 ∨ (x0 ∧ x2)) - b:
((¬x0 ∧ ¬x1) ∨ ¬x2 ∨ x3 ∨ (x0 ∧ x1)) - c:
x3 ∨ x2 ∨ ¬x1 ∨ x0 - d:
((¬x0 ∧ ¬x2) ∨ x3 ∨ (¬x0 ∧ x1) ∨ (x0 ∧ ¬x1 ∧ x2) ∨ (x1 ∧ ¬x2)) - e:
((¬x0 ∧ ¬x1 ∧ ¬x2) ∨ (¬x0 ∧ x1 ∧ ¬x3)) - f:
((¬x0 ∧ ¬x1) ∨ x3 ∨ (¬x0 ∧ x2) ∨ (¬x1 ∧ x2)) - g:
((¬x0 ∧ ¬x1 ∧ ¬x2) ∨ (¬x0 ∧ x1 ∧ ¬x2) ∨ (x0 ∧ x1 ∧ ¬x2) ∨ (x3 ∧ ¬x2 ∧ ¬x1))
Diese Ausdrücke werden mit AND-, OR- und NOT-Gattern realisiert.
Hierarchische Implementierung in Digital Deeds
Digital Deeds unterstützt hierarchische Blöcke (.cbe für Blöcke, .pbs für Schaltpläne).
Schritt 1: Segmentblock
- Neuen Block erstellen: 4 Eingänge (x3–x0), 1 Ausgang.
- Pins umbenennen: Doppelklick.
- Leitungen verbinden (Strg+W) entsprechend der Formel, z. B. für A.
Schritt 2: Hauptschaltung
- Neue Schaltung anlegen.
- Benutzerdefinierte Komponenten importieren (7 Blöcke).
- Parallele Eingänge x0–x3 an alle Blöcke anschließen.
- Ausgänge mit der 7-Segment-Anzeige verbinden.
Testen: Durchlauf von 0000–1001 zeigt korrekte Ziffern. Der Simulator generiert Zeitdiagramme zur Fehlersuche.
Wichtige Erkenntnisse
- Wähle SOP oder POS je nach Häufigkeit von 1 oder 0 in der Wahrheitstabelle.
- Minimierung reduziert Bauteilanzahl: Karnaugh-Karten sind optimal für 4 Variablen.
- Hierarchische Blöcke erleichtern die Skalierung für FPGA/ASIC-Entwürfe.
- BCD-Decoder sind grundlegend für Zähler, Timer und digitale Anzeigen.
- Simulationsprüfungen erkennen Fehler vor der physischen Prototypenherstellung.
— Editorial Team
Noch keine Kommentare.