# 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, 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). 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, ou encore à partir d’éléments mécaniques ou thermiques.
Les portes logiques peuvent être combinées pour réaliser des circuits logiques séquentiels utilisant des bascules ou des inverseurs$^,$.
Étant donné les capacités d'intégration en électronique, un circuit intégré comporte généralement plusieurs portes à la fois.

## Désignation

Une 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. 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.
Portes logiques usuelles :
| Désignation (anglaise) | Description | Fonction logique | Table de vérité |
| NOT | La valeur de la sortie est l’inverse de la valeur de l’entrée | inverseur | bit d'entréebit de sortie 01 10 |
| AND | La valeur de sortie est 1 si et seulement si toutes les valeurs d'entrée sont 1 | Et logique | entrée Aentrée Bsortie 000 100 010 111 |
| 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" | entrée Aentrée Bsortie 001 101 011 110 |
| OR | La valeur de sortie est 1 si et seulement si au moins une des valeurs d'entrée est 1 | ou inclusif | entrée Aentrée Bsortie 000 101 011 111 |
| 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" | entrée Aentrée Bsortie 001 100 010 110 |
| XOR | La valeur de la sortie est 1 si et seulement si la valeur d’exactement une entrée est 1 | ou exclusif | entrée Aentrée Bsortie 000 101 011 110 |
| 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" | entrée Aentrée Bsortie 001 100 010 111 |

## Utilisation

Les 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

Le 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 : 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³+1x2²+1x2+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

Le 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 $\neq$.

### Unité arithmétique et logique

Ce 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.
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) :
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

Les 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.