Fonctionnement d'un ordinateur/Les portes logiques

Grâce au chapitre précédent, on sait enfin comment sont représentées nos données les plus simples avec des bits. On n'est pas encore allés bien loin : on ne sait pas comment représenter des bits dans notre ordinateur ou les modifier, les manipuler, ni faire quoi que ce soit avec. On sait juste transformer nos données en paquets de bits (et encore, on ne sait vraiment le faire que pour des nombres entiers, des nombres à virgule et du texte...). C'est pas mal, mais il reste du chemin à parcourir ! Rassurez-vous, ce chapitre est là pour corriger ce petit défaut. On va vous expliquer quels traitements élémentaires notre ordinateur va effectuer sur nos bits.

Les portes logiques de base modifier

Les portes logiques sont des circuits qui possèdent des sorties et des entrées sur lesquelles on va placer ou récupérer des bits. Les entrées ne sont rien d'autre que des morceaux de « fil » conducteur sur lesquels on envoie un bit (une tension). À partir de là, le circuit électronique va réagir et déduire le bit à placer sur chaque sortie. Tous les composants d'un ordinateur sont fabriqués avec ce genre de circuits.

Sur les schémas qui vont suivre, les entrées des portes logiques seront à gauche et les sorties à droite !

Les portes logiques ont différent symboles selon le pays et l'organisme de normalisation :

  • Commission électrotechnique internationale (CEI) ou International Electrotechnical Commission (IEC),
  • Deutsches Institut für Normung (DIN, Institut allemand de normalisation),
  • American National Standards Institute (ANSI).

La porte OUI/BUFFER modifier

La première porte fondamentale est la porte OUI, qui agit sur un seul bit : sa sortie est exactement égale à l'entrée. En clair, elle recopie le bit en entrée sur sa sortie. 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 0
1 1
Symboles d'une porte OUI(BUFFER).
CEI DIN ANSI
     

Mine de rien, la porte OUI est parfois utile. Elle sert surtout pour recopier un signal électrique qui risque de se dissiper dans un fil trop long. On place alors une porte OUI au beau milieu du fil, pour éviter tout problème, la porte logique régénérant le signal électrique, comme on le verra dans le chapitre suivant. Cela lui vaut parfois le nom de porte BUFFER, ce qui veut dire tampon. Les portes OUI sont aussi utilisées dans certaines mémoires RAM (les mémoires SRAM), comme nous le verrons dans quelques chapitres.

La porte NON modifier

La seconde 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. Son symbole ressemble beaucoup au symbole d'une porte OUI, la seule différence étant le petit rond au bout du triangle.

Entrée Sortie
0 1
1 0
Symboles d'une porte NON (NOT).
CEI DIN ANSI
     

La porte ET modifier

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.

Entrée 1 Entrée 2 Sortie
0 0 0
0 1 0
1 0 0
1 1 1
Symboles d'une porte ET (AND).
CEI DIN ANSI
     

La porte NAND modifier

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.

Entrée 1 Entrée 2 Sortie
0 0 1
0 1 1
1 0 1
1 1 0
Symboles d'une porte NON-ET (NAND).
CEI DIN ANSI
     

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 un petit rond (blanc pour ANSI, noir pour DIN) ou une barre (CEI) 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 modifier

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.

Entrée 1 Entrée 2 Sortie
0 0 0
0 1 1
1 0 1
1 1 1
Symboles d'une porte OU (OR).
CEI DIN ANSI
     

La porte NOR modifier

La porte NOR donne l'exact inverse de la sortie d'une porte OU.

Entrée 1 Entrée 2 Sortie
0 0 1
0 1 0
1 0 0
1 1 0
Symboles d'une porte NON-OU (NOR).
CEI DIN ANSI
     

La porte XOR modifier

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
Symboles d'une porte OU-exclusif (XOR).
CEI DIN ANSI
     

La porte XNOR modifier

La porte XOR possède une petite sœur : la XNOR. 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
Symboles d'une porte NON-OU-exclusif (XNOR).
CEI DIN ANSI
     

Les autres portes logiques modifier

Les portes logiques que nous venons de voir ne sont pas les seules. En fait, il existe un grand nombre de portes logiques différentes, certaines ayant plus d'intérêt que d'autres. Mais avant toute chose, nous allons parler d'un point important : combien y a-t-il de portes logiques en tout ? La question a une réponse très claire, pour peu qu'on précise la question. Les portes que nous avons vu précédemment ont respectivement 1 et 2 bits d'entrée, mais il existe aussi des portes à 3, 4, 5, bits d’entrée, voire plus. Il faut donc se demander combien il existe de portes logiques, dont les entrées font N bits. Par exemple, combien y a-t-il de portes logiques avec un bit d'entrée ? Avec deux bits d'entrée ? Avec 3 bits ?

