Porte logique
Une porte logique (logic gate) est un circuit électronique numérique réalisant des opérations logiques (booléennes) sur une séquence de bits. Cette séquence est assez souvent donnée par un signal d'entrée modulé en créneau (signal carré), et cadencé de façon précise par un circuit d'horloge[1], ou quartz.
La principale façon de construire des portes logiques utilise des diodes ou des transistors agissant comme des commutateurs électroniques. Aujourd’hui, la plupart des portes logiques sont fabriquées à partir de MOSFET (transistors à effet de champ métal-oxyde-semi-conducteur)[2]. Elles peuvent également être construites à l’aide de tubes à vide, de relais électromécaniques en logique de relais, en logique fluidique, pneumatique, optique, moléculaire, acoustique[3], ou encore à partir d’éléments mécaniques ou thermiques[4].
Les portes logiques peuvent être combinées pour réaliser des circuits logiques séquentiels utilisant des bascules ou des inverseurs[5],[6].
Étant donné les capacités d'intégration en électronique, un circuit intégré comporte généralement plusieurs portes à la fois[7].
Désignation
modifierUne porte logique est désignée par l'opération logique qu'elle accomplit à partir des signaux d'entrée du circuit.
La négation logique est représentée par un triangle (symbole du transistor selon la convention américaine ANSI), puisqu'elle est réalisée par un simple transistor, monté en inverseur[8]. On constate d'ailleurs que cette porte n'a qu'une seule entrée.
Les portes logique "et", "ou" et leurs dérivées ont au moins deux entrées.
Désignation (anglaise) |
Description | Fonction logique | Symbole ANSI | Table de vérité | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
NOT | La valeur de la sortie est l’inverse de la valeur de l’entrée | inverseur |
| ||||||||||||||||
AND | La valeur de sortie est 1 si et seulement si toutes les valeurs d'entrée sont 1 | Et logique |
| ||||||||||||||||
NAND | Inverse de "AND" : la valeur de sortie est 0 si et seulement si toutes les valeurs d'entrée sont 1 | négation du "et logique" |
| ||||||||||||||||
OR | La valeur de sortie est 1 si et seulement si au moins une des valeurs d'entrée est 1 | ou inclusif |
| ||||||||||||||||
NOR | Inverse de "OR" : la valeur de sortie est 0 si et seulement si au moins une des valeurs d'entrée est 1 | négation du "ou inclusif" |
| ||||||||||||||||
XOR | La valeur de la sortie est 1 si et seulement si la valeur d’exactement une entrée est 1 | ou exclusif |
| ||||||||||||||||
XNOR | Inverse de "XOR" : La valeur de la sortie est 0 si et seulement si la valeur d’exactement une entrée est 1 | négation du "ou exclusif" |
|
Utilisation
modifierLes portes logiques sont constitutives des technologies numériques (par opposition aux technologies analogiques) : elles sont omniprésentes dans les ordinateurs, les filtres numériques, horloges et chronomètres numériques. Elles assurent une multitude de fonctions : unité arithmétique et logique, adressage et lecture de circuits de mémoire, conversion analogique-numérique et numérique-analogique, conversion DCB, décodage de codes Gray, etc.
Compteur
modifierLe circuit ci-contre est alimenté en courant par le générateur à courant continu en haut à gauche, cependant que la base de temps est donnée par le signal d'horloge (le générateur de créneaux en bas à gauche). Les circuits 74LS107D sont de simples inverseurs à base de diode Schottky : ils détectent chaque changement d'état (de 0 à 1, ou de 1 à 0) de leur entrée, et envoient un signal 1 chaque fois qu'un changement a lieu (fonction de trigger).
Le principe de l'afficheur numérique DCD_HEX en haut à droite est simple[10] : en fonction du mot binaire codé sur quatre bits qu'il reçoit en entrée, il affiche la valeur décimale du nombre correspondant (p. ex. 0110 = 0x2³+2x2²+2x2+0x2⁰ = 6) en allumant les segments d'un afficheur sept segments.
Pour comprendre le fonctionnement du circuit ci-contre, il faut supposer les entrées initialement à 0 et cheminer de la gauche vers la droite du diagramme ; chaque émission d'un créneau par le générateur, produit une alternance de 0 à 1, puis de 1 à 0 qui déclenche un signal des circuits inverseurs ; avec les tables de vérité des portes du circuit, on peut ainsi déterminer l'état (0 ou 1) des quatre bits d'entrée du circuit afficheur le long de 4 créneaux émis en séquence.
Comparateur
modifierLe circuit comparateur ci-contre n'est guère plus difficile à comprendre : il suffit de construire la table de vérité des quatre sorties proposées en fonction des valeurs d'entrée (0 ou 1) de A et de B. La notation != signifie .
Unité arithmétique et logique
modifierCe circuit (UAL en abrégé) permet de réaliser les opérations arithmétiques en base 2. Il prend en entrée deux mots de 2 bits (les opérandes) : soit par exemple A et B. Le bit des unités (LSB) est noté A[0] pour A, et B[0] pour B ; l'autre bit (MSB) est codé A[1] (resp. B[1]).
Les entrées A et B sont envoyés sur les quatre portes logiques à gauche du diagramme : de haut en bas, on reconnaît les portes XOR, AND, OR et XOR. Cette dernière porte forme l'étage d'entrée d'un circuit additionneur.
Outre les entrées A et B, le circuit tient compte d'une éventuelle retenue résultant d'une opération précédente (CARRY IN). De même, si le circuit réalise une opération aboutissant à un débordement, il émet un bit de retenue en sortie (CARRY OUT). Dans la pile d'un microprocesseur, ces bits spéciaux sont stockés dans un registre d'état[11].
Chaque bit est finalement séquencé par un multiplexeur (les deux blocs rectangulaires à droite du diagramme) pour former le résultat. La nature de la fonction à réaliser est donnée par le signal OP (codé sur 3 bits par une unité de contrôle) :
OP = 000 → XOR OP = 001 → AND OP = 010 → OR OP = 011 → Addition
Il reste quatre entrées inutilisées dans le multiplexeur : on pourrait s'en servir pour coder d'autres fonctions simples (soustraction, inversion de A, inversion de B, etc.). De même, le bit OP[2] est apparemment inutile dans le cas de ce circuit ; mais il serait nécessaire pour coder davantage d'opérations que les quatre indiquées.
Réalisation
modifierLes premières portes logiques à semi-conducteurs (fin des années 1950) étaient réalisées en technologie DTL. Au début des années 1960, elles ont été réalisées par des circuits intégrés TTL, à base de transistors bipolaires saturés. Cette technologie donnait des circuits miniaturisés, et elle a perduré jusqu'à la fin des années 1970 en raison de sa robustesse (elle offrait le durcissement requis pour les systèmes embarqués et applications militaires) et de sa relative insensibilité à l'électricité statique ; néanmoins, les circuits intégrés à transistor à effet de champ à grille métal-oxyde (MOSFET) (p. ex. familles PMOS, NMOS, CMOS, HCMOS), quoique demandant davantage de précautions au câblage, réalisaient un niveau d'intégration encore bien supérieur aux TTL, et étaient plus économes en électricité : ils se sont imposés dès la fin des années 1960, en particulier pour les ordinateurs et leurs périphériques intelligents.
Notes
modifier- Pascal Mayeux, De la diode au microcontrôleur, vol. 1, Books on Demand, (ISBN 9782322459629), « 6. Les horloges », p. 193
- (en) Michael Kanellos, « Moore's Law to roll on for another decade », sur CNET, From Integrated circuit
- (en) Ting Zhang, Ying Cheng, Jian-Zhong Guo, Jian-yi Xu et Xiao-jun Liu, « Acoustic logic gates and Boolean operation based on self-collimating acoustic beams », Applied Physics Letters, vol. 106, no 11, (DOI 10.1063/1.4915338, lire en ligne, consulté le )
- (en) Lei Wang et Baowen Li, « Thermal Logic Gates: Computation with Phonons », Physical Review Letters, vol. 99, no 17, , p. 177208 (PMID 17995368, DOI 10.1103/PhysRevLett.99.177208, Bibcode 2007PhRvL..99q7208W, arXiv 0709.0032, S2CID 10934270, lire en ligne)
- J.-C. Reghinot et J.-C. Pianezzi, Cours pratique d'électronique, Editions Radio, (ISBN 2709107988)
- R. Damaye, Circuits de logique, Éditions Radio, (EAN 2000189448554).
- Robert Keyes, « L'irremplaçable transistor », Pour la science, no 387, (lire en ligne).
- Reghinot et Pianezzi 1979, chap. « Circuit intégrés analogiques : l'amplificateur inverseur », p. 220.
- Pascal Ferraro, LaBRI, Université Bordeaux I, « Architecture de l’Ordinateur : Portes » [PDF], sur https://dept-info.labri.fr, (consulté le )
- Reghinot et Pianezzi 1979, chap. « Eléments de calcul digital : décodage BCD 7 segments », p. 320.
- R. Zaks, La programmation du 6502, Sybex, , « 2. Organisation matérielle du 6502 : Les registres du 6502 »