Vous êtes sur la page 1sur 20

Architecture des ordinateurs

CHAPITRE V. CIRCUITS COMBINATOIRES

I - Introduction
Un circuit combinatoire est un circuit logique numérique dans lequel les sorties à
un instant donné ne dépendent que des entrées à cet instant. Ce circuit a un
comportement temporel très simple :
- Il réalise sur les sorties une fonction de ses entrées
- Il fait le calcul en un temps connu borné

Si on présente des opérandes sur les entrées et on les maintient sans les modifier
pendant une certaine durée connue Tp, on peut observer alors sur les sorties le
résultat de la fonction indiquée pour le circuit.
La durée Tp ou « délais de propagation » dépend de l’organisation interne du
circuit. Elle dépend principalement du temps que met le signal pour traverser les
éléments du circuit (additionneur, soustracteur,…).
Le temps que mettra le signal pour traverser le circuit est le temps maximal des
sommes des durées de calcul des circuits rencontrés sur les chemins des entrées vers
les sorties (durée du chemin le plus long).

10 ns

S
E
30 ns
40 ns

Tp >= 80 ns en supposant que le délai de transmission ou de communication entre


unité de calcul est nul

ENSP Dr A. M. CHANA LEMALE Page 68


Architecture des ordinateurs

II - Etude de quelques circuits combinatoires


1. Additionneur complet
Un additionneur complet est un additionneur qui accepte trois entrées, les bits
à additionneur et une possible retenue provenant de l’additionneur des bits
antérieurs. On utilise généralement dans des additionneurs en cascade.

x y

si
Additionneur
Ri-1
Complet ri

Full Adder

x y ri-1 S ri
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

ENSP Dr A. M. CHANA LEMALE Page 69


Architecture des ordinateurs

x DA

ri
ri-1 DA

AC

2. Générateur de parité
Lorsqu’on transmet les informations (binaires) sur une longue distance, il y a
possibilité de perturbation qui se manifeste par des changements de bits. Il y a
plusieurs techniques pour détecter ces types d’anomalies. L’approche la plus simple
consiste à ajouter au départ un bit de parité. Le bit est choisi de manière que le
nombre de bits de même type soit pair ou impaire.

ENSP Dr A. M. CHANA LEMALE Page 70


Architecture des ordinateurs

Exemple : information à trois bits

x y z p

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

3. Un afficheur de chiffre décimaux ou décodeur BCD chiffres décimaux


On se sert à cet effet d’un circuit à sept segments, les segments représentent les
sorties. Il faut quatre chiffres binaires pour représenter en BCD.

V X Y Z a b c d E F g

0 0 0 0 1 1 1 1 1 1 0

0 0 0 1 0 1 1 0 0 0 0

0 0 1 0 1 1 0 1 1 0 1 a

0 0 1 1 1 1 1 1 0 0 1

0 1 0 0 0 1 1 0 0 1 1

0 1 0 1 1 0 1 1 0 1 1

0 1 1 0 0 0 1 1 1 1 1

ENSP Dr A. M. CHANA LEMALE Page 71


Architecture des ordinateurs

0 1 1 1 1 1 1 0 0 0 0

1 0 0 0 1 1 1 1 1 1 1

1 0 0 1 1 1 1 0 0 1 1

1 0 1 0

1 0 1 1 X
1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

Exercice :
Affecter les valeurs vraies aux entrées X et trouver les expressions simplifiées des
sorties (a, b, c, d, e, f, g) qui ne font intervenir que deux entrées au plus (expression :
somme des termes produits)

4. Décodeur
Dans tout système numérique de traitement d’informations, les informations,
qu’elles soient traitantes (instructions) ou à traiter (données), sont transmises au
moyen de chiffres binaires regroupés en mots. Chaque mot ou groupe de mots
correspond à une représentation d’objet particulier c'est-à-dire la valeur d’un mot
peut être le code de données, de l’instruction, de l’adresse.
Il se pose alors deux problèmes :
- Celui du transfert de l’information d’un point à l’autre dans la machine,
- Celui d’identification d’un objet.
Dans un système numérique, on doit être capable de détecter une combinaison
binaire ou un code particulier. Ce processus d’identification est appelé le décodage
de l’information.
En pratique, le décodage est réalisé par un circuit logique spécialisé qui active à sa
sortie une ligne particulière si et seulement si à l’entrée du circuit est appliqué le code
de cette ligne. Un tel circuit est appelé « décodeur ».

ENSP Dr A. M. CHANA LEMALE Page 72