Pour cela, un petit raisonnement peut nous donner la réponse. Vous avez vu plus haut qu'une porte logique est définie par une table de vérité, qui liste la valeur de la sortie pour toutes les combinaisons possibles de l'entrée. Pour une entrée de N bits, on a   combinaisons possibles. Ensuite, calculons combien de portes logiques en tout on peut créer avec ces combinaisons. Là encore, le raisonnement est simple : chaque combinaison peut donner deux résultats en sortie : 0 et 1, le résultat de chaque combinaison est indépendant des autres, on en a X. Le résultat est donc  . Pour les portes logiques à 1 bit d’entrée, cela fait 4 portes logiques. Pour les portes logiques à 2 bits d’entrée, cela fait 16 portes logiques. Voici ce que cela donne avec les portes logiques de 2 bits d'entrée.

 
Les 16 portes logiques à deux entrées possibles.

Dans cette section, nous allons étudier toutes les portes logiques à une et deux entrées, et allons montrer que toutes peuvent se fabriquer en combinant d'autres portes logiques de base. Par exemple, certaines portes sont l'inverse l'une de l'autre. La porte ET et la porte NAND sont l'inverse l'une de l'autre : il suffit d'en combiner une avec une porte NON pour obtenir l'autre. Même chose pour les portes OU et NOR, ainsi que les portes XOR et NXOR. Mais d'autres possibilités existent et nous allons les voir dans le détail dans ce qui suit.

Porte ET  
Porte OU  

Les portes logiques à un bit d'entrée modifier

Il existe quatre portes logiques de 1 bit. Il est facile de toutes les trouver avec un petit peu de réflexion, en testant tous les cas possibles.

  • La première donne toujours un zéro en sortie, c'est la porte FALSE ;
  • La seconde recopie l'entrée sur sa sortie, c'est la porte OUI, aussi appelée la porte BUFFER ;
  • La troisième est la porte NON vue plus haut ;
  • La première donne toujours un 1 en sortie, c'est la porte TRUE.
Tables de vérité des portes logiques à une entrée
Entrée FALSE OUI NON TRUE
0 0 0 1 1
1 0 1 0 1

On peut fabriquer une porte OUI en faisant suivre deux portes NON l'une à la suite de l'autre. Inverser un bit deux fois redonne le bit original.

 
Porte OUI/Buffer fabriquée à partie de deux portes NON.

Les portes logiques TRUE et FALSE sont des portes logiques un peu à part, qu'on appelle des portes triviales. Elles sont absolument inutiles et n'ont même pas de symbole attitré. Il est possible de fabriquer une porte FALSE à partir d'une porte TRUE suivie d'une porte NON, et inversement, de créer une porte TRUE en inversant la sortie d'une porte FALSE. Pour résumer, toutes les portes à une entrée peuvent se fabriquer en prenant une porte NON, couplée avec soit une porte FALSE, soit une porte TRUE. C'est étrange que l'on doive faire un choix arbitraire, mais c'est comme ça et la même chose arrivera quand on parlera des portes à deux entrées.

Les portes logiques à deux bits d'entrée modifier

Les portes logiques à 2 bits d'entrée sont au nombre de 16. Nous avions déjà vu les portes OU, NOR, ET, NAND, XOR et NXOR. À part ces 6 là, peu de portes logiques sont réellement utiles. Il y a bien la porte IMPLY et la porte NIMPLY, que nous allons voir dans ce qui suit, qui peuvent servir dans des explications, mais assez marginalement. La liste complète des tables de vérité est regroupée dans le tableau ci-dessous. Dans ce tableau, on retrouve les deux portes logiques triviales, à savoir la porte FALSE et TRUE, qui donnent toujours respectivement 0 et 1 en sortie.

Entrée F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
00 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
01 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
10 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
11 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

On peut classer les différentes portes logiques sur un point bien précis, que nous allons expliquer immédiatement. Vous remarquerez que la table de vérité a 4 lignes, qui correspondent aux 4 combinaisons possibles des bits d'entrée : 00, 01, 10, et 11. Ensuite, les portes logiques mettent leur sortie à 1 pour certaines de ces lignes, pour certaines de ces combinaisons. Par exemple, la porte ET a une sortie à 1 pour une seule combinaison, la porte OU pour 3 combinaisons, la porte TRUE pour les 4, etc. Si on omet les portes FALSE et TRUE, on peut classer les portes en fonction du nombre de combinaisons qui mettent la sortie à 1, ce qui donne 3 classes :

  • les portes où c'est 1 lignes/combinaison ;
  • les portes où c'est 2 lignes/combinaisons ;
  • les portes où c'est 3 lignes/combinaisons.

Cette classification est essentielle pour la suite du chapitre. Nous simplifier les explications, nous parlerons de portes 0, 1, 2, 3 et 4-combinaisons. Elles sont indiquées par les couleurs dans le tableau suivant : jaune pour les 2-combinaisons, rouge pour les 1-combinaisons, et vert pour les 3-combinaisons.

