Concevoir un décodeur BCD pour afficheur 7 segments : du tableau de vérité à la simulation
Un décodeur BCD convertit une entrée codée binaire (0–9) sur 4 bits en signaux destinés à un afficheur 7 segments. Chaque segment (a–g) est contrôlé par une fonction logique issue des entrées x3 (bit de poids fort), x2, x1 et x0 (bit de poids faible). Pour les chiffres 10 à 15 (1010–1111), tous les segments sont éteints.
Le tableau de vérité définit l'état de chaque segment :
| Chiffre | 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 |
Méthodes de synthèse des fonctions logiques
Pour chaque segment, on synthétise une fonction booléenne. La méthode choisie dépend de la densité des 1 ou des 0 dans le tableau :
- SOP (Somme de produits, basée sur les 1) : conjonction de minterms ayant une sortie à 1, reliés par une disjonction. Idéal quand plus de 50 % des sorties sont à 1.
- POS (Produit de sommes, basée sur les 0) : disjonction de maxterms ayant une sortie à 0, reliés par une conjonction. Optimal si plus de 50 % des sorties sont à 0.
Exemple pour le segment A (2 zéros : 1, 4) — POS :
- Ligne 0001 :
(x3 ∨ x2 ∨ x1 ∨ ¬x0) - Ligne 0100 :
(x3 ∨ ¬x2 ∨ x1 ∨ x0) - A =
(x3 ∨ x2 ∨ x1 ∨ ¬x0) ∧ (x3 ∨ ¬x2 ∨ x1 ∨ x0)
Exemple pour E (4 uns) — SOP :
- 0000 :
¬x3 ∧ ¬x2 ∧ ¬x1 ∧ ¬x0 - 0010 :
¬x3 ∧ ¬x2 ∧ x1 ∧ ¬x0 - 0110 :
¬x3 ∧ x2 ∧ x1 ∧ ¬x0 - 1000 :
x3 ∧ ¬x2 ∧ ¬x1 ∧ ¬x0 - E = union via ∨.
Minimisation des expressions
Simplifiez à l’aide de cartes de Karnaugh ou d’outils en ligne. Expressions finales minimisées (somme de produits) :
- 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))
Ces expressions sont implémentées avec des portes AND, OR et NOT.
Implémentation hiérarchique dans Digital Deeds
Digital Deeds permet des blocs hiérarchiques (.cbe pour les blocs, .pbs pour les schémas).
Étape 1 : Bloc segment
- Créer un nouveau bloc : 4 entrées (x3–x0), 1 sortie.
- Renommer les broches : double-cliquer.
- Relier les fils (Ctrl+W) selon la formule, par exemple pour A.
Étape 2 : Circuit principal
- Nouveau circuit.
- Importer des composants personnalisés (7 blocs).
- Entrées parallèles x0–x3 vers tous les blocs.
- Sorties connectées à l'afficheur 7 segments.
Test : balayage de 0000 à 1001 affiche correctement les chiffres. Le simulateur génère des diagrammes temporels pour le débogage.
Points clés
- Choisissez SOP ou POS selon la densité de 1 ou de 0 dans le tableau.
- La minimisation réduit le nombre de composants : les cartes de Karnaugh sont idéales pour 4 variables.
- Les blocs hiérarchiques simplifient l’évolutivité pour les FPGA/ASIC.
- Les décodeurs BCD sont fondamentaux pour les compteurs, les minuteries et les afficheurs numériques.
- Le test en simulation détecte les erreurs avant la fabrication physique.
— Editorial Team
Aucun commentaire pour le moment.