Architecture des ordinateurs

Un décodeur est un circuit combinatoire qui converti les informations binaires


codées sur n bits en entrée à 2n sorties maximum.
On parle de décodeur n-à-2n lignes,
Exemple : Décodeur 2/4
Table de vérité

A1 A0 S3 S2 S1 S0
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0

S0  A1 A 0
S1  A1 A 0 ; S 2  A1 A 0 ; S3  A1 A 0

Symbole : A0 A1

Décodeur 2/4

S0 S1 S2 S3

ENSP Dr A. M. CHANA LEMALE Page 73


Architecture des ordinateurs

Diagramme logique :

Remarques :
 On peut concevoir ce circuit de décodage de façon à obtenir le niveau Haut en
sortie, auquel cas on utilisera des portes Et et des inverseurs. Pour obtenir des
niveaux bas en sortie, on utilisera des portes Non-Et et des inverseurs.
 les décodeurs vendus généralement contiennent une ou plusieurs entrées de
validation pour contrôler les opérations du circuit.

Exercice : Réaliser un décodeur 4 bits à l’aide de portes NAND


Exemple : le décodeur précédant (2/4) peut être construit avec une entrée de
validation et des portes NAND

E A1 A0 S0 S1 S2 S3
0 0 0 0 1 1 1
0 0 1 1 0 1 1
0 1 0 1 1 0 1
0 1 1 1 1 1 0
1 x x 1 1 1 1

ENSP Dr A. M. CHANA LEMALE Page 74


Architecture des ordinateurs

Ce décodeur est valide lorsque l’entrée de validation E est à 0 au quel cas une seule
des sorties est sélectionnée, cette sortie est celle qui contient 0.

Exercices :
1) Construire le logigramme de ce décodeur,
2) Réaliser un décodeur 8 bits à l’aide de décodeur 4 bits.

Applications des décodeurs


Les possibilités d’applications des décodeurs sont nombreuses. Ils peuvent être
utilisés pour convertir un code BCD en décimal, pour connaître et sélectionner une
adresse mémoire, pour décoder le code opération d’une instruction.

Le circuit inverse du décodeur est appelé encodeur. Contrairement au décodeur


qui est une fonction logique qui à partir d’un code de n bits active une ligne parmi 2n,
l’encodeur réalise le processus inverse. Il permet d’activer une ligne particulière en
entrée et d’obtenir en sortie le code correspondant.

5. Le multiplexeur
Un multiplexeur est un circuit combinatoire qui sélectionne des informations
binaires sur une ou plusieurs entrées vers une seule sortie. La sélection d’une valeur
particulière est contrôlée par une variable ou adresse. Pour N entrées d’adresses, les
multiplexeurs ont 2N entrées de données.
C’est donc un circuit ayant (n+2n) entrées et qui par l’intermédiaire d’une adresse
de n bits indique laquelle des 2n entrées doit être reliée à la sortie. Un multiplexeur
est donc l’équivalent logique d’un sélecteur 2n lignes vers une seule ligne.

Exemple : n=2 , 2n = 4
S1 S0 Y
0 0 D0
0 1 D1
1 0 D2
1 1 D3

Y  S0 S1D 0  S0 S1D1  S0S1D 2  S0S1D3

ENSP Dr A. M. CHANA LEMALE Page 75


Architecture des ordinateurs

Vérification : Considérons le cas S1S0 = 10


Y1 = S0S1D0 = 10D0 = 0 Y3 = 11D2 = D2
Y2 = S0S1D1 = 01D1 = 0 Y4 = 01D3 = 0

La seule donnée sélectionnée est D2

Symbole :
S0
S1 Multiplexeur 2/4

Y
Diagramme logique :

Comme le décodeur, un multiplexeur peut avoir une entrée de validation pour


assurer le contrôle. Cette entrée de validation est très utilisée pour étendre deux ou
plusieurs multiplexeurs en un multiplexeur avec un plus grand nombre d’entrées.
L’intérêt du multiplexeur est de permettre la réalisation « d’aiguillage » de
signaux. Il est utilisé pour économiser des lignes de communication (concentrateur
de données), des lignes de bus (processeurs ou mémoires à bus d’adresse
multiplexé).
Le circuit inverseur du multiplexeur est appelé démultiplexeur. C’est un circuit
combinatoire comportant (n+1) entrées et 2n sorties, il permet de transmettre un
signal donné vers un élément particulier du système en vue de l’exécution d’une
opération donnée.