Entrée FALSE NOR NIMPLY NON A NCONVERSE NON (B) XOR NAND ET NXOR OUI (B) IMPLY OUI (A) CONVERSE OU TRUE
00 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
01 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
10 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
11 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

On peut compter le nombre de portes dans chaque catégorie, ce qui donne 4 portes logiques 1-combinaison, 6 portes logique 2-combinaisons, 4 portes logiques 3-combinaisons.

Les portes 1-combinaison sont des dérivées de la porte ET modifier

Les portes 1-combinaison sont au nombre de quatre. Elles regroupent les deux portes NOR et ET, ainsi que deux nouvelles portes que nous allons appeler NCONVERSE et NIMPLY.

La porte NCONVERSE a la table de vérité suivante :

Entrée 1 Entrée 2 Sortie
0 0 0
0 1 1
1 0 0
1 1 0

La porte NIMPLY a la table de vérité suivante :

Entrée 1 Entrée 2 Sortie
0 0 0
0 1 0
1 0 1
1 1 0

Vous pouvez le voir, elles ont une sortie à 1 à condition que l'une des entrées soit à 1, et l'autre entrée soit à 0. On devine rapidement que ces deux portes peuvent se fabriquer en prenant une porte ET et une porte NON. Il suffit de mettre la porte NON devant l'entrée devant être à 0, et de mettre un ET à la suite. Au passage, cela se ressent dans les symboles utilisés pour ces deux portes, qui sont les suivants :

 
Porte NCONVERSE.
 
Porte NIMPLY.

Vous vous demandez certainement ce qui se passe quand on inverse les deux entrées avant le ET. Pour cela, regardons ce que fait le circuit en étudiant sa table de vérité.

 
Porte NOR fabriquée avec des portes NON et ET.
Entrée 1 Entrée 2 Sortie
0 0 1
0 1 0
1 0 0
1 1 0

C'est la table de vérité d'une porte NOR. En clair, une porte NOR est équivalente à une porte ET dont on aurait inversé les deux entrées.

 
Porte NOR fabriquée avec une porte ET et deux portes NON.

Pour résumer, toutes les portes 1-combinaison sont équivalentes à une porte ET dont on a inversé 0, 1 ou 2 entrées.

Les portes 3-combinaison sont des dérivées de la porte OU modifier

Les portes 3-combinaison sont au nombre de quatre. Elles regroupent les deux portes OU et NAND, ainsi que deux nouvelles portes que nous allons appeler IMPLY et CONVERSE.

La porte CONVERSE a la table de vérité suivante :

Entrée 1 Entrée 2 Sortie
0 0 1
0 1 0
1 0 1
1 1 1

La porte IMPLY a la table de vérité suivante :

Entrée 1 Entrée 2 Sortie
0 0 1
0 1 1
1 0 0
1 1 1

Leur comportement se comprend facilement quand on sait qu'elles sont équivalentes à une porte OU dont on aurait inversé une des entrées. La porte CONVERSE met sa sortie à 1 soit quand l'entrée 1 est à 1, soit quand l'entrée 2 est à 0. La porte IMPLY fait la même chose, sauf qu'il faut que l'entrée 2 soit à 1 et l'entrée 1 à 0. Leurs symboles trahissent cet état de fait, jugez-en vous-même :

 
Porte CONVERSE.
 
Porte IMPLY.

Vous vous demandez certainement ce qui se passe quand on inverse les deux entrées avant le OU. Pour cela, regardons ce que fait le circuit en étudiant sa table de vérité.

 
Porte NAND fabriquée avec des portes NON et OU.
Entrée 1 Entrée 2 Sortie
0 0 1
0 1 1
1 0 1
1 1 0

C'est la table de vérité d'une porte NAND. En clair, une porte NAND est équivalente à une porte ET dont on aurait inversé les deux entrées.

 
Porte NOR fabriquée avec une porte ET et deux portes NON.

Pour résumer, toutes les portes 3-combinaison sont équivalentes à une porte OU dont on a inversé 0, 1 ou 2 entrées.

Les autres portes modifier

Les portes 2-combinaisons sont assez simples à comprendre. Deux portes d'entre elles sont familières : il s'agit des portes XOR et NXOR. Les autres portes correspondent à des portes qui mettent leur sortie à 1 quand, respectivement : la première entrée est à 1, quand elle est à 0, quand la seconde entrée est à 1, quand la seconde entrée est à 0. Il s'agit de portes à une entrée déguisées, la seconde entrée ne servant à rien. Elles se résument donc à une porte OUI ou une porte NON selon les cas. On peut remarquer que la moitié des portes 2-combinaison sont l'inverse des autres. Si on prend les portes A, B et XOR, on peut retrouver les trois portes restantes avec une simple porte NON. Voici leurs tables de vérités regroupées ensembles.

