Chapitre 9 — Comparateurs, codeurs et décodeurs
Niveau conseillé : Bac+1 / Bac+2 — Cycle préparatoire, BTS, BUT, Licence
| Finalité du chapitre Comprendre, concevoir, associer et tester les principaux circuits combinatoires de comparaison et de conversion de codes, tout en tenant compte des signaux de validation, de la polarité des entrées et sorties et des contraintes pratiques de câblage. |
Présentation du chapitre
Les circuits de comparaison, de codage et de décodage assurent l’interface entre différentes représentations de l’information numérique. Le comparateur détermine la relation entre deux mots binaires. Le décodeur sélectionne une sortie à partir d’un code d’entrée. Le codeur réalise l’opération inverse et peut intégrer un mécanisme de priorité. Enfin, le décodeur BCD–sept segments convertit une valeur décimale codée en binaire en un motif directement lisible sur un afficheur.
Ces fonctions sont présentes dans les unités arithmétiques, les systèmes d’adressage, les interfaces clavier, les contrôleurs d’interruptions, les automatismes et les systèmes d’affichage. Leur étude permet de consolider la méthode générale de conception des circuits combinatoires : définition des entrées et sorties, établissement de la table de vérité, écriture des équations, simplification, réalisation et validation.
Objectifs pédagogiques
À la fin du chapitre, l’étudiant sera capable de… | Indicateur de maîtrise |
|---|---|
expliquer les fonctions d’un comparateur, d’un décodeur et d’un codeur | le rôle de chaque bloc est distingué sans ambiguïté |
concevoir un comparateur sur un bit | la table et les trois équations sont correctement établies |
étendre la comparaison à plusieurs bits | la priorité du bit de poids fort est appliquée |
concevoir un décodeur 2 vers 4 ou 3 vers 8 | une seule sortie est active pour chaque code valide |
utiliser une entrée de validation | l’état désactivé du composant est correctement interprété |
générer une fonction logique avec un décodeur | les mintermes utiles sont réunis par une porte OU |
distinguer codeur simple et codeur prioritaire | les cas de plusieurs entrées actives sont correctement gérés |
commander un afficheur sept segments | la polarité et les résistances de limitation sont prises en compte |
Prérequis
- connaître les systèmes binaire, décimal et BCD ;
- savoir utiliser les portes NON, ET, OU, NAND, NOR, XOR et XNOR ;
- savoir établir une table de vérité et une expression logique ;
- maîtriser les formes canoniques et les mintermes ;
- savoir simplifier une fonction à l’aide des lois de Boole ou d’un tableau de Karnaugh.
Organisation du chapitre
Partie | Contenu principal | Production attendue |
|---|---|---|
9.1 | comparateur numérique | détermination de A = B, A > B et A < B |
9.2 | décodeur | activation d’une sortie parmi 2ⁿ à partir de n entrées |
9.3 | codeur | conversion d’une entrée active en code binaire |
9.4 | BCD vers sept segments | commande des segments a à g pour afficher 0 à 9 |
Applications | adressage, sélection, affichage | mise en œuvre des circuits dans un système numérique |

Figure 1 — Progression des fonctions étudiées dans le chapitre.
9.1. Comparateur numérique
9.1.1. Rôle général
Un comparateur numérique est un circuit combinatoire qui reçoit deux nombres binaires A et B et indique la relation d’ordre entre eux. Il possède généralement trois sorties mutuellement exclusives : E pour l’égalité, G pour la supériorité de A sur B et L pour l’infériorité de A par rapport à B.
| Propriété fondamentale Pour des entrées valides, une seule des trois relations A = B, A > B ou A < B est vraie. On doit donc avoir E + G + L = 1 et les produits EG, EL et GL doivent être nuls. |
9.1.2. Sortie d’égalité
La sortie E vaut 1 lorsque les deux mots présentent exactement les mêmes bits. Pour un seul bit, l’égalité est réalisée par une porte XNOR.
9.1.3. Sortie de supériorité
La sortie G vaut 1 lorsque A est supérieur à B. Sur un bit, ce cas se produit uniquement pour A = 1 et B = 0.
9.1.4. Sortie d’infériorité
La sortie L vaut 1 lorsque A est inférieur à B. Sur un bit, ce cas se produit uniquement pour A = 0 et B = 1.