ENSP Dr A. M. CHANA LEMALE Page 76


Architecture des ordinateurs

Symbole :

A0 S0
A1 S1
DEMux S2
E S3

Le signal E n’est transmis à une sortie S que lorsque l’adresse binaire vaut i
(combinaison de A0 et A1).

Remarque : A l’aide d’une paire multiplexeur-démultiplexeur, il est possible de


réaliser un système de communication entre éléments d’un système de traitement (ou
de système différent), en définissant une adresse pour le choix de l’émetteur et une
autre pour le récepteur.

. DEMux
Mux
.
.

Adresse
Adresse récepteur
émetteur
La communication ici est orientée. Elle se fait du multiplexeur vers le
démultiplexeur. Une communication bi directionnelle devra donc faire appel à deux
structures de ce type.

NB : Il est possible de réaliser n’importe quelle fonction logique de n+1 variables avec
un multiplexeur à 2n entrées (avec n<5) et éventuellement un inverseur (porte non). Il
en est de même pour le décodeur.

ENSP Dr A. M. CHANA LEMALE Page 77


Architecture des ordinateurs

Exemple : Si on souhaite réaliser la fonction suivante

F  A BC  ABC  AB

 Réalisation à l’aide de multiplexeur


Par identification on a:
A partir de l'expression booléenne, on identifier chaque bit d'adresse (Si) à une des
variables de la fonction et on déduit les valeurs des entrées de données
correspondant à chaque adresse obtenue. L’identification doit être faite de sorte à ce
qu'il n'y ait pas Ambiguïté d'adresse (une même adresse pour des entrées de données
différentes).
 Si S0=A et S1=B alors D0=C; D1= C ; D3=1; D2=0, il n’y a pas d’ambiguïté de ce
cas de figure.
 Si S0=B et S1=A alors D0=C; D2= C ; D3=1; D1=0, même remarque que
précédemment.
 Il n’est pas possible d’utiliser C comme bien d’adresse car il ne sera pas
possible d’adresser le terme AB de notre expression booléenne.

A partir de la table de vérité:


Construire la table de vérité de la fonction, la variable la plus à droite servira d'entrée
de donnée et les (n-1) autres comme des entrées d'adresse. Après avoir construit la
table de vérité, faire des regroupements de deux lignes. Les (n-1) entrées d'adresse
restent inchangées toutes les deux lignes c'est ce qui justifie le regroupement. Chaque
groupe correspondra à une entrée de donnée Di.
Dans notre exemple nous aurons:

A B C F
0 0 0 0
0 0 1 1 D0 = C
0 1 0 1
0 1 1 0 D1 =
1 0 0 0
1 0 1 0 D2 = 0
1 1 0 1
D3 = 1
1 1 1 1

ENSP Dr A. M. CHANA LEMALE Page 78


Architecture des ordinateurs

On peut donc construire F à l’aide d’un multiplexeur à 4 entrées de données et une


porte non (un inverseur).

A B

C
F
Mux
+5v

 Réalisation à l’aide de décodeur

Pour réaliser une fonction à l'aide d'un décodeur, il faut mettre l'expression booléenne sous
la forme normale disjonctive ou conjonctive. Chaque terme de l'expression représentera une
sortie du décodeur de n entrées, n étant le nombre de variables de la fonction.

Le circuit est obtenu en reliant les sorties correspondantes aux numéros d'intersection de la
fonction à réaliser par des portes ET

Pour l’exemple précédent ( F  A BC  ABC  AB ) la forme normale disjonctive est :


F  A BC  ABC  ABC  ABC
 1,2,6,7

Le circuit correspondant est donné dessous.

S0
S1
S2
S3
S4
F
S5
S6
S7

ENSP Dr A. M. CHANA LEMALE Page 79


Architecture des ordinateurs

III - Quelques méthodes de réalisation


1. Critères de qualité d’une réalisation
La réalisation du circuit logique consistera pour nous à fabriquer un circuit à partir
d’autres circuits conçus par nous-même ou de circuits existants.
Un bon circuit doit respecter deux critères à savoir :
Il doit être correct et réalisable;
- Il doit assurer correctement la fonction pour laquelle il a été conçu. De plus, il doit
exister des circuits permettant de le réaliser.
- Il doit offrir une certaine performance ;
Les performances interviennent après le premier critère (car à quoi servirait un appareil
performant qui ne fonctionnerait pas correctement). Mais ce n’est pas non plus un critère
négligeable.
Les critères de performance sont nombreux : prix, encombrement, consommation, vitesse,
fiabilité… Un bon circuit est issu d’un compromis entre ces divers paramètres.
En règle générale, on cherche à utiliser le moins de composant possible et à utiliser les
composants simples (les portes sont plus simples que les additionneurs par exemple).