Entrée 1 Entrée 2 A NON A B NON B XOR NXOR
0 0 0 1 1 0 0 1
0 1 0 1 0 1 1 0
1 0 1 0 0 0 1 0
1 1 1 0 1 1 0 1

Si dans les deux sections précédentes, nous avons dérivé toutes les portes 1-combinaison à partir de la porte ET, puis les portes 3-combinaison à partir de la porte OU. Il vous est peut-être venu l'idée de dériver toutes les portes 2-combinaisons à partir de la porte XOR. Cependant, si vous avez l'idée d'ajouter des portes NON en entrée d'une porte XOR/NXOR, cela ne marchera pas. Pour cela, établissons la table de vérité des quatre possibilités :

Entrée 1 Entrée 2 A XOR B A XOR (NON B) (NON A) XOR B (NON A) XOR (NON B)
0 0 0 1 1 0
0 1 1 0 0 1
1 0 1 0 0 1
1 1 0 1 1 0

On retombe sur une porte XOR ou NXOR !

Fabriquer des portes logiques basiques en combinant d'autres portes basiques modifier

Nous avons vu dans la section précédente plusieurs choses importantes, qui nous ont permis de fabriquer une bonne partie des portes logiques à partir de portes logiques NON, ET, OU, XOR, NAND, NOR. Nous avions vu :

  • que toutes les portes logiques 1-combinaisons se fabriquent avec une porte ET dont on inverse 0, 1 ou 2 entrées;
  • que les portes 3-combinaisons se fabriquent avec une porte OU dont on inverse 0, 1 ou 2 entrées ;
  • que les portes 2-combinaisons sont soit des portes OUI, des portes NON ou des portes XOR/NXOR.

Pour résumer, beaucoup de portes logiques parmi les 16 possibles peuvent se fabriquer à partir d'autres. Voici la liste des 16 portes logiques possibles. Les couleurs servent à indiquer comment elles sont fabriquées à partir de portes logiques plus simples. En rouge, on trouve les portes logiques fabriquées avec une porte OU, en la combinant ou non avec une porte NON. En vert , on trouve les portes logiques fabriquées avec une porte ET, en la combinant ou non avec une porte NON. En bleu clair, on trouve les portes logiques fabriquées avec une porte OU, en la combinant ou non avec une porte XOR. En jaune, on trouve les portes logiques fabriquées avec des portes NON.

Entrée FALSE NOR NIMPLY NON A NCONVERSE NON (B) XOR NAND ET NXOR OUI (B) IMPLY OUI (A) CONVERSE OU TRUE
00 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
01 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
10 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
11 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Notons que certaines portes peuvent se fabriquer de plusieurs manières, et devraient avoir plusieurs couleurs. En théorie, la porte FALSE peut se fabriquer avec une porte XOR, mais aussi avec une porte NIMPLY ou NCONVERSE, donc avec une porte ET et une porte NON. Idem avec la porte TRUE, qui peut se fabriquer avec une porte OU et une porte NON, ou encore avec une porte XOR et une porte NON. Il en est de même avec la porte NON, qui peut en théorie être dérivée d'une porte XOR seule.

Il semblerait donc que toute porte logique puisse de fabriquer à partir de quatre portes de base : NON, ET, OU, et XOR. Une autre possibilité, équivalente, est d'utiliser les quatre portes NON, NAND, NOR et NXOR. A vrai dire, il y a plein d'autres possibilités, comme NON, ET, NOR, XOR ; ou encore NON, NAND, NOR, XOR, etc. Mais passons cela sous silence. Dans cette section, nous allons voir que l'on peut aller encore plus loin et éliminer certaines de ces portes logiques. Mais la question est : faut-il garder les portes ET/OU/XOR ou les portes NOR/NAND/NXOR ? L'un de ces choix est plus pertinent que l'autre, mais nous ne savons pas lequel pour le moment. Intuitivement, on se doute que l'on devrait retirer les portes NOR, NAND et NXOR, mais n'allons pas trop vite en besogne, nous ne sommes pas à l'abri d'une surprise.

L'élimination des portes à 2, 3 et 4-combinaisons modifier

Pour commencer, nous allons montrer que les portes XOR/NXOR peuvent se fabriquer à partir de portes NON, ET/NAND et OU/NOR. Puis, nous allons voir comment les techniques utilisées pour cette élimination marchent pour toutes les portes logiques ou presque.

L'élimination de la porte XOR modifier

Pour la porte XOR, plusieurs combinaisons de portes logiques faisant l'affaire. Une première possibilité part du principe qu'un XOR est un OU, sauf dans le cas où les deux entrées sont à 1, cas qui peut se détecter avec une porte ET. L'idée est donc la suivante : on prend une porte OU, on prend une porte ET, et on combine le résultat pour donner une porte XOR. Voici ce que cela donne :

