Circuits élémentaires

Les décodeurs et multiplexeurs sont des circuits relativement élémentaires mais très souvent utilisés. Il s'agit de deux briques de base pour la construction de circuits plus élaborés. Ils sont en particulier présents dans chaque circuit mémoire. Un décodeur y décode l'adresse et active la ligne correspondante. Un multiplexeur permet d'y sélectionner la bonne sortie lors d'une lecture.

Décodeurs

Un décodeur k bits possède k entrées et 2k sorties. La sortie dont le numéro est donné par les entrées est active (valeur 1) alors que toutes les autres sorties sont inactives (valeur 0).

Le décodeur 1 bit a donc une seule entrée A0 et deux sorties S0 et S1. La table de vérité des sorties S0 et S1 est la suivante.

EntréeSorties
A0S0S1
010
101

On remarque que la sortie S0 est la négation de l'entrée A0 alors que la sortie S1 est égale à A0. On a donc le circuit suivant avec un seul inverseur.

Décodeur 1 bit
Schéma et symbole d'un décodeur 1 bit

Le décodeur 2 bits a deux entrées A0 et A1 ainsi que quatre sorties S0, S1, S2 et S3. La table de vérité des quatre sorties en fonction des deux entrées est la suivante.

EntréesSorties
A1A0 S0S1 S2S3
001 000
010 100
100 010
110 001

On remarque que l'on a les quatre formules suivantes pour les sorties.

S0 = ¬A1 ∧ ¬A0
S1 = ¬A1 ∧ A0
S2 = A1 ∧ ¬A0
S3 = A1 ∧ A0

Décodeur 2 bits
Schéma et symbole d'un décodeur 2 bits

Le décodeur 3 bits a 3 entrées et 8 sorties. Chaque sortie est obtenue comme le et logique des entrées ou de leurs négations. Les entrées devant être inversées correspondent aux zéros dans l'écriture en binaire du numéro de la sortie. Ainsi la sortie S5 est égal à A2 ∧ ¬A1 ∧ A0 car 5 s'écrit 101 en binaire.

Décodeur 3 bits
Schéma et symbole d'un décodeur 3 bits

Les circuits donnés pour k égal à 1, 2 et 3 se généralisent facilement à un entier quelconque. Le circuit est alors constitué d'inverseurs et de 2k portes and ayant chacune k entrées. Le nombre d'inverseurs nécessaires est k puisqu'il en faut un pour chaque entrée Ai afin de disposer de sa négation ¬Ai. Sur les schémas pour k = 1, 2, 3, certains inverseurs peuvent être évités en réutilisant une valeur calculée par un autre. Par contre, les schémas deviennent beaucoup moins clair. Comme chaque porte and à k entrées peut être réalisée avec k-1 portes and à 2 entrées (cf. la section portes logiques), on obtient un total de (k-1)2k portes and. La profondeur de ce circuit est alors ⌈log2(k)⌉.

Décodeur récursif

Il est possible de construire de manière récursive un décodeur ayant n entrée. Il faut alors introduire un circuit un peu plus général avec une nouvelle entrée appelée CS pour Chip Select. Un décodeur k bits avec une entrée CS possèdent donc k+1 entrées CS, A0, …, Ak-1 et 2k sorties S0, …, S2k-1. Ce circuit se comporte de la façon suivante. Si l'entrée CS vaut 0, toutes les sorties valent 0 et si CS vaut 1, il se comporte comme un simple décodeur. L'entrée dont le numéro s'écrit en binaire Ak-1 … A0 vaut 1 et toutes les autres sorties valent 0.

Pour k = 1, la table de vérité du décodeur 1 bit avec une entrée CS est donc la suivante.

EntréeSorties
CSA0 S0S1
0000
0100
1010
1101

On en déduit facilement le circuit ci-dessous.

Décodeur 1 bit avec CS
Schéma et symbole d'un décodeur 1 bit avec entrée CS

