Explorateur de portes logiques

cliquez sur les entrées et observez les signaux traverser les portes

Chargement de la simulation interactive...

NAND seul peut construire n'importe quel circuit 🖖

NAND est fonctionnellement complet. On peut construire NOT, AND et OR entièrement à partir de NAND, c'est pourquoi de nombreux circuits réels préfèrent un petit ensemble de portes primitives.

Chaque porte est une minuscule décision oui/non 🖖

Une porte logique lit ses entrées comme HIGH (1) ou LOW (0) et produit un seul 1 ou 0 selon une règle fixe : AND veut les deux hautes, OR au moins une, XOR veut qu'elles diffèrent. La table de vérité ci-dessous est la définition complète de la porte : chaque combinaison d'entrées avec sa sortie, et il n'y a rien d'autre à savoir. Empilez assez de ces petites décisions et vous obtenez des additionneurs, de la mémoire et, finalement, un processeur entier.

Un circuit correct peut quand même scintiller 🖖

Les signaux n'arrivent pas instantanément : chaque porte ajoute un petit temps de propagation, et deux chemins vers la même sortie peuvent avoir des longueurs différentes. Quand une entrée change, la sortie peut afficher brièvement la mauvaise valeur avant de se stabiliser, ce qu'on appelle un glitch ou aléa, alors même que la table de vérité est parfaitement correcte. Observez la bande temporelle : le front de sortie suit le front d'entrée exactement de ce délai de porte, et dans les circuits à plusieurs portes ces délais s'additionnent en courses visibles.

LOGIQUE NUMÉRIQUE — QUEL BLOC FAIT LE TRAVAIL ?

Dans quel cas logique êtes-vous ?

Tout circuit numérique est une table de vérité déguisée en schéma. La question n’est jamais ce que fait une porte, mais quelle table il vous faut : une décision tirée de deux bits, toute une famille logique bâtie à partir d’une seule pièce, de l’arithmétique avec sa retenue, ou un aiguillage qui choisit un signal parmi plusieurs. Ces quatre cas couvrent l’essentiel de ce qu’un premier cours demande.

Une décision à partir de deux bits — choisissez la porte par sa colonne Y = A ⊕ B
Un seul type de porte disponible — NAND suffit NOT A = NAND(A, A)
De l’arithmétique, pas une décision — la somme est XOR, la retenue est AND S = A ⊕ B, C = A ∧ B
Choisir plutôt que combiner — un multiplexeur Y = A·¬S + B·S

01

Une décision à partir de deux bits — choisissez la porte par sa colonne

Ce que vous savez: Deux entrées, une sortie, et une règle qui tient en quatre lignes. Choisissez la porte dont la colonne de sortie correspond à la règle voulue.

Logique: Y = A ⊕ B

Exemple résolu: XOR avec A = 1 et B = 0 donne 1 ; la même porte donne 0 dès que les deux entrées coïncident

Ouvrir ce cas: XOR diffère
Une décision à partir de deux bits — choisissez la porte par sa colonne. Quatre lignes déterminent la porte entièrement ; la ligne surlignée est l’entrée que vous avez fixée. Deux entrées, une sortie, et une règle qui tient en quatre lignes. Choisissez la porte dont la colonne de sortie correspond à la règle voulue.
Quatre lignes déterminent la porte entièrement ; la ligne surlignée est l’entrée que vous avez fixée.

02

Un seul type de porte disponible — NAND suffit

Ce que vous savez: NAND est fonctionnellement complète. Toute autre porte se câble à partir de copies d’elle seule, et par conséquent tout circuit que vous savez décrire par une table de vérité.

Logique: NOT A = NAND(A, A)

Exemple résolu: NAND(1, 1) = 0. Reliez les deux entrées et NAND(A, A) = NOT A ; en réinjectant cela, deux NAND font un AND

Ouvrir ce cas: NAND universel
Un seul type de porte disponible — NAND suffit. Une NAND aux entrées reliées est un inverseur, et c’est sur cette astuce que repose tout le reste. NAND est fonctionnellement complète. Toute autre porte se câble à partir de copies d’elle seule, et par conséquent tout circuit que vous savez décrire par une table de vérité.
Une NAND aux entrées reliées est un inverseur, et c’est sur cette astuce que repose tout le reste.

03

De l’arithmétique, pas une décision — la somme est XOR, la retenue est AND

Ce que vous savez: Additionner deux bits donne une réponse sur deux bits. Le bit de poids faible vaut A XOR B, celui de poids fort — la retenue — vaut A AND B.

Logique: S = A ⊕ B, C = A ∧ B

Exemple résolu: 1 + 1 donne somme = 0 et retenue = 1, soit 10 en binaire : la seule des quatre lignes où la retenue se déclenche

Ouvrir ce cas: demi-add. 1+1
De l’arithmétique, pas une décision — la somme est XOR, la retenue est AND. Les deux mêmes entrées alimentent les deux portes : XOR fournit le bit de somme, AND la retenue. Additionner deux bits donne une réponse sur deux bits. Le bit de poids faible vaut A XOR B, celui de poids fort — la retenue — vaut A AND B.
Les deux mêmes entrées alimentent les deux portes : XOR fournit le bit de somme, AND la retenue.

04

Choisir plutôt que combiner — un multiplexeur

Ce que vous savez: Deux entrées de données et une ligne de sélection. La sortie recopie l’entrée désignée par la sélection et ignore complètement l’autre.

Logique: Y = A·¬S + B·S