Figure 2 — Comparateur sur un bit et principe de l’extension à plusieurs bits.
9.1.5. Comparateur sur un bit
A | B | E : A = B | G : A > B | L : A < B | Interprétation |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | les deux bits sont égaux |
| 0 | 1 | 0 | 0 | 1 | A est inférieur à B |
| 1 | 0 | 0 | 1 | 0 | A est supérieur à B |
| 1 | 1 | 1 | 0 | 0 | les deux bits sont égaux |
E = A XNOR B = A·B + ¬A·¬B
G = A·¬B
L = ¬A·B
La fonction d’égalité peut également être obtenue en inversant la sortie d’une porte XOR. Les fonctions de supériorité et d’infériorité sont des mintermes simples. La structure est donc constituée d’une XNOR, de deux inverseurs et de deux portes ET.
9.1.6. Extension à plusieurs bits
Pour comparer deux mots non signés A = Aₙ₋₁…A₀ et B = Bₙ₋₁…B₀, on commence par le bit de poids fort. Si Aₙ₋₁ et Bₙ₋₁ sont différents, ils déterminent immédiatement le résultat. S’ils sont égaux, le circuit examine le rang suivant, jusqu’au bit de poids faible.
| Règle lexicographique Le premier rang, en partant du poids fort, pour lequel les deux bits diffèrent détermine la relation d’ordre. Tous les bits de poids plus faible deviennent alors sans influence. |
Exemple sur deux bits
Soient A = A₁A₀ et B = B₁B₀. L’égalité exige l’égalité des deux paires de bits. La supériorité est obtenue si A₁ > B₁, ou si les bits de poids fort sont égaux et A₀ > B₀.
E = (A₁ XNOR B₁)·(A₀ XNOR B₀)
G = A₁·¬B₁ + (A₁ XNOR B₁)·A₀·¬B₀
L = ¬A₁·B₁ + (A₁ XNOR B₁)·¬A₀·B₀
A | B | A₁₀ | B₁₀ | Analyse |
|---|---|---|---|---|
10 | 01 | 2 | 1 | A > B, décidé par le bit de poids fort |
10 | 11 | 2 | 3 | A < B, décidé par le bit de poids fort |
1010 | 1001 | 10 | 9 | les trois premiers bits sont égaux ; le dernier décide |
0111 | 0111 | 7 | 7 | tous les bits sont égaux |
9.1.7. Mise en cascade de comparateurs
Les circuits intégrés de comparaison disposent souvent d’entrées de cascade indiquant le résultat obtenu sur des bits de poids plus faible ou plus fort. Plusieurs blocs peuvent ainsi être associés pour comparer des mots de 8, 16 bits ou davantage. Il faut respecter le sens de propagation prévu par le composant et fixer correctement les entrées du premier étage.
- initialiser l’entrée d’égalité du premier étage à 1 ;
- initialiser les entrées « supérieur » et « inférieur » à 0 ;
- relier les sorties de cascade d’un étage aux entrées correspondantes de l’étage suivant ;
- prélever le résultat global sur l’étage qui traite les bits les plus significatifs.
9.1.8. Comparaison signée et non signée
Un comparateur logique standard traite les mots comme des entiers non signés. En complément à 2, le bit de poids fort représente le signe. Une comparaison signée doit donc traiter séparément le cas où les signes diffèrent. Par exemple, 1111₂ vaut 15 en non signé mais −1 en signé. Le même mot binaire ne conduit donc pas au même ordre selon l’interprétation choisie.
| Attention Avant toute comparaison, préciser si les données représentent des entiers non signés, des entiers signés en complément à 2 ou de simples codes. Cette convention fait partie du cahier des charges. |
9.1.9. Applications des comparateurs
- détection d’une valeur limite dans un système de contrôle ;
- comparaison d’adresses ou d’identifiants ;
- classement et tri de données ;
- génération des indicateurs égal, supérieur et inférieur d’une unité arithmétique ;
- commande d’une alarme lorsque la mesure dépasse un seuil ;
- vérification d’un mot de passe ou d’un code numérique.
9.2. Décodeur
9.2.1. Définition et principe
Un décodeur n vers 2ⁿ reçoit un mot binaire de n bits et active l’une de ses 2ⁿ sorties. Chaque sortie correspond à un minterme unique des variables d’entrée. Dans un décodeur à sorties actives à 1, une seule sortie prend la valeur 1 lorsque le circuit est validé ; toutes les autres restent à 0.
| Principe « one-hot » Le code d’entrée sélectionne exactement une ligne de sortie. L’information n’est plus portée par une combinaison de bits, mais par la position de la sortie active. |
9.2.2. Entrée de validation
L’entrée de validation, souvent notée E, EN, G ou Enable, autorise ou interdit le fonctionnement du décodeur. Elle peut être active à 1 ou active à 0. Lorsque le composant est désactivé, toutes les sorties prennent un état inactif défini par la technologie : 0 pour des sorties actives à 1, ou 1 pour des sorties actives à 0.
Type | Niveau de E | Comportement |
|---|---|---|
Validation active à 1 | E = 1 | décodage normal |
Validation active à 1 | E = 0 | toutes les sorties sont inactives |
Validation active à 0 | E = 0 | décodage normal |
Validation active à 0 | E = 1 | toutes les sorties sont inactives |
9.2.3. Décodeur 2 vers 4