Entrée 1 Entrée 2 OU ET XOR
0 0 0 0 0
0 1 1 0 1
1 0 1 0 1
1 1 1 1 0

La porte à choisir pour combiner les deux résultats n'est pas évidente en regardant le tableau. Il faut dire qu'on n’a pas de véritable table de vérité bien évidente, car il manque le cas avec la sortie du OU à 0 et celle du ET à 1. En réfléchissant bien, on devine qu'une porte 1-combinaison fait l'affaire, vu que seule la combinaison 1,0 met la sortie à 1. Il s'agit de la porte NIMPLY ou NCONVERSE, selon comment on câble le circuit (on peut envoyer le résultat de la porte OU sur l'entrée 1 ou 2, peut importe). L'essentiel est que l'on a juste besoin d'une porte 1-combinaison qui inverse le résultat de la porte ET. En remplacant cette porte par une portet NON et une porte ET, on obtient le circuit suivant. Notez que la porte NON a été fusionnée avec la porte ET précédente, pour obtenir un circuit avec uniquement des portes ET/OU/NON.

 
Porte XOR fabriquée à partir de portes ET/OU/NON, alternative.
Notons que ce circuit nous donne une idée pour créer une porte NXOR : il suffit de remplacer la porte ET finale par une porte NAND.

Une autre possibilité vient d'un raisonnement assez simple. Pour cela, partons du tableau vu plus haut :

Entrée 1 Entrée 2 Sortie
0 0 0
0 1 1
1 0 1
1 1 0

On voit que la sortie est à 1 dans deux situations : soit l'entrée n°1 est à 1 et l'entrée 2 à 0, soit c'est l'inverse. L'idée est de créer un circuit qui vérifie si on est dans la première situation, un circuit pour l'autre situation, et de quoi combiner la sortie de ces deux circuits. Les deux premiers circuits ne sont autres que les portes 1-combinaison NCONVERSE et NIMPLY, vue précédemment.

Entrée 1 Entrée 2 NCONVERSE NIMPLY (NCONVERSE) OU (NIMPLY) = XOR
0 0 0 0 0
0 1 0 1 1
1 0 1 0 1
1 1 0 0 0

Et il se trouve que ces deux portes sont composées d'une porte ET et d'une porte NON chacune. La sortie des deux circuits est combinée avec une porte OU, car une seule des deux situations rencontrées met la sortie à 1. Le circuit obtenu est le suivant :

 
Porte XOR fabriquée à partir de portes ET/OU/NON.
Notons que ce circuit nous donne une idée pour créer une porte NXOR : il suffit de remplacer la porte OU finale par une porte NOR.

L'élimination de la porte NXOR modifier