NB : Un critère impartial est le nombre de broches (les entrées et les sorties) c’est souvent ce
qui fixe le coup d’un composant.

La conception d’un circuit passe par 2 phases :


 la recherche d’une solution correcte : c’est la phase d’analyse.
 la simplification de cette solution : c’est la phase d’optimisation ou de synthèse.
Il existe deux méthodes principales de réalisation de circuit :

2. Méthodes basées sur l’algèbre de Boole


Cette méthode est fondée sur la remarque suivante : quelle que soit la fonction à
réaliser, quel que soit le problème à résoudre, les entrées comme les sorties du circuit
sont des bits. Chaque sortie est donc une fonction booléenne.

a) Phase d’analyse
Elle consiste à exprimer chaque sortie sous forme d’une fonction booléenne des
entrées à partir de la table de vérité qui permet d’exprimer tous les cas possibles.
b) Phase d’optimisation
Cette phase consiste à appliquer les règles de simplification d’expressions
booléennes de manière à diminuer la quantité de portes nécessaires pour un petit
nombre de variables, on utilise en général des tableaux de Karnaugh

ENSP Dr A. M. CHANA LEMALE Page 80


Architecture des ordinateurs

Exemple :
Soit à réaliser un additionneur binaire modulo 4 (opérandes 2bits, résultats 2 bits).
Table de vérité :

X1 X0 Y1 Y0 S1 S0
0 0 0 0 0 0
0 0 0 1 0 1 S0=
x0 y 0  x0 y 0
0 0 1 0 1 0
0 0 1 1 1 1
0 1 0 0 0 1
0 1 0 1 1 0
0 1 1 0 1 1
0 1 1 1 0 0
S1  y1 x1 x0  y1 y0 x1  y1 y0 x1
1 0 0 0 1 0
 x1 x0 y1  y1 y0 x1 x0  y1 y0 x1 x0
1 0 0 1 1 1
1 0 1 0 0 0
1 0 1 1 0 1
1 1 0 0 1 1
1 1 0 1 0 0
1 1 1 0 0 1
1 1 1 1 1 0

Inconvénients et limitation de la méthode booléenne :

 Elle conduit toujours à une réalisation exclusivement à base de portes : la fonction


étant réalisée sous forme de fonctions booléennes (à base de ET, NON, OU), on a
peu de chance de voir apparaître un additionneur, un adaptateur 3 états, un
décodeur ou tout autre circuit existant ou que l’on sait déjà réaliser.
 Elle est impraticable pour un nombre important de variables d’entrées : le nombre
de cases croît exponentiellement avec le nombre de variables (2n).
 Conduit souvent à des solutions irréalistes : la taille du circuit obtenu en nombre
de portes.
 Conduit à une réalisation sans structure : Chaque partie de la réalisation est sans
intérêt ; si on l’isole, on obtient en général un ensemble de portes sans
fonctionnalité connue. On est obligé toujours de tout reprendre le processus
même quand un problème voisin se présente. On ne peut pas profiter de
l’expérience acquise.

ENSP Dr A. M. CHANA LEMALE Page 81


Architecture des ordinateurs

Quand utiliser la méthode booléenne :

 Lorsque la fonction a peu de variables (4 à 5 variables max) et que le circuit à


réaliser n’existe pas déjà.
 Lorsque la fonction à réaliser est « définie par hasard », c'est-à-dire sans structure
naturelle : par exemple le circuit d’afficheur sept segments.
 Pour la réalisation de circuits programmables : les ROM (Read only Memory) ou
les tableaux logiques programmables (« PLA: Programmable Logic Array »)

La méthode booléenne conduit à des circuits dont la structure est indépendante de la


nature du problème. Cela conduit à pré-fabriquer des « circuits à tout faire »
auxquels il ne reste plus qu’à fixer quelques caractéristiques propres à chaque
réalisation : ce qui permet d’obtenir des « circuits programmables ».

3. Méthodes par découpage fonctionnel.


Cette méthode vise la réutilisation des acquis, à savoir : le concepteur doit utiliser
les composants déjà disponibles conçu par lui-même ou par un constructeur.
L’objectif ici est de décomposer le système complexe en sous système simples.
Comme dans la méthode booléenne, la procédure de conception à 2 phases : l’analyse
et la synthèse.