Exemple résolu: A = 0, B = 1, S = 1 → sortie = 1, puisque sortie = A·(NOT S) + B·S

Ouvrir ce cas: sélection MUX
Choisir plutôt que combiner — un multiplexeur. La ligne de sélection achemine une entrée vers la sortie et bloque l’autre. Deux entrées de données et une ligne de sélection. La sortie recopie l’entrée désignée par la sélection et ignore complètement l’autre.
La ligne de sélection achemine une entrée vers la sortie et bloque l’autre.
Références (1)

Problème entièrement résolu

  1. Un demi-additionneur construit uniquement avec des portes NON-ET, et pourquoi cinq est le minimum 8 étapes

    Une usine de fabrication ne vous vendra qu'un seul et unique composant : la porte NON-ET à deux entrées. Construisez le demi-additionneur que l'outil dessine sous Demi-additionneur — un bit de somme, un bit de retenue — uniquement avec cela. Combien de portes NON-ET faut-il, et comment savoir si vous avez trouvé la solution la plus économique ?

    A B & G1 & G2 & G3 & G4 S & G5 C
    1. Commencez par la fonction NON, qui est le résultat le plus simple à obtenir d'une porte NON-ET. Reliez ses deux entrées au même fil. La porte demande « ces deux entrées sont-elles à l'état haut ? », et comme toutes deux valent A, elle répond dès lors que A ne l'est pas.

    2. Le ET coûte une porte de plus. Un NON-ET est déjà un ET dont la réponse est inversée, il suffit donc de l'inverser à nouveau : envoyez la sortie dans un NON, qui d'après l'étape 1 est une seconde porte NON-ET avec ses entrées reliées. Le OU en nécessite trois, en inversant chaque entrée avant un NON-ET, ce qui revient à appliquer les lois de De Morgan à l'envers.

    3. Le OU exclusif est celui qui résiste. L'astuce consiste à calculer le terme intermédiaire une seule fois, puis à le combiner à nouveau avec chaque entrée à son tour. Appelez-le C, et injectez-le dans un NON-ET face à A, puis à nouveau face à B.

    4. Développez D. On obtient « non à la fois A et (non A ou non B) ». La partie « A et non A » ne peut jamais se produire, elle disparaît donc, et ce qui reste est très court. E est la même expression dans laquelle les lettres sont permutées.

    5. Le dernier NON-ET les réunit. De Morgan transforme un NON-ET de deux négations en un simple OU, et un OU de « A mais pas B » avec « B mais pas A » est précisément la définition du OU exclusif. Quatre portes pour le bit de somme.

    6. Passons à la retenue. Il s'agit de A ET B, dont nous avons évalué le coût à deux portes à l'étape 2 — mais la première de ces deux portes est C, et C se trouve déjà sur un fil au milieu du OU exclusif que vous venez de construire. Prenez sa valeur une troisième fois et reliez-la à elle-même.

    7. Il en faut donc cinq, et non six. Vous venez d’en construire la moitié de la démonstration : la retenue nécessite à elle seule 2 portes, d’après l’étape 2, et la somme en nécessite 4, d’après l’étape 5. À l’étape 6, vous constatez qu’elles ont exactement une porte en commun, si bien que 2 + 4 − 1 = 5. Affirmer qu’il est impossible de faire mieux que cinq demande toutefois une autre preuve, que cette page ne fournit pas : ce résultat découle d’une recherche exhaustive parmi tous les réseaux de six portes NON-ET ou moins à deux entrées. Il s’agit d’un calcul informatique, non d’un raisonnement mathématique.

    8. Le nombre de portes ne dit rien sur le temps de propagation. Suivez la retenue : sortie de G1, directement dans G5, soit une profondeur de deux portes. La somme doit traverser G2 ou G3 puis G4, sa profondeur est donc de trois portes. Comptez les chemins de A à la somme : ils n'ont même pas la même longueur.

    Réponse

    Cinq portes NON-ET, et cinq est le minimum absolu. Réglez l'outil sur Demi-additionneur avec A = 1 et B = 1 et il indique le bit de somme passe à 0 et la retenue devient 1. Suivez cette ligne sur le schéma : C = 0, puis D = E = 1, puis S = 0, et la porte de retenue comparant C à lui-même donne 1. C est calculé une seule fois et lu trois fois, et c'est là que réside toute l'économie.

    Les profondeurs de l'étape 8 ont une conséquence que la table de vérité ne peut pas montrer. Abordons 1 + 1 depuis la ligne précédente, avec A déjà à l'état haut et B à l'état montant. La retenue passe à l'état haut après deux délais de porte ; la somme ne redescend qu'au troisième. Pendant la durée d'un délai complet de porte, les deux broches de sortie indiquent 1 et 1, ce qui, sous forme retenue-et-somme, correspond à 11 en binaire, et l'additionneur prétend brièvement que 1 + 1 = 3. Un circuit synchrone ne le voit jamais, car la période d'horloge est choisie pour être plus longue que le chemin le plus lent à travers la logique. Choisir une période trop courte constitue précisément une violation de contrainte temporelle.

Exemples de problèmes

  • XOR diffère - XOR A=1 B=0 -> 1 : vrai quand les entrées diffèrent
  • NAND universel - NAND(1,1) = 0 - NAND inverse le ET ; il permet de construire toutes les autres portes
  • demi-add. 1+1 - Demi-additionneur 1+1 : Somme=0 Retenue=1 - cette même retenue se propage dans chaque CPU
  • sélection MUX - Multiplexeur S=1 : l'entrée B est dirigée vers la sortie, quelle que soit la valeur de A