Il est possible de créer une porte NXOR en plaçant une porte NON en sortie d'une porte XOR, et en simplifiant le circuit, notamment en utilisant des portes NOR/NAND. Mais il est aussi possible d'utiliser la technique précédente, à savoir combiner deux portes 1-combinaison. La porte NXOR sort un 1 soit quand ses deux entrées sont à 1, soit quand elles sont toutes deux à 0. La porte ET a sa sortie à 1 dans le premier cas, quand les deux entrées sont à 1, alors que la porte NOR (une OU suivie d'une NOT) a sa sortie à 1 quand les deux entrées sont à 0. La porte finale combine le résultat de la porte NOR avec celui de la porte ET pour obtenir un résultat valide. Vu que la sortie doit être à 1 dans l'un des deux cas, c’est-à-dire quand l'une des deux portes ET/NOR est à 1, la porte finale est naturellement une porte OU.

 
Porte NXOR fabriquée à partir de portes ET/OU/NON, alternative.
Notons que ce circuit nous donne une troisième possibilité pour créer une porte XOR : il suffit de remplacer la porte OU finale par une porte NOR.
Entrée 1 Entrée 2 NOR ET (NOR) OU (ET) = NXOR
0 0 1 0 1
0 1 0 0 0
1 0 0 0 0
1 1 0 1 1

Les autres portes logiques à 2, 3 et 4 combinaisons modifier

On vient de voir que l'on peut créer une porte XOR/NXOR en combinant les résultats de plusieurs portes 1-combinaison avec une porte OU. Il s'agit là d'une technique qui marche au-delà des portes XOR, et qui marche pour toutes les portes logiques à 2, 3 ou 4 combinaisons.

Prenons comme exemple la porte logique qui met la sortie à 1 pour la seconde et quatrième ligne de la table de vérité. On peut la concevoir en prenant deux portes logiques 1-combinaison : celle qui a sa sortie à 1 pour la seconde ligne de la table de vérité, et celle pour la quatrième ligne. En faisant un OU entre ces deux portes, le résultat sera la porte 2-combinaison demandé. Et on peut appliquer le même raisonnement pour n'importe quelle porte logique 2, 3 ou même 4-combinaison. Il suffit alors d'utiliser un OU à 2, 3 ou 4 entrées.

Entrée 1 Entrée 2 NCONVERSE ET Porte voulue
0 0 0 0 0
0 1 1 0 1
1 0 0 0 0
1 1 0 1 1

Cette technique permet de fabriquer directement toutes les portes logiques à deux entrées, sauf la porte FALSE. C'est la seule qui ne puisse être fabriquée à partir des portes 1-combinaison seules et qui demande d'utiliser une porte NON pour. Pour cela, il faut créer une porte TRUE avec des portes 1-combinaisons et la faire suivre d'une porte NON. En clair, à partir de toutes les portes 1-combinaison et d'une porte NON, on peut créer toutes les portes logiques à deux entrées existantes.

L'élimination des portes ET et OU modifier

Nous venons de voir que les portes XOR et NXOR sont superflues, tout comme les autres portes à 2-combinaisons. Les portes qui restent sont donc les portes à 1 et 3 combinaisons. Or, nous avions vu dans la section précédente que celles-ci peuvent se fabriquer en prenant une porte ET (portes 1-combinaison) ou OU (3-combinaison), et d'ajouter si besoin des portes NON sur ses entrées. Il nous reste donc les portes NON, ET, OU. Dans cette section, nous allons montrer que toute porte peut être créée avec seulement des portes ET et NON, sans porte OU. Nous allons aussi voir qu'il est possible de faire de même, mais avec seulement des portes NON et des portes OU, sans porte ET.

Pour comprendre pourquoi, il faut remarquer que les portes 3-combinaisons font l'exact inverse des portes 1-combinaison : les premières mettent leur sortie à zéro pour une seule combinaison d'entrée, les secondes mettent leur sortie à 1 pour une seule combinaison d'entrée. En clair, on peut obtenir les quatre portes 1-combinaison en combinant une porte 3-combinaison avec une porte NON, et inversement. Les premières étant formées avec une porte ET et des portes NON, alors que les secondes étant faites avec des portes OU et NON. On devine donc que l'on peut éliminer au choix la porte OU, la porte ET.

L'élimination de la porte OU modifier

Nous avions vu plus haut qu'il est possible de créer une porte NOR avec des NON et des ET, comme illustré ci-dessous.

 
Porte NOR fabriquée avec des portes NON et ET.

On peut créer une porte OU en ajoutant une porte NON au bout du circuit précédent, pour inverser son résultat.

 
Porte OU fabriquée avec des portes NON et ET.

L'élimination de la porte ET modifier

Nous avions vu plus haut qu'il est possible de créer une porte NAND avec des NON et des OU, comme illustré ci-dessous.

 
Porte NAND fabriquée avec des portes NON et OU.

On peut aussi créer une porte ET en ajoutant une porte NON au bout du circuit précédent pour inverser son résultat.

 
Porte ET fabriquée avec des portes NON et OU.

L'élimination de la porte NON modifier

Dans la section précédente, nous avons vu qu'il existe deux possibilités : soit on supprime les portes ET/NAND et on garde les portes OU/NOR, soit on fait l'inverse. Les deux possibilités sont équivalentes et permettent chacune de fabriquer toutes les portes logiques restantes. Cependant, supposons que je conserve les portes ET/NAND : dois-je conserver la porte ET, ou la porte NAND ? Les deux solutions ne sont pas équivalentes, car l'une permet de se passer de porte NON et pas l'autre. En effet, il est possible de remplacer les portes NON par une porte NAND ou une porte NOR ! Ce qui permet de fabriquer tout circuit avec seulement un type de porte logique : soit on construit le circuit avec uniquement des NAND, soit avec uniquement des NOR. Pour donner un exemple, sachez que les ordinateurs chargés du pilotage et de la navigation des missions Appollo étaient intégralement conçus avec des portes NOR.

Pour comprendre pourquoi, il faut savoir qu'il est possible de créer une porte OUI en utilisant une porte ET ou encore une porte OU, comme illustré ci-dessous. La raison est que si on fait un ET/OU entre un bit et lui-même, on retrouve le bit initial. Il s'agit d'une propriété particulière de la porte XOR sur laquelle nous reviendrons rapidement dans le chapitre sur les circuits combinatoires, et qui sera très utile dans le chapitre sur les opérations bit à bit. De plus, elle sera très utile vers la fin du chapitre.

 
Porte Buffer faite à partir d'un OU.
 
Porte Buffer faite à partir d'un ET.

Mais que se passe-t-il si on remplace celles-ci par une porte NAND/NOR ? La réponse est simple : on obtient une porte NON ! Pour comprendre pourquoi cela marche, il faut imaginer que la porte NAND/NOR est composée d'une porte ET/OU suivie par une porte NON. Une porte NAND/NOR dont on relie les deux entrées donne donc un ET/OU dont on relie les deux entrées, c’est-à-dire une porte OUI, suivie par une porte NON. Le bit d'entrée va subir un ET/OU avec lui-même, avant d'être inversé. Mais le passage dans le ET/OU ne changera pas le bit (cette étape se comporte comme une porte OUI), alors que la porte NON l'inversera.

Porte NON fabriquée avec des portes NAND/NOR
Circuit équivalent avec des NAND Circuit équivalent avec des NOR
Porte NON
 
NOT from NAND
 
NOT from NOR
Vous vous demandez peut-être ce qu'il se passe quand on fait la même chose avec une porte XOR, en faisant un XOR entre un bit et lui-même. Et bien le résultat est une porte FALSE. En effet, la porte XOR fournit un zéro quand les deux bits d'entrée sont identiques, ce qui est le cas quand on XOR un bit avec lui-même. Et inversement, une porte TRUE peut se fabriquer en utilisant une porte NXOR. Il s'agit là d'une propriété particulière de la porte XOR/NXOR sur laquelle nous reviendrons rapidement dans le chapitre sur les circuits combinatoires, et qui sera très utile dans le chapitre sur les opérations bit à bit.

Créer les autres portes logiques est alors un jeu d'enfant avec ce qu'on a appris dans les sections précédentes. Il suffit de remplacer les portes NON et ET par leurs équivalents fabriqués avec des NAND.

Circuit équivalent avec des NAND Circuit équivalent avec des NOR
Porte ET
 
AND from NAND
 
AND from NOR
Porte OU
 
OR from NAND
 
OR from NOR
Porte NOR
 
NOR from NAND
Porte NAND
 
NAND from NOR
Porte XOR
 
XOR from NAND
 
XOR from NOR
 
XOR from NAND
 
XOR from NOR
Porte NXOR
 
NXOR from NAND
 
NXOR from NOR
 
NXOR from NAND
 
NXOR from NOR

Les portes logiques à plus de deux entrées modifier

En théorie, les portes logiques regroupent tous les circuits à une ou deux entrées, mais pas au-delà. Mais dans les faits, certains circuits assez simples sont considérés comme des portes logiques, même s'ils ont plus de deux entrées. En fait, une porte logique est un circuit simple, qui sert de brique de base pour d'autres circuits. Il doit être raisonnablement simple et doit se fabriquer sans recourir à des portes logiques plus simples. En clair, les portes logiques sont des circuits élémentaires, et sont aux circuits électroniques ce que les atomes sont aux molécules. Dans ce qui suit, nous allons voir des portes logiques qui ont plus de 2 entrées, et en ont 3, 4, 5, voire plus. S'il est difficile d'expliquer en quoi ce sont des portes logiques, tout deviendra plus évident dans le chapitre suivant, quand nous verrons comment sont fabriquées ces portes logiques avec des transistors. Nous verrons que les circuits que nous allons voir se fabriquent très simplement en quelques transistors, sans recourir à des portes ET/OU/NAND/NOR. De plus, beaucoup de ces circuits sont très utiles et reviendront régulièrement dans la suite du cours.

Les portes ET/OU/NAND/NOR à plusieurs entrées modifier

Les premières portes logiques à plusieurs entrées que nous allons voir sont les portes ET/OU/NAND/NOR à plus de 2 entrées.

Il existe des portes ET qui ont plus de deux entrées. Elles peuvent en avoir 3, 4, 5, 6, 7, etc. Comme pour une porte ET normale, 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 ET à trois entrées, symbole ANSI
 
Porte ET à trois entrées, symbole CEI

De même, il existe des portes OU/NOR à plus de deux entrées. Pour les portes OU à plusieurs entrées, leur sortie est à 1 quand au moins une de ses entrées vaut 1. Une autre manière de le dire est que leur sortie est à 0 si et seulement si toutes les entrées sont à 0.

 
Porte OU à trois entrées, symbole CEI
 
Porte ET à trois entrées, symbole DIN

Les versions NAND et NOR existent elles aussiet leur sortie/comportement est l'inverse de celle d'une porte ET/OU à plusieurs entrées. Pour les portes NAND, 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.

 
Porte NOR à trois entrées, symbole CEI
 
Porte NAND à trois entrées, symbole CEI
 
Porte ET à trois entrées conçue à partir de portes ET à deux entrées.
 
Porte OU à quatre entrées conçue à partir de portes OU à deux entrées.

Bien sur, ces portes logiques peuvent se créer en combinant plusieurs portes ET/OU/NOR/NAND à deux entrées. Cependant, faire ainsi n'est pas la seule solution et nous verrons dans le chapitre suivant que l'on peut faire nettement mieux avec quelques transistors. Elles sont très utiles dans la conception de circuits électroniques, mais elles sont aussi fortement utiles au niveau pédagogique. Nous en ferons un grand usage dans la suite du cours, car elles permettent de simplifier fortement les schémas et les explications pour certains circuits complexes. Sans elles, certains circuits seraient plus compliqués à comprendre et certains schémas seraient trop chargés en portes ET/OU pour être lisibles.

Les portes ET-OU-NON modifier

Les portes ET/OU/NON sont des portes logiques qui combinent plusieurs portes ET et une porte NOR en une seule porte logique. Il en existe de nombreux types, mais nous allons voir les deux principaux : les portes 2-2 et 2-1.

La porte 2-1 est une porte à 3 entrées, que nous allons appeler A, B, C, D. Elle fait un ET entre les entrées A et B, puis fait un NOR entre le résultat et la troisième entrée. Et le tout peut encore une fois s'implémenter en une seule porte logique, pas forcément en enchainant deux ou trois portes à la suite.

 
Porte ET-OU-NON de type 2-1, symbole.

La porte 2-2 est une porte à 4 entrées, que nous allons appeler A, B, C, D. Elle fait un ET entre les entrées A et B, un autre ET entre C et D, puis fait un NOR entre le résultat des deux ET. Et le tout peut s'implémenter en une seule porte logique, pas forcément en enchainant deux ou trois portes à la suite.

 
Porte ET-OU-NON de type 2-2, symbole.

Et il s'agit là des versions les plus simples de la porte, mais on peut imaginer des versions plus complexes, où les ET et les OU sont à 3, 4, voire 5 entrées.

 
Exemple de porte ET-OU-NON à huit entrées.

Il existe aussi des portes OU-ET-NON, où la position des portes ET et OU sont inversées.

Nous verrons dans le chapitre sur les circuits combinatoires que ces portes logiques sont très utiles ! En effet, les situations où on a une couche de portes ET suivi d'une couche de portes OU est très fréquente. Dans le chapitre sur les circuits combinatoires, nous verrons des méthodes pour concevoir n'importe quel circuit électronique (sans mémoire). La première méthode, dite des minterms, donne toujours un circuit composé d'une couche de portes NON, suivie d'une couche de portes ET, suivie d'une couche de portes OU. A l'inverse, la seconde méthode, celle des maxterms, donne toujours une couche de portes NON, suivie d'une couche de portes OU, suivie d'une couche de portes ET. Autant dire que de nombreux circuits peuvent se fabriquer avec une porte ET-OU-NON, ou du moins en combinant la sortie de plusieurs portes de ce type.

La porte à majorité modifier

La porte à majorité est une porte à plusieurs entrées, qui met sa sortie à 1 quand une plus de la moitié des entrées sont à 1, et sort un 0 sinon. En général, le nombre d'entrée de cette porte est toujours impair, afin d'éviter une situation où exactement la moitié des entrées sont à 1 et l'autre à 0. Avec un nombre impair d'entrée, il y a toujours un déséquilibre des entrées, pas une égalité parfaite. Il existe cependant des portes logiques à 4, 6, 8 entrées, mais elles sont plus rares. Dans tous les cas, une porte à majorité est actuellement fabriquée à partir de portes logiques simples (ET, OU, NON, NAND, NOR). Mais on considère que c'est une porte logique car c'est un circuit simple et assez utile. De plus, il est possible de créer une grande partie des circuits électroniques possibles en utilisant seulement des portes à majorité ! C'est surtout cette possibilité qui fait que la porte à majorité est considérée comme une porte logique, pas comme un circuit simple et utile.

Une porte à majorité à trois entrées mettra sa sortie quand deux sorties sont à 1. Il existe plusieurs possibilités pour cela, qui sont presque toutes plus simples que le circuit précédent. La plus simple utilise une couche de portes ET suivie par une porte OU à plusieurs entrées. En voici une autre :

 
Porte à majorité à trois bits d'entrée.

Voici le circuit d'une porte à majorité à 4 bits d'entrées :

 
Porte à majorité à quatre bits d'entrée.

Les deux circuits précédents nous disent comment fabriquer une porte à majorité générale. Pour la porte à trois entrée, on prend toutes les paires d'entrées possibles, on fait un ET entre les bits de chaque paire, puis on fait un OU entre le résultat des ET. Pareil pour la porte à 4 entrées : on prend toutes les combinaisons de trois entrées possibles, on fait un ET par combinaison, et on fait un OU entre tout le reste. Pour une porte à 5 entrées, on devrait utiliser là encore les combinaisons de trois entrées possibles. En fait, la recette générale est la suivante : pour une porte à N entrées, on toutes les combinaisons de (N+1)/2 entrées, on fait un ET par combinaison, puis on fait un OU entre les résultats des ET.