Pour k > 1, on peut construire un décodeur à k+1 entrées en utilisant deux décodeurs à k entrées et un décodeur à 1 entrée et en les combinant comme sur le schéma ci-dessous. Les deux décodeurs à k entrées reçoivent les entrées A0, …, Ak-1 et leurs deux entrées CS sont commandées par les deux sorties du décodeur 1 bit. Ce dernier reçoit en entrée Ak et CS.

Cosntruction récursive
Construction récursive d'un décodeur à k+1 entrées

Pour k égal à 2 et 3, la construction donne les deux décodeurs suivants.

Décodeur 2 et 3 bits
Schémas des décodeurs récursifs 2 et 3 bits

On montre facilement que le nombre de décodeurs 1 bit utilisés dans le décodeur k bits est 2k-1 et que le nombre de portes and utilisées est donc 2k+1-2. La profondeur du circuit est k. Par rapport au décodeur construit de manière directe, le circuit construit récursivement utilise moins de portes logiques (2k+1 au lieu de k2k) mais a une profondeur supérieure (k au lieu de ⌈log2(k)⌉).

Multiplexeurs

Un multiplexeur est en quelque sorte l'inverse d'un décodeur. Un multiplexeurs k bits permet de sélectionner une entrée parmi 2k disponibles. Un multiplexeur k bits a k + 2k entrées et une seule sortie. Les k premières entrées A0,…,Ak-1 sont appelées bits d'adresses car elles donnent le numéro de l'entrée à sélectionner parmi les entrées B0,…,B2k-1. La sortie S est alors égale à cette entrée sélectionnée.

Le multiplexeur 1 bit a donc 3 entrées A0, B0 et B1 et une seule sortie S. La formule donnant la sortie S en fonction des entrées est la suivante.

S = (A0 ∧ B1) ∨ (¬A0 ∧ B0)

Multiplexeur 1 bit
Schéma et symbole d'un multiplexeur 1 bit

Le multiplexeur 2 bit a donc 6 entrées A0, A1, B0, B1, B2 et B3 et une seule sortie S. La formule donnant la sortie S en fonction des entrées est la suivante.

S = (A1 ∧ A0 ∧ B3) ∨ (A1 ∧ ¬A0 ∧ B2) ∨ (¬A1 ∧A0 ∧ B1) ∨ (¬A1 ∧¬A0 ∧ B0)

Multiplexeur 2 bits
Schéma et symbole d'un multiplexeur 2 bits

Le multiplexeur k bits peut être construit récursivement en utilisant le schéma ci-dessous qui donne la construction d'un multiplexeur k+1 bits avec deux multiplexeurs k bits et un multiplexeur 1 bit.

Multiplexeur k+1 bits
Multiplexeur k+1 bits construit avec deux multiplexeurs k bits

Pour k égal à 2 et 3, la construction donne les deux multiplexeurs suivants.

Multiplexeur 2 et 3 bits
Schémas des multiplexeurs récursifs 2 et 3 bits

Comme pour les décodeurs récursifs, on montre facilement que le nombre de multiplexeurs 1 bit utilisés dans le multiplexeur k bits est 2k-1 et que le nombre de portes logiques and et or utilisées est donc 3(2k-1). La profondeur du circuit est k. Par rapport au multiplexeur construit de manière directe, le circuit construit récursivement utilise moins de portes logiques (3 2k au lieu de k2k) mais a une profondeur supérieure (k au lieu de ⌈log2(k)⌉).

Construction de circuits

Dans cette partie, nous expliquons comment construire le circuit d'une fonction booléenne. Nous allons le faire sur l'exemple de la fonction hidden bit.

Définition

Nous commençons par donner la définition de la fonction hidden bit. Cette fonction prend en entrée k valeurs booléennes et retourne une valeur booléenne. Soient k entrées binaires A1,…, Ak et soit s la somme de ces entrées, c'est-à-dire le nombre d'entrées égales à 1 : s = #{ i | Ai = 1 }. Cette somme est comprise entre 0 et k. La sortie S est alors égale à 0 si s = 0 et elle est égale à As si 1 ≤ s ≤ k.

Cas k = 1

EntréeSorties
A1sS
000
111

On a alors l'égalité S = A1. Le circuit est dans ce cas trivial puisqu'il se contente de mettre l'entrée A1 en sortie.

