Leçon 9 sur 18

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

00100les deux bits sont égaux
01001A est inférieur à B
10010A est supérieur à B
11100les 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

XX00000circuit désactivé
0011000Y₀ active
0110100Y₁ active
1010010Y₂ active
1110001Y₃ 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

00010000000Y0 active
00101000000Y1 active
01000100000Y2 active
01100010000Y3 active
10000001000Y4 active
10100000100Y5 active
11000000010Y6 active
11100000001Y7 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

100000D₀ active
010001D₁ active
001010D₂ active
000111D₃ 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

1XXX111D₃ prioritaire
01XX101D₂ prioritaire
001X011D₁ prioritaire
0001001D₀ active
0000000aucune 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

000001111110a b c d e f
100010110000b c
200101101101a b d e g
300111111001a b c d g
401000110011b c f g
501011011011a c d f g
601101011111a c d e f g
701111110000a b c
810001111111a b c d e f g
910011111011a 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

  1. Lire le cahier des charges et déterminer la représentation des données.
  2. Identifier toutes les entrées, sorties et entrées de contrôle.
  3. Préciser la polarité : active à 1, active à 0 ou sortie trois états.
  4. Établir la table de vérité en incluant les cas invalides ou indifférents.
  5. Écrire les équations canoniques ou exploiter directement un composant standard.
  6. Simplifier les équations en tenant compte des cas indifférents autorisés.
  7. Réaliser le schéma et vérifier le nombre d’entrées de chaque porte.
  8. Simuler toutes les combinaisons utiles, y compris les cas limites.
  9. Contrôler les contraintes électriques : courant, fan-out, alimentation et résistances.
  10. 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

  1. Créer les entrées A₁, A₀, B₁, B₀ et Enable.
  2. Réaliser d’abord les trois sorties du comparateur et vérifier les seize combinaisons.
  3. Ajouter le décodeur 2 vers 4 et observer la sortie sélectionnée.
  4. Raccorder A₁A₀ à un bloc BCD–sept segments en ajoutant les bits de poids fort à 0.
  5. Introduire l’entrée Enable dans les blocs concernés.
  6. Mesurer ou observer les délais de propagation si le simulateur le permet.
  7. 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.