Portes logiques
Cours · traitement du signal et logique (MPI), chapitre 3 · CPGE MPI (2e année) · le début du chapitre, la suite sur Adloun
Le chapitre précédent a montré comment un signal analogique, une fois numérisé, se réduit à une suite d'entiers manipulés par le calculateur. Reste à comprendre comment une machine matérialise physiquement ces nombres et les opérations qu'on leur applique. La réponse tient en un principe d'une sobriété radicale : tout se ramène à deux états — présence ou absence de tension — et à quelques opérations élémentaires sur ces états. C'est l'objet de l'électronique logique, socle commun de tout ordinateur.
Ce chapitre, à la saveur informatique propre à la filière MPI, décrit d'abord la manière dont on encode un bit par une tension, puis l'interrupteur commandé — le transistor MOS en commutation — brique physique à partir de laquelle on construit les portes logiques. On établira ensuite l'algèbre qui gouverne ces portes, l'algèbre de Boole, avec ses lois de De Morgan et la remarquable universalité des portes NAND et NOR. On saura enfin passer d'une table de vérité — la description exhaustive d'une fonction — à un circuit combinatoire qui la réalise, et l'on illustrera cette démarche par deux composants emblématiques : le demi-additionneur et le multiplexeur.
Ce que demande le programme de physique de MPI. Il demande de déterminer la table de vérité d'une association d'interrupteurs commandés par une tension et d'identifier par sa table de vérité la porte logique réalisée, pour les portes NOT, AND, OR, NAND, NOR (à deux ou plusieurs entrées) et XOR, et, en travaux pratiques, de mettre en œuvre des montages utilisant des portes logiques. Il se limite à des systèmes comportant un nombre raisonnable de composants, et déclare hors programme la connaissance des circuits électroniques qui constituent les portes : l'étude reste au niveau du modèle idéal (interrupteur parfait, porte sans délai sauf mention contraire). Les lois de De Morgan et le lien entre table de vérité et forme normale disjonctive complète relèvent du programme d'informatique de MP2I-MPI : on les emploie comme des acquis. La simplification algébrique des expressions, le demi-additionneur et le multiplexeur sont des compléments, absents du programme de physique (et, pour les deux circuits, de celui d'informatique, qui exclut l'architecture des ordinateurs).
3.1 Signaux logiques
3.1.1 Codage d'un bit par une tension
Un signal logique ne prend que deux valeurs, notées et . Physiquement, ces deux symboles correspondent à deux plages de tension séparées par une zone interdite, ce qui confère à l'information numérique son immunité au bruit : une petite perturbation ne fait pas basculer l'état lu.
Un signal logique est une tension contrainte à deux domaines :
- le niveau bas (proche de ) et le niveau haut (proche de la tension d'alimentation , typiquement ou ) ;
- en logique positive, on associe le niveau haut au symbole et le niveau bas au symbole ; en logique négative, la convention est inversée.
Une plage intermédiaire (zone interdite) sépare les deux domaines : une tension qui s'y trouve correspond à un état indéterminé, transitoire.
3.1.2 Notion de front
L'information ne réside pas seulement dans le niveau instantané, mais aussi dans ses transitions.
Un front est une transition entre les deux niveaux logiques :
- le front montant est le passage ;
- le front descendant est le passage .
Idéalisés comme instantanés, les fronts servent de signaux de déclenchement : la logique séquentielle (chapitre suivant) réagit à un front d'horloge plutôt qu'à un niveau.
Dans un circuit réel, un front n'est jamais vertical : la charge des capacités parasites impose un temps de montée fini. Tant qu'il est petit devant la durée d'un état, on l'idéalise en un saut instantané. De même, une porte réelle ne répond pas instantanément : sa sortie change avec un retard appelé temps de propagation , de l'ordre de quelques nanosecondes à quelques dizaines de picosecondes selon la technologie.
Un constructeur garantit, pour une famille de circuits, qu'une sortie haute délivre au moins et une sortie basse au plus , et qu'une entrée lit sûrement au-dessus de et sûrement au-dessous de ; entre et s'étend la zone interdite. Quand une sortie commande une entrée, les marges de bruit
sont les amplitudes de parasite tolérées au niveau haut et au niveau bas : la liaison est sûre si elles sont toutes deux positives. Par exemple, pour la famille 74HC sous (, , , ), et .
3.2 L'interrupteur commandé
3.2.1 Le transistor MOS en commutation
Toutes les portes logiques se construisent à partir d'un unique composant élémentaire : un interrupteur commandé par une tension. Le transistor MOS (métal-oxyde-semiconducteur) joue ce rôle. On n'en retient ici qu'un modèle idéalisé, sans entrer dans la physique du semi-conducteur.
Un transistor MOS possède trois bornes : la grille G (commande), la source S et le drain D (circuit commandé). Dans le modèle idéal en commutation, il se comporte comme un interrupteur entre D et S, piloté par la tension de grille :
- pour un MOS de type N : interrupteur fermé (D relié à S, résistance nulle) ; interrupteur ouvert (résistance infinie) ;
- pour un MOS de type P : le comportement est inversé ( fermé, ouvert).
La grille ne consomme aucun courant permanent : la commande se fait « en tension ».
3.2.2 Association d'interrupteurs et logique câblée
En associant des interrupteurs commandés entre l'alimentation et la masse, on impose au nœud de sortie un niveau haut ou bas selon les commandes : c'est le principe de toute porte. Le raisonnement typique consiste à établir la table de vérité d'une association série/parallèle.
Méthode : Table de vérité d'une association d'interrupteurs
Pour déterminer la fonction réalisée par un montage d'interrupteurs commandés :
- repérer les entrées (tensions de grille) et énumérer toutes leurs combinaisons ( lignes pour entrées) ;
- pour chaque combinaison, remplacer chaque interrupteur par un fil (fermé) ou une coupure (ouvert) ;
- examiner les chemins conducteurs qui partent du nœud de sortie :
- un chemin fermé vers la masse et aucun vers : sortie ; un chemin fermé vers et aucun vers la masse : sortie ;
- si la sortie est reliée à par une résistance de rappel (ou à la masse, pour une résistance de rappel vers le bas), c'est le réseau d'interrupteurs qui l'emporte quand il conduit, et la résistance qui fixe le niveau quand il est ouvert ;
- aucun chemin ni résistance : la sortie est en l'air, son niveau n'est pas défini ; un chemin fermé à la fois vers et vers la masse : court-circuit de l'alimentation. Une porte correcte n'a ni l'un ni l'autre, sur aucune ligne ;
- lire la colonne de sortie : elle identifie la porte réalisée (ou montre qu'il ne s'agit d'aucune porte usuelle).
Deux interrupteurs en série conduisent seulement si les deux sont fermés (logique ET) ; deux interrupteurs en parallèle conduisent dès que l'un est fermé (logique OU). On lit ainsi un réseau série-parallèle par blocs.
Déterminer la table de vérité d'une association d'interrupteurs commandés par une tension, et identifier par sa table de vérité la porte logique réalisée.
3.3 Les portes logiques
Une porte logique réalise une fonction booléenne : à un ou plusieurs bits d'entrée elle associe un bit de sortie. On décrit chaque porte par trois éléments indissociables : son symbole normalisé, sa table de vérité et son expression booléenne.
3.3.1 La porte NOT (inverseur)
La porte NOT, ou inverseur, à une entrée , délivre le complément : . Elle vaut si et seulement si l'entrée vaut .
| 0 | 1 |
| 1 | 0 |
3.3.2 Les portes AND et OR
- La porte AND (ET) délivre (aussi noté ) : elle vaut ssi toutes les entrées valent .
- La porte OR (OU) délivre (aussi noté ) : elle vaut ssi au moins une entrée vaut .
Les deux se généralisent à entrées.
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
3.3.3 Les portes NAND et NOR
Ce sont les compléments des précédentes : on ajoute une bulle d'inversion en sortie.
- NAND (NON-ET) : . Vaut ssi toutes les entrées valent .
- NOR (NON-OU) : . Vaut ssi toutes les entrées valent .
| 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
3.3.4 Les portes XOR et XNOR
- XOR : . Vaut ssi les entrées sont différentes. C'est un détecteur de différence.
- XNOR : . Vaut ssi les entrées sont égales (comparateur d'égalité).
| 0 | 0 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Le OU exclusif se distingue du OU (inclusif) sur la seule ligne : le OU vaut alors , le XOR vaut . Le langage courant confond souvent les deux (« fromage ou dessert »).
3.4 Algèbre de Boole
Les fonctions logiques obéissent à une algèbre à deux éléments , introduite par George Boole. Sa maîtrise permet de simplifier les expressions et donc de réduire le nombre de portes d'un circuit. Les lois de De Morgan sont un acquis du programme d'informatique de MP2I-MPI (qui note , , ce que l'on note ici , et la barre) ; la simplification systématique des expressions est un complément.
Pour toutes variables logiques :
| Élément neutre | |
| Élément absorbant | |
| Idempotence | |
| Complément | |
| Involution | |
| Commutativité | |
| Associativité | |
| Distributivité | |
| Absorption |
L'associativité donne un sens aux expressions et sans parenthèses : c'est elle qui définit les portes à entrées et qui permet d'étendre les lois de De Morgan à variables.
3.4.1 Les lois de De Morgan
Le complément d'un produit est la somme des compléments, et réciproquement :
Ces relations se généralisent à variables : , et de même pour la somme.
Démonstration (Vérification par table de vérité)
On dresse la table des deux membres de la première loi :
| 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
Les deux colonnes coïncident ligne à ligne : l'égalité est établie. La seconde loi s'obtient en échangeant les rôles de et (principe de dualité).
De Morgan permet de « faire entrer ou sortir » une inversion à travers une porte, en échangeant AND et OR. C'est l'outil qui rend possible la conversion de n'importe quel circuit en portes NAND seules (ou NOR seules).
3.4.2 Universalité de NAND et de NOR
La porte NAND est universelle : toute fonction logique peut être réalisée en n'utilisant que des portes NAND. Il en va de même pour la porte NOR. Il suffit en effet de reconstruire les trois portes de base NOT, AND, OR :
Démonstration (NOT, AND et OR à partir de NAND)
Notons .
- NOT : en reliant les deux entrées, .
- AND : , soit une NAND suivie d'une NAND-inverseur : deux portes.
- OR : par De Morgan, . On inverse d'abord et (deux NAND-inverseurs), puis on applique une NAND : trois portes.
Toute expression booléenne, écrite comme somme de produits, se traduit donc en un réseau de NAND. Le résultat pour NOR s'obtient de la même façon, en échangeant les rôles de et : , et .
Ce n'est pas l'universalité qui fait préférer NAND et NOR dans les circuits intégrés, mais la structure des montages : une association d'interrupteurs reliée à une résistance de rappel, ou à un réseau complémentaire, réalise naturellement une fonction inverseuse (voir les exercices résolus) ; une porte AND s'obtient en ajoutant un inverseur à une NAND, ce qui coûte un étage et un délai de plus.
3.5 Synthèse d'une fonction logique combinatoire
Un circuit combinatoire produit une sortie qui ne dépend que de l'état présent des entrées (sans mémoire). Sa spécification complète est sa table de vérité ; le problème de synthèse consiste à en déduire un circuit de portes.
Méthode : De la table de vérité au circuit
Pour réaliser une fonction donnée par sa table de vérité :
- repérer les lignes où ;
- pour chaque telle ligne, écrire le minterme : produit (AND) des variables, chaque variable étant complémentée si elle vaut sur cette ligne ;
- sommer (OR) les mintermes : on obtient la forme canonique en somme de produits (SdP), appelée forme normale disjonctive complète en informatique, qui vaut exactement sur les lignes voulues ;
- simplifier par l'algèbre de Boole pour réduire le nombre de portes (d'autres méthodes, comme les tableaux de Karnaugh, existent mais ne sont pas présentées ici) ;
- traduire l'expression simplifiée en portes (éventuellement toutes en NAND par universalité).
La synthèse d'un circuit à partir d'une table n'est pas une capacité du programme de physique. Le lien entre table de vérité et forme normale disjonctive complète (étapes 1 à 3, la « forme canonique en somme de produits ») est un acquis du programme d'informatique de MP2I-MPI ; la simplification (étape 4) est un complément.
On veut la fonction valant dès qu'au moins deux des trois entrées valent (vote majoritaire). Établir son expression et la simplifier.
Démonstration
La table de vérité : pour . La forme canonique somme de produits est
On regroupe astucieusement en réutilisant (idempotence : ) :
Comme , il vient la forme minimale
Trois portes AND et une porte OR à trois entrées suffisent, au lieu des quatre AND à trois entrées de la forme canonique.
3.6 Exemples de circuits combinatoires
Cette section est un complément : ni le demi-additionneur ni le multiplexeur ne figurent au programme. Le multiplexeur 2 vers 1 se rencontre pourtant naturellement comme association d'interrupteurs : un aiguillage commandé par relie la sortie à l'entrée si , à l'entrée si .
3.6.1 Le demi-additionneur
Additionner deux bits et produit un bit de somme et un bit de retenue (carry). Établir les fonctions et , puis le circuit.
Démonstration
L'addition binaire d'un bit : , , , (somme , retenue ). D'où la table :
| (somme) | (retenue) | ||
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
On reconnaît immédiatement
La somme est un OU exclusif, la retenue un ET. Le circuit est donc une porte XOR et une porte AND partageant les mêmes entrées :
Le demi-additionneur ne gère pas de retenue entrante. En chaînant deux demi-additionneurs et une porte OR, on obtient l'additionneur complet à trois entrées , brique de l'addition sur bits.
3.6.2 Le multiplexeur
Un multiplexeur (MUX) aiguille l'une de deux entrées vers la sortie selon un bit de sélection : si , si . Établir son expression booléenne.
Démonstration
La sortie recopie quand et quand . On sélectionne chaque voie par un ET avec (ou son complément), puis on combine par un OU :
Vérification : si , donc ; si , . Le multiplexeur est le composant d'aiguillage universel : associé à des mémoires, il fonde le routage des données dans un processeur.
Exercices du chapitre
- Un 1 en 3,3 V est-il un 1 en 5 V ? Niveaux logiques, marges de bruit, fronts corrigé
- Quatre interrupteurs et une résistance de rappel : la logique, puis la facture corrigé
- Allumer une lampe de deux, trois, endroits : le va-et-vient est un OU exclusif corrigé
- La puce sans étiquette : identifier une porte en trois mesures corrigé
- L'alarme d'un local : contacts en série, sécurité positive corrigé
- Comparer et contrôler un octet : égalité, parité, aléas corrigé