Cas k = 2

EntréesSorties
A1A2sS
0000
1011
0110
1121

On a alors l'égalité S = A1. Le circuit est encore une fois immédiat puisqu'il se contente de mettre l'entrée A1 en sortie.

Cas k = 3

Le cas k = 3 est le premier cas intéressant. On commence par calculer la table qui donne pour chaque valeur des entrées les valeurs des deux sorties s et S.

EntréesSorties
A1A2A3 sS
00000
10011
01010
11021
00110
10120
01121
11131

À Partir de cette table de vérité de la fonction, il est facile de trouver une expression de la sortie S en fonction des trois entrées A1, A2 et A3.

S = A1 A2 A3 + A1 A2 A3 + A1 A2 A3 + A1 A2 A3

Les quatre monômes correspondent aux quatre lignes de la table où la sortie prend la valeur 1. Le premier monôme A1A2A3 correspond par exemple à la seconde ligne de la table. La sortie S vaut 1 lorsque A1 = 1, A2 = 0 et A3 = 0.

Il est possible de construire un circuit à partir de la formule ci-dessus. Les valeurs des monômes peuvent être calculées par quatre portes et à trois entrées et la valeur finale de S peut être calculée par trois portes ou à deux entrées. Afin de construire un circuit le plus petit possible, il est nécessaire de simplifier au maximum la formule.

La formule ci-dessus peut être simplifiée. La somme des deux premiers monômes peut être réduite à un seul monôme plus simple de la façon suivante.

A1 A2 A3 + A1 A2 A3 = A1 A3 (A2 + A2) = A1 A3

Nous présentons maintenant une méthode graphique élémentaire permettant de trouver une expression simple pour une formule. Cette méthode dite des tables de Karnaugh (cf. aussi wikibook) ne donne pas toujours la meilleure expression mais elle fonctionne relativement bien tout en étant facile à mettre en œuvre.

Nous expliquons la méthode sur notre exemple. La méthode consiste à disposer les valeurs de l'expression dans une table rectangulaire comme ci-dessous.

A1 A1
A2 A2 A2 A2
A3 1 0 0 1
A3 1 1 0 0

Il faut essayer alors de regrouper les valeurs 1 en blocs rectangulaires. Ainsi, les deux 1 rouges correspondent à A1 = 1 et A3 = 0. Ils donnent donc le monôme A1A3 que nous avions obtenu en regroupant les deux premiers monômes de notre formule initiale. Les blocs de 1 peuvent ne pas être contigus. Les deux 1 bleus correspondent à A2 = 1 et A3 = 1 et ils donnent le monôme A2A3. Les blocs de 1 peuvent éventuellement se chevaucher. On a donc finalement trouvé la formule suivante pour S.

S = A2 A3 + A1 A3

Le circuit construit à partir de la formule précédente ne contient plus que deux portes et et une porte ou à deux entrées. On reconnaît le circuit d'un multiplexeur 1 bit où A3 est le bit d'adresse (ou de commande) et A1 et A2 sont les entrées.

Hidden bit 3
Schéma pour la fonction hidden bit à 3 entrées

Cas k = 4

EntréesSorties
A1A2A3 A4sS
000000
100011
010010
110021
001010
101020
011021
111031
000110
100120
010121
110130
001120
101131
011131
111141
A1 A1
A2 A2 A2 A2
A3 A4 1 1 0 1
A4 1 0 0 1
A3 A4 1 1 0 0
A4 0 0 0 1

S = A1 A3 A4 + A2 A3 A4 + A1 A2 A4 + A1 A3 A4

Hidden bit 4
Schéma pour la fonction hidden bit à 4 entrées

Cas k = 5

S = A1 A3 A4 A5 + A2 A3 A4 A5 + A1 A2 A4 A5 + A1 A3 A4 A5
  + A1 A2 A4 A5 + A1 A3 A4 A5 + A1 A2 A3 A5 + A1 A2 A4 A5

Schéma hidden bit 5
Schéma pour la fonction hidden bit à 5 entrées