Figure 3 — Principe d’un décodeur 2 vers 4 avec validation active à 1.
A₁ | A₀ | E | Y₀ | Y₁ | Y₂ | Y₃ | Interprétation |
|---|---|---|---|---|---|---|---|
| X | X | 0 | 0 | 0 | 0 | 0 | circuit désactivé |
| 0 | 0 | 1 | 1 | 0 | 0 | 0 | Y₀ active |
| 0 | 1 | 1 | 0 | 1 | 0 | 0 | Y₁ active |
| 1 | 0 | 1 | 0 | 0 | 1 | 0 | Y₂ active |
| 1 | 1 | 1 | 0 | 0 | 0 | 1 | Y₃ active |
Y₀ = E·¬A₁·¬A₀ ; Y₁ = E·¬A₁·A₀
Y₂ = E·A₁·¬A₀ ; Y₃ = E·A₁·A₀
Chaque équation contient la validation E et le minterme correspondant au numéro de sortie. Le décodeur peut donc être réalisé avec deux inverseurs et quatre portes ET à trois entrées.
9.2.4. Décodeur 3 vers 8
Le décodeur 3 vers 8 comporte trois entrées A₂, A₁ et A₀, une validation et huit sorties. Les sorties Y₀ à Y₇ correspondent aux mintermes m₀ à m₇. Par exemple, le code 101₂ sélectionne Y₅.
A₂ | A₁ | A₀ | Y₀ | Y₁ | Y₂ | Y₃ | Y₄ | Y₅ | Y₆ | Y₇ | État |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Y0 active |
| 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | Y1 active |
| 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | Y2 active |
| 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | Y3 active |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Y4 active |
| 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Y5 active |
| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | Y6 active |
| 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Y7 active |
Yᵢ = E·mᵢ(A₂,A₁,A₀), pour i = 0 à 7
9.2.5. Extension de capacité
Des décodeurs de petite taille peuvent être associés pour obtenir un décodeur plus grand. Pour construire un décodeur 4 vers 16 avec deux décodeurs 3 vers 8, le bit de poids fort sélectionne l’un des deux blocs grâce à leurs entrées de validation, tandis que les trois autres bits sont appliqués en parallèle aux deux blocs.
- le bit supplémentaire ne commande pas directement les sorties ; il choisit le sous-décodeur actif ;
- les entrées de validation doivent être de polarités compatibles ;
- aucun sous-décodeur ne doit être simultanément sélectionné avec un autre pour la même adresse ;
- les sorties conservent une correspondance claire avec les codes 0000 à 1111.
9.2.6. Sélection d’un périphérique
Dans un système à microprocesseur, plusieurs mémoires et périphériques partagent les mêmes bus. Les bits de poids fort de l’adresse sont appliqués à un décodeur. Chaque sortie devient un signal de sélection de circuit, souvent appelé CS ou Chip Select. Un seul composant est autorisé à répondre pour une plage d’adresses donnée.

Figure 4 — Utilisation d’un décodeur pour sélectionner des zones mémoire et des périphériques.
9.2.7. Génération de fonctions logiques
Puisque les sorties d’un décodeur représentent tous les mintermes des variables d’entrée, toute fonction sous forme canonique somme de produits peut être obtenue en réunissant par une porte OU les sorties correspondant aux mintermes où la fonction vaut 1.
| Exemple Pour F(A,B,C) = Σm(1,2,5,7), utiliser un décodeur 3 vers 8 et relier Y₁, Y₂, Y₅ et Y₇ à une porte OU. La sortie de cette porte réalise directement F. |
Si les sorties du décodeur sont actives à 0, une structure NAND est généralement plus naturelle. Il faut toujours tenir compte de la polarité réelle des sorties avant de choisir la porte de combinaison.
9.2.8. Adressage mémoire
Le décodage d’adresses consiste à reconnaître une plage de valeurs. Les bits de poids fort identifient la zone, tandis que les bits de poids faible adressent une case à l’intérieur du composant sélectionné. Un décodage complet utilise tous les bits nécessaires et garantit qu’une adresse ne correspond qu’à un composant. Un décodage partiel peut économiser des portes, mais crée des images miroir de la même ressource à plusieurs adresses.
Méthode | Principe | Conséquence |
|---|---|---|
Décodage complet | tous les bits significatifs sont utilisés | pas d’ambiguïté ; plus de logique |
Décodage partiel | certains bits ne sont pas pris en compte | circuit plus simple ; adresses miroir possibles |
9.2.9. Contraintes pratiques
- vérifier si la validation et les sorties sont actives à 1 ou actives à 0 ;
- ne pas laisser une entrée de validation flottante ;
- considérer les temps de propagation, surtout lors d’un changement simultané de plusieurs bits ;
- éviter les conflits de bus en garantissant qu’un seul périphérique est validé ;
- prendre en compte la capacité de commande des sorties si plusieurs entrées sont raccordées.
9.3. Codeur
9.3.1. Fonction inverse du décodeur
Un codeur transforme la position d’une entrée active en un mot binaire. Un codeur 2ⁿ vers n possède 2ⁿ entrées et n sorties. Dans sa forme simple, il suppose qu’une seule entrée est active à la fois. Le code de sortie correspond alors au numéro de cette entrée.
9.3.2. Codeur simple 4 vers 2
D₀ | D₁ | D₂ | D₃ | Q₁ | Q₀ | Interprétation |
|---|---|---|---|---|---|---|
| 1 | 0 | 0 | 0 | 0 | 0 | D₀ active |
| 0 | 1 | 0 | 0 | 0 | 1 | D₁ active |
| 0 | 0 | 1 | 0 | 1 | 0 | D₂ active |
| 0 | 0 | 0 | 1 | 1 | 1 | D₃ active |
Q₁ = D₂ + D₃
Q₀ = D₁ + D₃
Ces équations sont valables uniquement si une seule entrée est active. Par exemple, D₁ = 1 produit 01, et D₃ = 1 produit 11.
9.3.3. Limite du codeur simple
Si plusieurs entrées sont actives simultanément, les équations du codeur simple mélangent leurs contributions. Le résultat peut correspondre à une entrée différente de toutes celles qui sont réellement actives. Par exemple, D₁ = D₂ = 1 donne Q₁Q₀ = 11, ce qui ressemble au code de D₃. Le circuit ne permet pas non plus de distinguer l’absence d’entrée active du cas D₀ actif, car les deux situations peuvent produire 00.
| Deux ambiguïtés à résoudre 1) plusieurs entrées peuvent être actives ; 2) le code 00 peut signifier « D₀ active » ou « aucune entrée ». Le codeur prioritaire ajoute une règle de priorité et une sortie de validité. |
9.3.4. Codeur prioritaire

