# Électronique/Les portes logiques

Diodes et transistors sont des composants dits analogiques, ce qui signifie qu'ils manipulent des variables continues, comme des courants ou des tensions. Mais l'électronique ne se limite pas à l'électronique dite analogique, centrée sur l'étude des signaux continus. À côté d'elle, l'électronique numérique étudie les signaux purement digitaux, souvent codés en binaire. Les circuits qui manipulent des données binaires sont fabriqués à partir de composants : les portes logiques.

## Les différentes portes logiques

Les portes logiques sont des petits circuits qui prennent un ou plusieurs bit en entrée et fournissent un bit de résultat. Elles-mêmes sont fabriquées à partir de transistors ou de diodes, selon la technologie utilisée. Dans ce chapitre, nous allons voir ce que sont ces portes logiques et comment elles fonctionnent. Nous verrons dans un prochain chapitre comment elles sont fabriquées à partir de transistors.
    Sur les schémas qui vont suivre, les entrées des portes logiques seront à gauche et les sorties à droite !

### La porte NON

La première porte fondamentale est la porte NON, qui agit sur un seul bit : la sortie d'une porte NON est exactement le contraire de l'entrée.
Pour simplifier la compréhension, je vais rassembler les états de sortie en fonction des entrées pour chaque porte logique dans un tableau que l'on appelle table de vérité.
| Entrée | Sortie |
| 0 | 1 |
| 1 | 0 |

### La porte ET

La porte ET possède plusieurs entrées, mais une seule sortie. Cette porte logique met sa sortie à 1 quand toutes ses entrées valent 1. Dans le cas le plus simple, une porte ET possède deux entrées.
| Entrée 1 | Entrée 2 | Sortie |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Il existe des portes ET qui ont plus de deux entrées, et peuvent en avoir 3, 4, 5, 6, 7, etc. Là encore, leur sortie ne vaut 1 que si toutes les entrées valent 1 : dans le cas contraire, la sortie de la porte ET vaut 0. Dit autrement, si une seule entrée vaut 0, la sortie de la porte ET vaut 0.

### Porte NAND

La porte NAND donne l'exact inverse de la sortie d'une porte ET. En clair, sa sortie ne vaut 1 que si au moins une entrée est nulle. Dans le cas contraire, si toutes les entrées sont à 1, la sortie vaut 0. Dans le cas le plus simple, une porte NAND a deux entrées. Là encore, il existe des portes NAND ont plus de deux entrées : elles peuvent en avoir 3, 4, 5, 6, 7, etc. Là encore, leur sortie ne vaut 1 que si au moins une entrée est nulle : dans le cas contraire, la sortie de la porte NAND vaut 0. Dit autrement, si toutes les entrées sont à 1, la sortie vaut 0.
| Entrée 1 | Entrée 2 | Sortie |
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Au fait, si vous regardez le schéma de la porte NAND, vous verrez que son symbole est presque identique à celui d'une porte ET : seul le petit rond sur la sortie de la porte a été rajouté. Il s'agit d'une sorte de raccourci pour schématiser une porte NON.

### La porte OU

La porte OU est une porte dont la sortie vaut 1 si et seulement si au moins une entrée vaut 1. Dit autrement, sa sortie est à 0 si toutes les entrées sont à 0. Dans le cas le plus simple, la porte OU possède deux entrées, ainsi qu'une seule sortie. Cette porte logique met sa sortie à 1 quand au moins une de ses entrées vaut 1. Là encore, il existe des portes OU ont plus de deux entrées. Là encore, leur sortie est à 0 si et seulement si toutes les entrées sont à 0 : si une seule entrée est à 1, alors la sortie vaut 1.
| Entrée 1 | Entrée 2 | Sortie |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |

### Porte NOR

La porte NOR donne l'exact inverse de la sortie d'une porte OU. Là encore, il en existe une version avec deux entrées, et des versions avec plus de deux entrées. Les tableaux et symboles qui suivent sont ceux d'une porte NOR à deux entrées.
| Entrée 1 | Entrée 2 | Sortie |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |

### Porte XOR

