08 - Circuits logiques
Les fonctions logiques étudiées dans le chapitre précédent ne sont pas que des concepts abstraits : elles sont physiquement réalisées dans les processeurs sous forme de portes logiques. Ces composants électroniques, assemblés par milliards, effectuent tous les calculs de nos ordinateurs. Dans ce chapitre, vous découvrirez les symboles normalisés des portes logiques et apprendrez à analyser des circuits combinatoires. Le TP correspondant est la fiche 23 - Circuits logiques .
Des transistors aux portes logiques
Définition. Un transistor est un composant électronique qui fonctionne comme un interrupteur commandé électriquement. Selon le signal qu’il reçoit, il laisse passer ou bloque le courant.
Les transistors sont les briques de base de tous les circuits numériques. En les combinant astucieusement, on construit des portes logiques qui réalisent les opérations booléennes.
Remarque. Un processeur moderne contient plusieurs milliards de transistors. Par exemple, la puce Apple M2 (2022) en contient environ 20 milliards, gravés à une échelle de 5 nanomètres (5 millionièmes de millimètre).
Symboles des portes logiques
Il existe deux normes principales pour représenter les portes logiques :
- la norme américaine (ANSI/IEEE) : formes distinctives ;
- la norme européenne (CEI/IEC) : rectangles avec symboles.
Dans ce cours, nous utiliserons principalement la norme américaine, plus répandue dans la littérature informatique.
La porte NON (inverseur)
La porte NON possède une entrée et une sortie. Elle inverse le signal.
Le petit cercle à la sortie symbolise l’inversion (négation).
La porte ET (AND)
La porte ET possède deux entrées (ou plus) et une sortie. La sortie vaut 1 si et seulement si toutes les entrées valent 1.
La porte OU (OR)
La porte OU possède deux entrées (ou plus) et une sortie. La sortie vaut 1 si au moins une entrée vaut 1.
La porte NAND (NON-ET)
La porte NAND est une porte ET suivie d’un inverseur. Le cercle à la sortie indique l’inversion.
La porte NOR (NON-OU)
La porte NOR est une porte OU suivie d’un inverseur.
La porte XOR (OU exclusif)
La porte XOR renvoie 1 si exactement une des entrées vaut 1.
La porte XNOR (NON-OU exclusif)
La porte XNOR (ou équivalence) renvoie 1 si les deux entrées ont la même valeur.
Exercices de reconnaissance
Exercice 1 : identifier les portes
Pour chaque porte ci-dessous, indiquer son nom et son expression logique.
Correction
| Porte | Nom | Expression |
|---|---|---|
| 1 | OU (OR) | \(a + b\) |
| 2 | NON-ET (NAND) | \(\overline{{a \cdot b}}\) |
| 3 | NON (NOT) | \(\overline{{a}}\) |
| 4 | OU exclusif (XOR) | \(a \oplus b\) |
| 5 | ET (AND) | \(a \cdot b\) |
| 6 | NON-OU (NOR) | \(\overline{{a + b}}\) |
Circuits combinatoires
Définition. Un circuit combinatoire est un assemblage de portes logiques dont la sortie ne dépend que des valeurs actuelles des entrées (pas de mémoire).
Pour analyser un circuit, on détermine l’expression logique de la sortie en fonction des entrées, puis on établit sa table de vérité.
Exercice 2 : analyse d’un circuit simple
On considère le circuit suivant.
- Quelle est l’expression logique de \(S\) en fonction de \(a\) et \(b\) ?
- Compléter la table de vérité (colonnes \(a\), \(b\), \(a \cdot b\), \(S\)).
- À quelle porte élémentaire ce circuit est-il équivalent ?
Correction
\(S = \overline{{a \cdot b}}\)
Table de vérité :
| \(a\) | \(b\) | \(a \cdot b\) | \(S\) |
|---|---|---|---|
| 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
- Ce circuit est équivalent à une porte NAND.
Exercice 3 : circuit à trois portes
Analyser le circuit suivant.
- Écrire l’expression logique de \(S\).
- Compléter la table de vérité (colonnes \(a\), \(b\), \(\overline{{a}}\), \(\overline{{b}}\), \(S\)).
- En utilisant une loi de De Morgan, simplifier \(S\). À quelle porte ce circuit est-il équivalent ?
Correction
\(S = \overline{{a}} \cdot \overline{{b}}\)
Table de vérité :
| \(a\) | \(b\) | \(\overline{{a}}\) | \(\overline{{b}}\) | \(S\) |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 | 0 |
- D’après la loi de De Morgan : \(\overline{{a}} \cdot \overline{{b}} = \overline{{a + b}}\). Ce circuit est équivalent à une porte NOR.
Exercice 4 : construire le XOR
Le OU exclusif peut être construit avec des portes ET, OU et NON.
- Identifier chaque porte et écrire l’expression de \(S\).
- Vérifier par une table de vérité que ce circuit réalise bien le XOR (colonnes \(a\), \(b\), \(\overline{{a}}\), \(\overline{{b}}\), \(\overline{{a}} \cdot b\), \(a \cdot \overline{{b}}\), \(S\)).
Correction
Le circuit contient deux inverseurs produisant \(\overline{{a}}\) et \(\overline{{b}}\), une porte ET calculant \(\overline{{a}} \cdot b\), une porte ET calculant \(a \cdot \overline{{b}}\) et une porte OU combinant les deux. Expression : \(S = \overline{{a}} \cdot b + a \cdot \overline{{b}} = a \oplus b\).
Table de vérité :
| \(a\) | \(b\) | \(\overline{{a}}\) | \(\overline{{b}}\) | \(\overline{{a}} \cdot b\) | \(a \cdot \overline{{b}}\) | \(S\) |
|---|---|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 | 0 | 0 | 0 |
On retrouve bien la table du XOR : \(S = 1\) si et seulement si \(a \neq b\).
Circuits élémentaires
Le demi-additionneur
Définition. Un demi-additionneur (half adder) est un circuit qui additionne deux bits \(a\) et \(b\). Il produit deux sorties :
- \(S\) (somme) : le bit de poids faible du résultat ;
- \(C\) (carry, retenue) : le bit de poids fort du résultat.
Exercice 5 : conception du demi-additionneur
- Compléter la table de vérité de l’addition binaire de deux bits (colonnes \(a\), \(b\), \(C\), \(S\)). Indication : \(0 + 0 = 0\), \(0 + 1 = 1\), \(1 + 0 = 1\), \(1 + 1 = 10\) (en binaire).
- Identifier les fonctions logiques correspondant à \(S\) et \(C\).
- Dessiner le circuit du demi-additionneur en utilisant les portes appropriées.
Correction
- Table de vérité :
| \(a\) | \(b\) | \(C\) (retenue) | \(S\) (somme) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
On reconnaît \(S = a \oplus b\) (XOR), qui vaut 1 quand exactement un des bits vaut 1, et \(C = a \cdot b\) (ET), qui vaut 1 quand les deux bits valent 1.
Circuit du demi-additionneur :
L’additionneur complet
Définition. Un additionneur complet (full adder) additionne trois bits : \(a\), \(b\) et une retenue entrante \(c_{{in}}\). Il produit une somme \(S\) et une retenue sortante \(c_{{out}}\).
Exercice 6 : table de vérité de l’additionneur complet
Compléter la table de vérité de l’additionneur complet (colonnes \(a\), \(b\), \(c_{{in}}\), \(c_{{out}}\), \(S\)).
Correction
| \(a\) | \(b\) | \(c_{{in}}\) | \(c_{{out}}\) | \(S\) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 |
| 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 |
Interprétation : on additionne \(a + b + c_{{in}}\) en binaire. Par exemple, \(1 + 1 + 1 = 11_2\), donc \(c_{{out}} = 1\) et \(S = 1\).
Remarque. Un additionneur complet peut être construit à partir de deux demi-additionneurs et d’une porte OU. En chaînant plusieurs additionneurs complets, on peut additionner des nombres de plusieurs bits.
Le multiplexeur
Définition. Un multiplexeur (MUX) est un circuit qui sélectionne une entrée parmi plusieurs selon la valeur d’un signal de commande. C’est l’équivalent électronique d’un aiguillage.
Exercice 7 : le multiplexeur 2 vers 1
Un multiplexeur 2 vers 1 possède deux entrées de données \(e_0\) et \(e_1\), un signal de sélection \(s\), et une sortie \(Y\).
- Compléter la table de vérité sachant que \(Y = e_0\) si \(s = 0\) et \(Y = e_1\) si \(s = 1\) (colonnes \(s\), \(e_0\), \(e_1\), \(Y\)).
- En déduire l’expression logique de \(Y\).
Correction
- Table de vérité :
| \(s\) | \(e_0\) | \(e_1\) | \(Y\) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 |
Quand \(s = 0\), \(Y\) prend la valeur de \(e_0\). Quand \(s = 1\), \(Y\) prend la valeur de \(e_1\).
- Expression logique : \(Y = \overline{{s}} \cdot e_0 + s \cdot e_1\). C’est la formule du multiplexeur vue dans le chapitre sur les booléens.
Synthèse : du tableau au circuit
Exercice 8 : concevoir un circuit
On souhaite concevoir un circuit de vote majoritaire à trois entrées \(a\), \(b\), \(c\). La sortie \(M\) vaut 1 si au moins deux des trois entrées valent 1.
- Compléter la table de vérité (colonnes \(a\), \(b\), \(c\), \(M\)).
- Écrire l’expression logique de \(M\) sous forme de somme de produits (une somme de termes ET pour chaque ligne où \(M = 1\)).
- Simplifier cette expression. Indication : regrouper les termes qui ne diffèrent que par une variable.
Correction
- Table de vérité :
| \(a\) | \(b\) | \(c\) | \(M\) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
- Somme de produits (lignes où \(M = 1\)) :
\[ M = \overline{a} \cdot b \cdot c + a \cdot \overline{b} \cdot c + a \cdot b \cdot \overline{c} + a \cdot b \cdot c \]
- Simplification : le terme \(a \cdot b \cdot c\) peut être dupliqué autant de fois que nécessaire (car \(x + x = x\)). On l’associe à chacun des trois autres termes :
\[ M = b \cdot c \cdot (\overline{a} + a) + a \cdot c \cdot (\overline{b} + b) + a \cdot b \cdot (\overline{c} + c) = a \cdot b + a \cdot c + b \cdot c \]
La sortie vaut 1 dès qu’au moins une paire d’entrées est à 1.
Récapitulatif des symboles
| Porte | Expression | Symbole américain | Sortie vaut 1 quand |
|---|---|---|---|
| NON | \(\overline{{a}}\) | \(a = 0\) | |
| ET | \(a \cdot b\) | les deux entrées valent 1 | |
| OU | \(a + b\) | au moins une entrée vaut 1 | |
| NAND | \(\overline{{a \cdot b}}\) | au moins une entrée vaut 0 | |
| NOR | \(\overline{{a + b}}\) | les deux entrées valent 0 | |
| XOR | \(a \oplus b\) | exactement une entrée vaut 1 |