Figure 5 — Codeur prioritaire 4 vers 2 avec sortie de validité V.
Un codeur prioritaire attribue un ordre aux entrées. Lorsque plusieurs entrées sont actives, seule celle ayant la priorité la plus élevée est codée. Dans l’exemple suivant, D₃ possède la priorité maximale, puis D₂, D₁ et enfin D₀. La sortie V indique qu’au moins une entrée est active.
D₃ | D₂ | D₁ | D₀ | Q₁ | Q₀ | V | Décision |
|---|---|---|---|---|---|---|---|
| 1 | X | X | X | 1 | 1 | 1 | D₃ prioritaire |
| 0 | 1 | X | X | 1 | 0 | 1 | D₂ prioritaire |
| 0 | 0 | 1 | X | 0 | 1 | 1 | D₁ prioritaire |
| 0 | 0 | 0 | 1 | 0 | 0 | 1 | D₀ active |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | aucune entrée active |
V = D₃ + D₂ + D₁ + D₀
Q₁ = D₃ + D₂
Q₀ = D₃ + ¬D₂·D₁
Le symbole X signifie « indifférent ». Lorsque D₃ vaut 1, les états de D₂, D₁ et D₀ ne modifient pas la décision. Cette notation réduit la taille de la table et met en évidence la priorité.
9.3.5. Gestion de plusieurs entrées actives
- définir explicitement l’ordre de priorité dans le cahier des charges ;
- ajouter une sortie de validité pour distinguer « aucune entrée » d’un code légitime ;
- ajouter éventuellement une sortie indiquant que plusieurs requêtes sont présentes ;
- utiliser une logique d’inhibition pour empêcher les entrées de priorité inférieure d’influencer la sortie ;
- vérifier le comportement lors des transitions simultanées et les éventuels aléas temporaires.
9.3.6. Extension et mise en cascade
Des codeurs prioritaires peuvent être associés pour traiter davantage d’entrées. Des signaux de groupe indiquent si un bloc contient au moins une requête active et permettent de désactiver les groupes moins prioritaires. Cette organisation est utilisée dans les contrôleurs d’interruptions où de nombreuses sources demandent simultanément l’attention du processeur.
9.3.7. Applications des codeurs
- clavier matriciel : conversion de la touche détectée en code ;
- contrôleur d’interruptions : sélection de la requête la plus prioritaire ;
- encodeur de position : conversion d’une position active en nombre ;
- compression du nombre de lignes nécessaires à la transmission ;
- détection et identification d’un capteur actif parmi plusieurs.
9.4. Décodeur BCD vers afficheur sept segments
9.4.1. Organisation d’un afficheur
Un afficheur sept segments comporte sept éléments lumineux disposés de manière à former les chiffres décimaux. Les segments sont nommés a, b, c, d, e, f et g. Un point décimal, noté dp, peut être ajouté mais il n’est pas commandé par le décodeur BCD standard.