a) Phase d’analyse
Elle se traite en trois parties :
 La structuration des entrées
 La décomposition des fonctions à réaliser

 L’analyse des sous fonctions en respectant les relations entre les entrées et les
sorties.

Remarque : Lorsque l’on entreprend la réalisation des circuits correspondants, il faut


oublier les rôles particuliers qu’ils ont dans le circuit total, et les étudier isolément.

Exemple : Calcul du max de deux nombres.


Le circuit doit calculer le maximum de deux nombres représentés en binaire sur 8
bits.

Phase d’analyse
Structuration des entrées et des sorties
On les regroupe en paquets, auxquels on donne une signification, une
interprétation :

ENSP Dr A. M. CHANA LEMALE Page 82


Architecture des ordinateurs

La nature et le rôle constituent un guide

X 8
X
8
Un nombre M
Max(YX,) Max
Un nombre
Y 8
Y
Un nombre

L’arithmétique permet d’exprimer M en fonction de X et Y.

M = Si (X>Y) alors X sinon Y

D’où le circuit suivant : où on voit apparaître deux nouveaux circuits à réaliser. Ces
circuits sont supposés être plus simples à réaliser que le circuit de départ

Y Comparateur

Multiplexeur M
2/4
Sélecteur

La comparaison X>Y nécessite un circuit de comparaison de deux nombres binaires


de 8 bits, et délivre en sortie un booléen (1 bit).
Multiplexeur
Si le circuit de comparaison
2/4 existe déjà, on peut l’utiliser directement sinon, il faut
le réaliser.
Dans ce cas, on peut penser au circuit de la soustraction binaire et particulièrement à
la sortie matérialisant la retenue qui est issu d’un emprunt antérieur.

C'est-à-dire Multiplexeur
2/4

ENSP Dr A. M. CHANA LEMALE


Multiplexeur Page 83
2/4
Architecture des ordinateurs

Si A= 10110010
B= 01001010 A>B
Résultat représentable
Ret=0 01101000

Si A= 01001010
B= 10110010 A>B
Résultat non représentable
Ret=1 10011000
Donc cette sortie peut nous permettre de décider si A>B ou A<B. On pourra donc
utiliser un soustracteur binaire 8 bits si celui-ci existe dans le catalogue sinon il faut le
réaliser.

8
A X
8
D
Sous8
8 ret
Y 1
B

La sélection pourra être réalisée par un sélecteur deux voies de 8 bits (sel2V8) qui
peuvent être réalisé par des portes ou à l’aide d’adaptateurs trois états.

ret Circuit de sélection

ENSP Dr A. M. CHANA LEMALE Page 84


Architecture des ordinateurs

4. Quelques schémas de décomposition :


Dissociation de sorties : des sorties indépendantes dont analysées séparément

x
F(x)
F(x)
x ≡
G(x)
G(x)

Décomposition de fonction : les résultats délivrés par un bloc fonctionnel servent


d’entrées à un autre bloc

F(X)

G(X) G(X) F(X)

F(x)
Sélection
Si(cond) alors
F(x) ≡
G(x)
sinon G(x)

Cond

Phase d’optimisation :

Dans la phase de synthèse on va s’intéresser à l’usage particulier des composants


du circuit total. Certaines particularités du circuit vont permettre des simplifications.
Ce sont essentiellement :
- des propriétés des entrées du circuit : entrées constantes, entrées dupliquées…
- la non utilisation de certaines sorties du circuit
- les factorisations rendues possibles par la distributivité de certaines opérations.

ENSP Dr A. M. CHANA LEMALE Page 85


Architecture des ordinateurs

Propriétés connues sur les entrées :

Remplacer la comparaison d’égalité à une constante par une porte

0
1
1 Equal ≡
0 X
X

- l’égalité de certaines entrées est aussi source de simplification

ENSP Dr A. M. CHANA LEMALE Page 86


Architecture des ordinateurs

- Non utilisation de certaines sorties : Supprimer du circuit tous les composants qui
ne servent qu’à élaborer les sorties inutilisées

Les factorisations :
On cherche à profiter au maximum d’un même calcul intermédiaire.

V
F1
V1 Sélecteur

F2

V2
C

V
F

V1
Sélecteur
V2

Réalisation de Si (c) alors f(V,V1) sinon f(V,V2) = f(V, si c alors V1 sinon V2)

ENSP Dr A. M. CHANA LEMALE Page 87

Vous aimerez peut-être aussi