Synteza dekodera BCD do wyświetlacza 7-segmentowego: od tabeli prawdy do symulacji
Dekoder BCD przekształca 4-bitowy kod dwójkowo-dziesiętny (0–9) w sygnały sterujące wyświetlaczem 7-segmentowym. Każdy segment (a–g) jest sterowany funkcją logiczną od wejść x3 (najstarszy bit), x2, x1, x0 (najmłodszy bit). Dla cyfr 10–15 (1010–1111) wszystkie segmenty są wygaszone.
Tabela prawdy określa stany poszczególnych segmentów:
| Cyfra | 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 |
Metody syntezowania funkcji logicznych
Dla każdego segmentu tworzy się funkcję boolowską. Wybór metody zależy od dominacji jedynek lub zer:
- DNF (wg jedynek): koniunkcje minitermów z wynikiem 1, połączone alternatywą. Skuteczne przy >50% jedynek.
- KNF (wg zer): alternatywy makstermów z wynikiem 0, połączone koniunkcją. Optymalne przy >50% zer.
Przykład dla segmentu A (2 zera: 1,4) — KNF:
- Wiersz 0001:
(x3 ∨ x2 ∨ x1 ∨ ¬x0) - Wiersz 0100:
(x3 ∨ ¬x2 ∨ x1 ∨ x0) - A =
(x3 ∨ x2 ∨ x1 ∨ ¬x0) ∧ (x3 ∨ ¬x2 ∨ x1 ∨ x0)
Przykład dla E (4 jedynki) — DNF:
- 0000:
¬x3 ∧ ¬x2 ∧ ¬x1 ∧ ¬x0 - 0010:
¬x3 ∧ ¬x2 ∧ x1 ∧ ¬x0 - 0110:
¬x3 ∧ x2 ∧ x1 ∧ ¬x0 - 1000:
x3 ∧ ¬x2 ∧ ¬x1 ∧ ¬x0 - E = połączenie przez ∨.
Minimalizacja wyrażeń
Uproszczenie za pomocą map Karnaugh lub kalkulatorów online. Pełne zminimalizowane formuły (suma iloczynów):
- 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))
Te wyrażenia realizuje się na bramkach AND, OR, NOT.
Realizacja hierarchiczna w Digital Deeds
Digital Deeds obsługuje bloki hierarchiczne (.cbe dla bloków, .pbs dla schematów).
Krok 1: Blok segmentu
- Nowy blok: 4 wejścia (x3–x0), 1 wyjście.
- Zmiana nazw pinów: podwójne kliknięcie.
- Połączenie przewodami (Ctrl+W) według wzoru, np. dla A.
Krok 2: Główny schemat
- Nowy obwód.
- Import komponentów niestandardowych (7 bloków).
- Wejścia x0–x3 połączone równolegle do wszystkich bloków.
- Wyjścia podłączone do wyświetlacza 7-segmentowego.
Testowanie: przejrzenie 0000–1001 pokazuje poprawne cyfry. Symulator generuje wykresy czasowe do debugowania.
Co warto pamiętać
- Wybór DNF/KNF zależy od gęstości jedynek i zer w tabeli prawdy.
- Minimalizacja zmniejsza liczbę elementów: karty Karnaugh dla 4 zmiennych są optymalne.
- Bloki hierarchiczne ułatwiają skalowanie do FPGA/ASIC.
- Dekoder BCD to podstawowy blok w licznikach, zegarach, wyświetlaczach.
- Testowanie w symulatorze wykrywa błędy przed fizyczną montażem.
— Editorial Team
Brak komentarzy.