Figure 6 — Repérage des segments et différence entre cathode commune et anode commune.
9.4.2. Afficheur à cathode commune
Dans un afficheur à cathode commune, les cathodes des LED sont reliées ensemble au potentiel bas. Un segment s’allume lorsqu’un niveau logique haut est appliqué à son anode à travers une résistance de limitation. Les sorties a à g sont donc actives à 1.
9.4.3. Afficheur à anode commune
Dans un afficheur à anode commune, les anodes sont reliées au potentiel positif. Un segment s’allume lorsqu’un niveau logique bas est appliqué à sa cathode. Les sorties du décodeur sont actives à 0. Le même chiffre nécessite donc le complément logique des commandes utilisées pour une cathode commune.
Type | Connexion commune | Niveau d’allumage | Polarité des sorties |
|---|---|---|---|
Cathode commune | commun relié au 0 V | 1 | sorties actives à 1 |
Anode commune | commun relié à +V | 0 | sorties actives à 0 |
9.4.4. Entrée BCD
Le code BCD 8421 représente les chiffres 0 à 9 avec quatre bits D, C, B et A, D étant le bit de poids 8 et A le bit de poids 1. Les combinaisons 1010 à 1111 ne correspondent à aucun chiffre décimal valide. Selon le composant, elles peuvent produire un affichage non défini, être utilisées comme cas indifférents lors de la simplification ou être volontairement transformées en affichage blanc.
9.4.5. Commande des segments pour les chiffres 0 à 9
Chiffre | DCBA | a | b | c | d | e | f | g | Segments allumés |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 0000 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | a b c d e f |
| 1 | 0001 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | b c |
| 2 | 0010 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | a b d e g |
| 3 | 0011 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | a b c d g |
| 4 | 0100 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | b c f g |
| 5 | 0101 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | a c d f g |
| 6 | 0110 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | a c d e f g |
| 7 | 0111 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | a b c |
| 8 | 1000 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | a b c d e f g |
| 9 | 1001 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | a b c d f g |
La table précédente correspond à un afficheur à cathode commune, avec sorties actives à 1. Pour une anode commune, chaque commande a à g doit être inversée. Il est possible d’obtenir les équations de chaque segment en considérant séparément les dix combinaisons BCD valides, puis en simplifiant avec des tableaux de Karnaugh à quatre variables.
9.4.6. Exemple : affichage du chiffre 5
- le chiffre 5 est codé BCD par DCBA = 0101 ;
- les segments nécessaires sont a, c, d, f et g ;
- les segments b et e restent éteints ;
- pour une cathode commune, a = c = d = f = g = 1 et b = e = 0 ;
- pour une anode commune, les sept niveaux sont inversés.
9.4.7. Résistances et capacité de commande
Chaque segment est une LED et doit être protégé par une résistance en série. Une résistance commune unique est déconseillée, car le courant par segment varierait avec le nombre de segments allumés. La valeur de la résistance dépend de la tension d’alimentation, de la chute de tension de la LED et du courant souhaité.
R = (V₍alim₎ − V₍LED₎) / I₍segment₎
| Exemple de calcul Pour V₍alim₎ = 5 V, V₍LED₎ = 2 V et I = 10 mA, R = (5 − 2)/0,01 = 300 Ω. On choisit une valeur normalisée proche, par exemple 330 Ω. |
Si le décodeur ne peut pas fournir ou absorber le courant total, il faut utiliser des transistors, des buffers ou un pilote d’affichage spécialisé. Toujours vérifier la fiche technique du composant.
9.4.8. Affichage multiplexé
Pour afficher plusieurs chiffres, les lignes a à g peuvent être partagées et chaque chiffre est activé successivement pendant une courte durée. Cette technique, appelée multiplexage, réduit le nombre de sorties nécessaires. La fréquence de rafraîchissement doit être suffisamment élevée pour éviter le scintillement, et le courant instantané doit respecter les limites des LED et des pilotes.
- activer un seul chiffre à la fois ;
- placer le motif correspondant sur les lignes a à g ;
- attendre une courte durée, puis passer au chiffre suivant ;
- répéter le cycle assez rapidement pour créer une impression d’affichage continu.
9.4.9. Fonctions de contrôle supplémentaires
Certains décodeurs disposent d’entrées telles que Lamp Test, Blanking Input ou Ripple Blanking. Lamp Test allume tous les segments pour vérifier l’afficheur. Blanking force l’extinction. Ripple Blanking facilite la suppression des zéros non significatifs dans un affichage à plusieurs chiffres. Ces entrées sont souvent actives à 0 et doivent être fixées à un niveau défini lorsqu’elles ne sont pas utilisées.
9.5. Comparaison des circuits étudiés
Circuit | Entrées | Sorties | Fonction principale | Applications |
|---|---|---|---|---|
Comparateur | deux mots binaires | E, G, L | établir une relation d’ordre | seuil, tri, test d’égalité |
Décodeur | n bits + validation | 2ⁿ sorties | sélectionner une ligne | adressage, sélection, mintermes |
Codeur simple | 2ⁿ entrées, une seule active | n bits | coder la position active | clavier ou capteur exclusif |
Codeur prioritaire | plusieurs requêtes possibles | n bits + validité | coder la plus prioritaire | interruptions, arbitrage |
BCD–7 segments | 4 bits BCD | 7 commandes | former un chiffre visible | affichage numérique |
9.6. Méthode générale de conception et de vérification
- Lire le cahier des charges et déterminer la représentation des données.
- Identifier toutes les entrées, sorties et entrées de contrôle.
- Préciser la polarité : active à 1, active à 0 ou sortie trois états.
- Établir la table de vérité en incluant les cas invalides ou indifférents.
- Écrire les équations canoniques ou exploiter directement un composant standard.
- Simplifier les équations en tenant compte des cas indifférents autorisés.
- Réaliser le schéma et vérifier le nombre d’entrées de chaque porte.
- Simuler toutes les combinaisons utiles, y compris les cas limites.
- Contrôler les contraintes électriques : courant, fan-out, alimentation et résistances.
- Vérifier les transitions, les temps de propagation et les éventuels aléas.
Travaux dirigés
TD 1 — Comparateur sur un bit
Établir la table de vérité d’un comparateur sur un bit, écrire les équations E, G et L, puis proposer une réalisation avec portes XNOR, ET et NON. Vérifier que E + G + L = 1 pour chaque combinaison.
TD 2 — Comparateur sur deux bits
Concevoir un comparateur de deux nombres A = A₁A₀ et B = B₁B₀. Écrire les équations de l’égalité, de la supériorité et de l’infériorité en utilisant la priorité du bit de poids fort. Tester les cas A = 10, B = 01 ; A = 01, B = 10 ; A = B = 11.
TD 3 — Décodeur 2 vers 4 avec validation
Compléter la table de vérité, établir les quatre équations et réaliser le schéma. Modifier ensuite la conception pour obtenir des sorties actives à 0 à l’aide de portes NAND.
TD 4 — Génération d’une fonction avec un décodeur
Réaliser F(A,B,C) = Σm(0,2,3,6) à l’aide d’un décodeur 3 vers 8 et d’une porte de combinaison. Indiquer la modification nécessaire si les sorties du décodeur sont actives à 0.
TD 5 — Codeur prioritaire
Pour un codeur 4 vers 2 dont la priorité est D₃ > D₂ > D₁ > D₀, compléter la table compacte avec X, déterminer V, Q₁ et Q₀, puis analyser les cas D₂D₁D₀ = 111 et D₃D₂D₁D₀ = 0101.
TD 6 — Affichage sept segments
À partir de la table des chiffres, établir la fonction du segment a pour un afficheur à cathode commune. Utiliser les codes BCD 10 à 15 comme cas indifférents, simplifier la fonction par Karnaugh, puis donner la commande correspondante pour une anode commune.
TD 7 — Décodage d’adresses
Un système possède quatre périphériques devant être sélectionnés à partir de deux bits d’adresse A₁A₀. Proposer un décodeur, attribuer une sortie à chaque périphérique et expliquer comment une entrée Enable globale peut interdire tous les accès.
Activité pratique — Conception et simulation d’une interface numérique
Objectif
Réaliser dans Logisim Evolution, Digital, Proteus ou un logiciel équivalent une chaîne simple composée d’un comparateur, d’un décodeur et d’un afficheur sept segments.
Cahier des charges
- deux mots A et B de deux bits sont fournis par des interrupteurs ;
- un comparateur produit trois LED : A > B, A = B et A < B ;
- la valeur de A est appliquée à un décodeur 2 vers 4 pour sélectionner une LED parmi quatre ;
- la valeur A, précédée de deux zéros, est affichée sur un afficheur sept segments ;
- un signal Enable doit pouvoir désactiver la sélection et l’affichage.
Étapes de réalisation
- Créer les entrées A₁, A₀, B₁, B₀ et Enable.
- Réaliser d’abord les trois sorties du comparateur et vérifier les seize combinaisons.
- Ajouter le décodeur 2 vers 4 et observer la sortie sélectionnée.
- Raccorder A₁A₀ à un bloc BCD–sept segments en ajoutant les bits de poids fort à 0.
- Introduire l’entrée Enable dans les blocs concernés.
- Mesurer ou observer les délais de propagation si le simulateur le permet.
- Produire une table de tests et une capture du circuit final.
Critères de validation
Critère | Résultat attendu |
|---|---|
Comparaison | une seule des sorties G, E, L est active |
Décodage | une seule des quatre LED est active lorsque Enable = 1 |
Affichage | l’afficheur présente les chiffres 0 à 3 |
Désactivation | les sorties prévues deviennent inactives lorsque Enable = 0 |
Documentation | les entrées, sorties et polarités sont clairement nommées |
Synthèse du chapitre
Notion | À retenir |
|---|---|
Comparateur 1 bit | E = A XNOR B ; G = A·¬B ; L = ¬A·B |
Comparaison multibit | le premier bit différent depuis le poids fort décide |
Décodeur n vers 2ⁿ | une sortie représente un minterme de l’entrée |
Validation | autorise le fonctionnement et facilite la mise en cascade |
Codeur simple | suppose une seule entrée active |
Codeur prioritaire | code l’entrée active de priorité maximale |
Sortie de validité | distingue une entrée codée de l’absence de requête |
Sept segments | la polarité dépend du type anode ou cathode commune |
Protection des LED | une résistance série est nécessaire par segment |
| Fil conducteur Comparer établit une relation, décoder transforme un code en position active, coder transforme une position active en code, et afficher transforme un code en information visuelle. |
Glossaire
Terme | Définition |
|---|---|
Actif à 0 | signal considéré comme vrai lorsqu’il vaut 0 ; souvent indiqué par une barre ou une bulle. |
Actif à 1 | signal considéré comme vrai lorsqu’il vaut 1. |
Anode commune | afficheur dont les anodes des LED sont reliées ensemble au potentiel positif. |
Cathode commune | afficheur dont les cathodes des LED sont reliées ensemble au potentiel bas. |
Chip Select | signal autorisant un composant mémoire ou un périphérique à répondre. |
Codeur | circuit transformant la position d’une entrée active en mot binaire. |
Codeur prioritaire | codeur choisissant l’entrée active de priorité la plus élevée. |
Comparateur | circuit déterminant l’égalité ou la relation d’ordre entre deux mots. |
Décodage complet | décodage utilisant tous les bits nécessaires pour identifier sans ambiguïté une zone. |
Décodeur | circuit activant une sortie parmi plusieurs à partir d’un code d’entrée. |
Enable | entrée de validation autorisant ou interdisant le fonctionnement d’un bloc. |
Minterme | produit logique correspondant à une combinaison unique des entrées. |
One-hot | représentation dans laquelle une seule ligne est active à la fois. |
Polarité | niveau logique correspondant à l’état actif d’un signal. |
Sortie de validité | sortie indiquant qu’au moins une entrée du codeur est active. |
Exercices d’entraînement
Exercice 1 — Comparateur 1 bit
Reconstituer les équations E, G et L sans consulter le cours. Réaliser E uniquement avec une porte XOR et un inverseur.
Exercice 2 — Comparateur 3 bits
Comparer A = 101 et B = 100 en expliquant le rôle de chaque rang. Refaire pour A = 011 et B = 100, en interprétation non signée puis signée sur 3 bits.
Exercice 3 — Propriété d’exclusivité
Démontrer à l’aide de la table de vérité que les sorties E, G et L d’un comparateur un bit ne peuvent pas être simultanément actives.
Exercice 4 — Décodeur 3 vers 8
Écrire les équations de Y₀, Y₃, Y₅ et Y₇ avec validation E active à 1.
Exercice 5 — Fonction par décodeur
Réaliser F(A,B,C) = Σm(1,4,6,7) avec un décodeur 3 vers 8.
Exercice 6 — Extension de décodeur
Expliquer comment construire un décodeur 4 vers 16 avec deux décodeurs 3 vers 8 possédant une validation active à 1.
Exercice 7 — Codeur simple
Pour D₁ = D₂ = 1 et D₀ = D₃ = 0, calculer la sortie d’un codeur simple 4 vers 2 et expliquer pourquoi le résultat est ambigu.
Exercice 8 — Codeur prioritaire
Avec la priorité D₃ > D₂ > D₁ > D₀, déterminer Q₁Q₀ et V pour 0000, 0011, 1010 et 0111.
Exercice 9 — Sept segments
Donner les segments allumés pour 2, 4, 6 et 9. Écrire les niveaux correspondants pour une cathode commune puis pour une anode commune.
Exercice 10 — Résistance de segment
Calculer une résistance pour une alimentation de 5 V, une LED de 1,9 V et un courant souhaité de 8 mA. Choisir ensuite une valeur normalisée supérieure.
Exercice 11 — Diagnostic
Un afficheur à anode commune reste éteint alors que le décodeur fournit des 1 sur les segments à allumer. Identifier l’erreur de conception.
Exercice 12 — Adressage
Deux bits A₁A₀ sélectionnent quatre périphériques P₀ à P₃. Donner la table de sélection et les équations des quatre signaux CS actifs à 1.
Auto-évaluation
Question | Choix |
|---|---|
1. Dans un comparateur un bit, A = 1 et B = 0 donnent : | a) E = 1 b) G = 1 c) L = 1 |
2. Un décodeur 3 vers 8 possède : | a) 3 sorties b) 8 entrées c) 8 sorties |
3. La validation sert principalement à : | a) additionner b) autoriser le bloc c) mémoriser |
4. Un codeur simple devient ambigu lorsque : | a) aucune entrée n’existe b) plusieurs entrées sont actives c) la sortie vaut 1 |
5. Le codeur prioritaire choisit : | a) toutes les entrées b) l’entrée la moins significative c) l’entrée de priorité maximale |
6. Pour une cathode commune, un segment s’allume généralement avec : | a) 0 b) 1 c) un état haute impédance |
7. Les codes BCD invalides sont : | a) 0000 à 1001 b) 1010 à 1111 c) uniquement 1111 |
8. Une résistance de segment sert à : | a) limiter le courant b) décoder le BCD c) mémoriser le chiffre |
9. Les sorties d’un décodeur représentent : | a) des maxtermes seulement b) les mintermes c) des horloges |
10. En comparaison multibit, on examine en priorité : | a) le bit de poids fort b) le bit de poids faible c) un bit aléatoire |
Corrigés des travaux dirigés et des exercices
Corrigé du TD 1
La table donne E = 1 pour 00 et 11, G = 1 pour 10 et L = 1 pour 01. Donc E = A·B + ¬A·¬B, G = A·¬B et L = ¬A·B. Pour chaque ligne, une seule sortie vaut 1, d’où E + G + L = 1.
Corrigé du TD 2
E = (A₁ XNOR B₁)(A₀ XNOR B₀). G = A₁¬B₁ + (A₁ XNOR B₁)A₀¬B₀. L est l’expression symétrique. Pour 10 et 01, G = 1. Pour 01 et 10, L = 1. Pour 11 et 11, E = 1.
Corrigé du TD 3
Avec sorties actives à 1 : Y₀ = E¬A₁¬A₀, Y₁ = E¬A₁A₀, Y₂ = EA₁¬A₀, Y₃ = EA₁A₀. Pour des sorties actives à 0, chaque sortie est le complément de cette expression et peut être obtenue directement par une porte NAND.
Corrigé du TD 4
Relier Y₀, Y₂, Y₃ et Y₆ à une porte OU. Si les sorties sont actives à 0, relier ces sorties à une porte NAND conformément à De Morgan.
Corrigé du TD 5
V = D₃ + D₂ + D₁ + D₀, Q₁ = D₃ + D₂, Q₀ = D₃ + ¬D₂D₁. Pour 0111, D₂ est prioritaire : Q = 10 et V = 1. Pour 0101, D₂ est encore prioritaire : Q = 10 et V = 1.
Corrigé du TD 6
Le segment a est allumé pour les chiffres 0, 2, 3, 5, 6, 7, 8 et 9. Ainsi a(D,C,B,A) = Σm(0,2,3,5,6,7,8,9), avec d(10,11,12,13,14,15) comme cas indifférents. Pour une anode commune, utiliser ¬a.
Corrigé du TD 7
Utiliser un décodeur 2 vers 4. Y₀ sélectionne P₀ pour 00, Y₁ sélectionne P₁ pour 01, Y₂ sélectionne P₂ pour 10 et Y₃ sélectionne P₃ pour 11. L’entrée Enable est incluse dans chaque équation et force toutes les sorties à 0 lorsqu’elle est inactive.
Exercice 1
E = ¬(A ⊕ B) = A XNOR B. Une porte XOR suivie d’un inverseur convient.
Exercice 2
101 > 100, car les deux premiers bits sont égaux et le dernier donne 1 > 0. En non signé, 011 < 100. En signé sur 3 bits, 011 = +3 et 100 = −4, donc 011 > 100.
Exercice 3
Les quatre lignes sont 00 : E ; 01 : L ; 10 : G ; 11 : E. Aucun couple de sorties n’est simultanément à 1.
Exercice 4
Y₀ = E¬A₂¬A₁¬A₀ ; Y₃ = E¬A₂A₁A₀ ; Y₅ = EA₂¬A₁A₀ ; Y₇ = EA₂A₁A₀.
Exercice 5
Réunir Y₁, Y₄, Y₆ et Y₇ par une porte OU.
Exercice 6
Appliquer A₂A₁A₀ aux deux blocs. Utiliser A₃ pour valider le bloc 8–15 et ¬A₃ pour valider le bloc 0–7.
Exercice 7
Q₁ = D₂ + D₃ = 1 et Q₀ = D₁ + D₃ = 1, donc Q = 11. Ce code suggère D₃ alors que D₃ est inactive.
Exercice 8
0000 → Q = 00, V = 0 ; 0011 → D₁ prioritaire, Q = 01, V = 1 ; 1010 → D₃ prioritaire, Q = 11, V = 1 ; 0111 → D₂ prioritaire, Q = 10, V = 1.
Exercice 9
2 : a,b,d,e,g ; 4 : b,c,f,g ; 6 : a,c,d,e,f,g ; 9 : a,b,c,d,f,g. Cathode commune : 1 pour allumer ; anode commune : 0 pour allumer.
Exercice 10
R = (5 − 1,9)/0,008 = 387,5 Ω. Choisir par exemple 390 Ω ou 430 Ω pour réduire légèrement le courant.
Exercice 11
La polarité est incorrecte : une anode commune exige des commandes actives à 0.
Exercice 12
CS₀ = ¬A₁¬A₀ ; CS₁ = ¬A₁A₀ ; CS₂ = A₁¬A₀ ; CS₃ = A₁A₀.
Réponses de l’auto-évaluation
1-b ; 2-c ; 3-b ; 4-b ; 5-c ; 6-b ; 7-b ; 8-a ; 9-b ; 10-a.
| Conclusion Les comparateurs, décodeurs, codeurs et pilotes d’affichage illustrent une même démarche : traduire une spécification fonctionnelle en table de vérité, choisir une représentation adaptée, puis réaliser et valider un circuit combinatoire en tenant compte de sa polarité et de ses contraintes électriques. |