Avec une porte OU, deux ET et deux portes NON, on peut créer une porte nommée XOR. Cette porte est souvent appelée porte OU exclusif. Sa sortie est à 1 quand les deux bits placés sur ses entrées sont différents, et vaut 0 sinon.
| Entrée 1 | Entrée 2 | Sortie |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |

### Porte NXOR

La porte XOR possède une petite sœur : la NXOR. Sa sortie est à 1 quand les deux entrées sont identiques, et vaut 0 sinon (elle est équivalente à une porte XOR suivie d'une porte NON).
| Entrée 1 | Entrée 2 | Sortie |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |

## Les propriétés des portes logiques

Les portes logiques ont toutes diverses propriétés que l'électronicien doit connaitre. Par exemple, elles mettent du temps à réagir quand on change leur entrée, de même qu'il existe une relation entre la tension de sortie et celle d'entrée, etc. Dans ce qui va suivre, nous allons voir ces propriétés dans le cas le plus simple : celui d'une porte NON, une simple porte inverseuse. Tout ce qui sera dit dans cette section peut se généraliser, avec un petit effort, aux autres portes logiques plus complexes. Si les portes NON sont plus simples à étudier, c'est parce qu'elles n'ont qu'une seule entrée, alors que les autres portes logiques en ont plusieurs. Nous allons d'abord voir la relation entre tension d'entrée et tension de sortie, puis voir le délai de transmission entre entrée et sortie, avant de poursuivre par quelques propriétés annexes comme le fan-out.

### La caractéristique tension d'entrée-tension de sortie

Le rapport entre tension à l'entrée et tension de sortie d'une porte NON, aussi appelée caractéristique en tension, est assez complexe, aussi il vaut mieux commencer par étudier une version simplifiée de celui-ci. Pour simplifier, le rapport entre $V_{in}$ et $V_{out}$ est illustré par le schéma ci-dessous. Pour caricaturer, on peut décomposer cette caractéristique en trois parties : deux zones dites de saturation et une zone d'amplification. Dans la zone de saturation, la tension est approximativement égale à la tension maximale ou minimale, ce qui fait qu'elle code pour un 0 ou un 1. Les seuils pour coder un 0 ou un 1 ne sont pas les mêmes entre l’entrée d'une porte NON et sa sortie. Ils sont beaucoup plus resserrés sur l'entrée, la marge de sécurité entre 1 et 0 étant plus faible. Un signal qui ne correspondrait pas à un 0 ou un 1 en sortie peut l'être en entrée. Entre ces deux zones extrêmes, la tension de sortie dépend linéairement de la tension d'entrée (si on omet l'inversion). Dans cette zone, la porte logique amplifie le signal d'entrée en plus de l'inverser.
Il existe deux tensions d'entrée qui servent de limites aux zones de saturation/amplification. La première, notée $V_{IL}$ (V Input Low), est la tension d'entrée maximale qui code un 0 en entrée : toute tension inférieure code un 0. La seconde, notée $V_{IH}$ (V Input High), est la tension minimale pour coder un 1 : au-delà, toute tension code un 1. À ces deux tensions d'entrée correspondent respectivement la tension de sortie minimale et maximale, notées $V_{OL}$ et $V_{OH}$ (V output Low et V Output High). Entre les deux, on se trouve dans la zone de saturation. Une porte NON est d'autant meilleure qu'elle a une zone d'amplification la plus petite possible. Le cas parfait est celui où la zone d'amplification est d'épaisseur nulle, celui où la tension passe directement de 0 à 1 en passant une tension seuil. Ce cas parfait d'une porte NON idéale est irréaliste et n'est jamais réalisé en pratique.
En réalité, la caractéristique en tension est plus lisse, moins droite que dans le schéma précédent. Il n'y a pas de frontière nette entre les zones de saturation et d'amplification, mais une transition progressive d'un régime à l'autre. La courbe réelle est illustrée ci-dessous et on voit qu'elle ressemble approximativement à une sigmoïde. La frontière entre zones de saturation et d'amplification est définie arbitrairement à partir de la pente de la courbe. On passe de l'un à l'autre quand la pente vaut -1.

### Le temps de propagation

Un circuit électronique n'est pas un système parfait, et reste soumis aux lois de la physique. Notamment, il n'a pas une évolution instantanée et met toujours un petit peu de temps avant de changer d'état. Quand le bit sur l'entrée d'une porte logique change, elle met du temps avant de changer sa sortie. Ce temps de réaction pour propager un changement sur les entrées vers la sortie s'appelle le temps de propagation.
Pour les portes logiques, le temps de propagation est causé par le fonctionnement des transistors CMOS/MOS ou TTL qui composent la porte logique. Les liaisons entre broches se comportent comme des condensateurs et ont donc une capacité parasite. Lorsque l'on change l'entrée, ces capacités parasites vont se vider ou se remplir, ce qui prend un peu de temps. Il faut noter que plus le courant d'entrée est fort, plus ces capacités vont se remplir/vider rapidement, ce qui aura son importance pour la suite. On peut cependant en déduire que plus les courants en entrée/sortie d'une porte logique sont importants, plus les temps de propagation sont courts et plus celle-ci est rapide.
Pour une porte logique, il existe deux temps de propagation : un temps $T_{LH}$ pour passer la sortie de 0 à 1, et un temps $T_{HL}$ pour la passer de 1 à 0. Les électroniciens utilisent souvent la moyenne entre ces deux temps de propagation, et la nomment le retard de propagation, noté $R_{t}$.
    $R_{t}={\frac {T_{LH}+T_{HL}}{2}}$
Les temps $T_{LH}$ et $T_{HL}$ permettent de déduire quelle est la vitesse maximale d'un circuit, à savoir le nombre de fois maximal qu'il peut changer d'état par secondes. Pour simplifier, on part du principe que la porte logique change d'état sans cesse et passe de 0 à 1 et inversement. En clair, elle évolue de manière cyclique, sa sortie s'inversant régulièrement. Le temps d'un cycle (passage de 0 à 1 et de 1 à 0) est appelé la période de commutation $T_{min}$ et vaut :
    $T_{min}=T_{LH}+T_{HL}=2\cdot R_{t}$
La vitesse maximale, aussi appelée fréquence de commutation, est l'inverse de cette durée. Elle correspond au nombre de cycles que la porte peut subir par secondes :
    $f_{max}={\frac {1}{P_{t}}}={\frac {1}{T_{LH}+T_{HL}}}={\frac {1}{2\cdot R_{t}}}$

### La sortance

Dans les circuits complexes, il n'est pas rare que la sortie d'une porte logique soit reliée à plusieurs entrées (d'autre portes logiques). Quand cela arrive, le nombre d'entrée connectée à la sortie se voit attribuer un nom : c'est la sortance de la sortie. La sortie doit alimenter en énergie les entrées des autres portes. Il faut bien maintenir un 1 sur ces entrées, ce qui demande de maintenir une tension sur les entrées et donc de les alimenter en électricité/courant. Évidemment, la sortie a une capacité limitée pour ce faire et rend les armes si on la branche à trop d'entrées. En clair, le nombre d'entrées auxquelles brancher une sortie est limitée et ce nombre maximal porte un nom : c'est la sortance maximale.
Il existe plusieurs manières de quantifier la sortance, qui ne sont pas équivalentes. L'une d'entre elle est de comparer le courant en sortie de la porte logique comparé au courant d'entrée. Si une porte logique a un courant d'entrée de $I_{in}$, ce courant est répartis sur plusieurs portes logiques, chacune ayant un courant d'entrée $I_{out}$. Le nombre de portes maximal supporté est alors de :
    $N_{max}={\frac {I_{in}}{I_{out}}}$
Cette définition fonctionne bien pour les portes logiques basées sur des transistors bipolaires, mais n'a pas trop de sens pour les portes conçues avec des transistors FET et assimilés. Ces portes ont en effet un courant d'entrée presque nul (nul pour une porte idéale, mais très faible en pratique). La définition précédente de la sortance, appliquée à ces portes logiques, donne une sortance théorique de 100 à 500. Mais ce chiffre surestime la réalité et néglige divers phénomènes physiques liés aux transistors FET. Elle n'est donc pas applicable dans ce genre de cas.