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.

Porte NON, normes américaine et européenne

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.

Porte ET, normes américaine et européenne

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.

Porte OU, normes américaine et européenne

La porte NAND (NON-ET)

La porte NAND est une porte ET suivie d’un inverseur. Le cercle à la sortie indique l’inversion.

Porte NAND, normes américaine et européenne

La porte NOR (NON-OU)

La porte NOR est une porte OU suivie d’un inverseur.

Porte NOR, normes américaine et européenne

La porte XOR (OU exclusif)

La porte XOR renvoie 1 si exactement une des entrées vaut 1.

Porte XOR, normes américaine et européenne

La porte XNOR (NON-OU exclusif)

La porte XNOR (ou équivalence) renvoie 1 si les deux entrées ont la même valeur.

Porte XNOR, normes américaine et européenne

Exercices de reconnaissance

Exercice 1 : identifier les portes

Pour chaque porte ci-dessous, indiquer son nom et son expression logique.

Six portes à identifier

Correction
PorteNomExpression
1OU (OR)\(a + b\)
2NON-ET (NAND)\(\overline{{a \cdot b}}\)
3NON (NOT)\(\overline{{a}}\)
4OU exclusif (XOR)\(a \oplus b\)
5ET (AND)\(a \cdot b\)
6NON-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.

Une porte ET suivie d’une porte NON

  1. Quelle est l’expression logique de \(S\) en fonction de \(a\) et \(b\) ?
  2. Compléter la table de vérité (colonnes \(a\), \(b\), \(a \cdot b\), \(S\)).
  3. À quelle porte élémentaire ce circuit est-il équivalent ?
Correction
  1. \(S = \overline{{a \cdot b}}\)

  2. Table de vérité :

\(a\)\(b\)\(a \cdot b\)\(S\)
0001
0101
1001
1110
  1. Ce circuit est équivalent à une porte NAND.

Exercice 3 : circuit à trois portes

Analyser le circuit suivant.

Deux inverseurs suivis d’une porte ET

  1. Écrire l’expression logique de \(S\).
  2. Compléter la table de vérité (colonnes \(a\), \(b\), \(\overline{{a}}\), \(\overline{{b}}\), \(S\)).
  3. En utilisant une loi de De Morgan, simplifier \(S\). À quelle porte ce circuit est-il équivalent ?
Correction
  1. \(S = \overline{{a}} \cdot \overline{{b}}\)

  2. Table de vérité :

\(a\)\(b\)\(\overline{{a}}\)\(\overline{{b}}\)\(S\)
00111
01100
10010
11000
  1. 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.

Circuit réalisant le OU exclusif

  1. Identifier chaque porte et écrire l’expression de \(S\).
  2. 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
  1. 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\).

  2. Table de vérité :

\(a\)\(b\)\(\overline{{a}}\)\(\overline{{b}}\)\(\overline{{a}} \cdot b\)\(a \cdot \overline{{b}}\)\(S\)
0011000
0110101
1001011
1100000

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

  1. 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).
  2. Identifier les fonctions logiques correspondant à \(S\) et \(C\).
  3. Dessiner le circuit du demi-additionneur en utilisant les portes appropriées.
Correction
  1. Table de vérité :
\(a\)\(b\)\(C\) (retenue)\(S\) (somme)
0000
0101
1001
1110
  1. 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.

  2. Circuit du demi-additionneur :

Demi-additionneur : une porte XOR et une porte ET

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\)
00000
00101
01001
01110
10001
10110
11010
11111

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\).

Multiplexeur 2 vers 1

  1. 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\)).
  2. En déduire l’expression logique de \(Y\).
Correction
  1. Table de vérité :
\(s\)\(e_0\)\(e_1\)\(Y\)
0000
0010
0101
0111
1000
1011
1100
1111

Quand \(s = 0\), \(Y\) prend la valeur de \(e_0\). Quand \(s = 1\), \(Y\) prend la valeur de \(e_1\).

  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.

  1. Compléter la table de vérité (colonnes \(a\), \(b\), \(c\), \(M\)).
  2. Écrire l’expression logique de \(M\) sous forme de somme de produits (une somme de termes ET pour chaque ligne où \(M = 1\)).
  3. Simplifier cette expression. Indication : regrouper les termes qui ne diffèrent que par une variable.
Correction
  1. Table de vérité :
\(a\)\(b\)\(c\)\(M\)
0000
0010
0100
0111
1000
1011
1101
1111
  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 \]

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

PorteExpressionSymbole américainSortie 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