You are on page 1of 25

Circuits logiques.

partie 1 : circuits combinatoires


1

Gnralits
Fonctions boolennes
Circuits logiques combinatoires
Quelques circuits logiques de base
Dcodeur
Multiplexeur
Additionneur
Optimisation de circuits (bonus)
Dlai d'un circuit logique
Additionneur propagation de retenue anticipe
N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

1 / 25

Pour manipuler des informations en binaire, on assimile les deux bits 0 et 1 aux
deux valeurs de vrit de l'algbre de Boole : on met au point des expressions
boolennes, puis on implante ces expressions par des circuits logiques.
On distingue deux types de circuits logiques :
Les circuits combinatoires, dans lesquels les signaux de sortie ne dpendent
que des signaux d'entres du circuit l'instant considr.
Ex : la plupart des circuits pour l'addition de nombres binaires.
Les circuits squentiels, disposant de proprits de mmorisation, et qui
prsentent donc un certain nombre d'tats : les signaux de sortie dpendent
des signaux d'entres l'instant considr, mais aussi de l'tat du circuit.
Ex : mmoires, registres, unit de commande. . .
On s'intressera dans un premier temps aux circuits combinatoires, permettant
par exemple de concevoir l'UAL d'un processeur.
N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

2 / 25

Plan

Gnralits
Fonctions boolennes
Circuits logiques combinatoires
Quelques circuits logiques de base
Dcodeur
Multiplexeur
Additionneur
Optimisation de circuits (bonus)
Dlai d'un circuit logique
Additionneur propagation de retenue anticipe

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

3 / 25

Fonctions boolennes

L'algbre de Boole B = {0, 1} est munie de trois oprations :


une opration unaire involution, la ngation (NOT) ;
de deux oprations binaires commutatives, associatives, distributives l'une par
rapport l'autre et possdant chacune un lment neutre :
la conjonction (AND), avec pour lment neutre 1,
la disjonction (OR), avec pour lment neutre 0.
Si a et b sont deux variables boolennes, on notera par commodit :
NOT(a) = a, AND(a, b) = ab, OR(a, b) = a + b.
a

ab

a+b

0
0
1
1

0
1
0
1

1
1
0
0

0
0
0
1

0
1
1
1

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

4 / 25

Formulaire

lments neutres :
lments absorbants :
idempotance :
tautologie/antilogie
commutativit :
distributivit :
associativit :

+ 0 = a,

1=a
a + 1 = 1,
a0 = 0
a + a = a,
aa = a
a + a = 1, aa = 0
a + b = b + a,
ab = ba
a

+ (bc ) = (a + b )(a + c ),

lois de Morgan :
autres relations :

a (b

+ c ) = ab + ac

+ (b + c ) = (a + b ) + c = a + b + c ,

a(bc )

ab

= (ab )c = abc

= a + b,

+ b = ab

+ (ab ) = a,

a (a

+ b ) = a,

+ (ab ) = a + b ,

(a + b )(a + b ) = a

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

5 / 25

On peut former en utilisant les oprations de base des expressions boolennes.


On appelle littral une variable boolenne ou sa ngation.
Ex :

ab

si a, b, c sont 3 variables boolennes, on peut crire l'expression boolenne


Cette expression comporte 4 littraux.

+ c b.

Toute fonction de Bn dans B s'exprime par une expression boolenne.


Toute expression boolenne n variables reprsente une fonction de Bn dans B.
Ex :

On considre la fonction f

f (a , b )

= ab

: B2 B

dnie par la table de vrit suivante :

f (a, b )

0
0
1
1

0
1
0
1

1
0
0
0

est une expression boolenne reprsentant la fonction f .

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

6 / 25

Il n'y a pas unicit de la reprsentation d'une fonction par une expression. . .


Ex : si f (a, b ) = ab , alors on a aussi f (a, b ) = a + b .
On distingue donc deux formes normales :
La forme normale disjonctive : disjonction de conjonctions de littraux.
Ex : abc + ab + ab .
La forme normale conjonctive : conjonction de disjonctions de littraux.
Ex : (a + b + c )(a + b + c )(a + b + c ).
Si la fonction et non toujours vraie ou toujours fausse, on peut assurer l'unicit
de ces deux formes : chaque variable doit apparatre au plus une fois dans
chaque terme/facteur, et les termes/facteurs ne se rptent pas.
N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

7 / 25

Pour mettre f sous forme normale disjonctive :


pour chaque ligne o f prend pour valeur 1, on forme une conjonction prenant
pour valeur 1 uniquement sur l'aectation des variables de cette ligne.
a

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

f (a , b , c )

1
0
1
0
1
1
0
0

abc
abc
abc
abc

On forme la disjonction des termes ainsi obtenus :


f (a, b , c )

= abc + abc + abc + abc .

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

8 / 25

Pour mettre f sous forme normale conjonctive :


on crit f (a, b , c ) sous forme normale disjonctive.
a

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

f (a , b , c )

f (a, b , c )

1
0
1
0
1
1
0
0

f (a, b , c )

0
1
0
1
0
0
1
1

abc
abc

abc
abc

= abc + abc + abc + abc .

En utilisant les lois de Morgan, on obtient la forme normale conjonctive :


f (a, b , c )

= (a + b + c )(a + b + c )(a + b + c )(a + b + c ).

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

9 / 25

D'autres fonctions utiles :

On note aussi XOR (a, b) = a b :


ssi une seule des deux variables a et b a la valeur 1.

Le XOR.

b =1
a

0
0
1
1

0
1
0
1

0
1
1
0

Le XOR peut s'exprimer l'aide de AND, OR et NOT :


a

b = (a + b )ab = (a + b )(a + b ) = ab + ab .

L'oprateur XOR est commutatif et associatif.

Le NAND et le NOR :

ab

0
0
1
1

0
1
0
1

1
1
1
0

+b

1
0
0
0

NAND(a, b) = ab = a + b.
NOR(a, b) = a + b = ab.

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

10 / 25

Circuits logiques combinatoires

Un signal logique est un dispositif physique pouvant transmettre une valeur de


vrit d'un endroit un autre (donc aussi un bit), et sera reprsent par un trait.
Vu de l'extrieur, un circuit logique prsente des signaux d'entre et de sortie :
chaque signal de sortie est une fonction logique des signaux d'entre.
Les portes logiques sont les briques de base pour la ralisation de circuits
logiques plus complexes :
NOT

AND

a
b

ab

OR

a
b

a+b

XOR

a
b

ab

NAND

a
b

ab

NOR

a
b

a+b

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

11 / 25

Circuit combinatoire bien form (CCBF)

On adopte la dnition rcursive suivante. Un CCBF peut tre :


une porte de base,
un l,
la juxtaposition de deux CCBFs poss l'un ct de l'autre,
obtenu en connectant les sorties d'un CCBF aux entres d'un autre CCBF,
obtenu en connectant entre elles deux entres d'un CCBF.
Cette dnition interdit :
de faire des cycles, car cela permettrait des situations mal dnies, e.g.,
0

de connecter des sorties entre elles (si une sortie est 1 et l'autre 0 ?)
N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

12 / 25

Plan

Gnralits
Fonctions boolennes
Circuits logiques combinatoires
Quelques circuits logiques de base
Dcodeur
Multiplexeur
Additionneur
Optimisation de circuits (bonus)
Dlai d'un circuit logique
Additionneur propagation de retenue anticipe

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

13 / 25

Dcodeur

Un dcodeur n vers 2n est un circuit qui prsente :


n entres ei , qui forment l'entier (en1 . . . e0 )2 ;
2n sorties si , indices de 0 2n 1.
La seule ligne de sortie active est la ligne s(en 1 ...e0 )2 .
Ex : Dcodeur 3 vers 8.

Decodeur
3 vers 8

e2

e1

e0

s7

s7

s6

s6

s5

s5

s4

s4

s3

s3

s2

s2

s1

s1

s0

s0

e2

e1

e0

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

14 / 25

Multiplexeur

Un multiplexeur 2n vers 1 est un circuit qui prsente :


2n entres ei indices de 0 2n 1 ;
n lignes de slection, qui forment l'entier (cn1 . . . c0 )2 ;
1 sortie s .
Lorsque les lignes de slection forment un entier (cn1 . . . c0 )2 ,
s

= e(cn1 ...c0 )2 .

Une des entres est slectionne en fonction des lignes de slection.


Ex : Multiplexeur 2 vers 1.
e1

c0

e0

Mux

e1

e0

c0

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

15 / 25

Un multiplexeur k 2n vers k est un circuit qui prsente :


n
k 2 entres et n lignes de slection ;
k signaux de sortie.
Un tel multiplexeur slectionne k signaux parmi les k 2n signaux d'entre.
Ex : Multiplexeur 16 vers 8 :
a

Mux.
16 vers 8
b

8 s

1
c
Exercice :

comment raliser un mux. 8 vers 4 avec des mux. 2 vers 1 ?

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

16 / 25

Additionneur

Pour la conception d'additionneurs, une brique qui peut tre utilise est le
demi-additionneur ou half adder :
entres : deux bits sommer a et b ;
sorties : un bit de somme s et un bit de retenue sortante rs .
a

rs

0
0
1
1

0
1
0
1

0
1
1
0

0
0
0
1

On constate que
s

= a b,

et

rs

= ab .

On en dduit le circuit suivant :


ab
rs

ab
rs

half
adder
(HA)

Un demi-additionneur ne peut pas prendre en compte de retenue entrante. . .


N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

17 / 25

Intressons nous donc un additionneur 1 bit complet ou full adder :


entres : deux bits sommer a et b, et un bit de retenue entrante re ;
sorties : un bit de somme s et un bit de retenue sortante rs .
a

re

rs

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

0
1
1
0
1
0
0
1

0
0
0
1
0
1
1
1

rs

abre

(ab + ab )re + ab (re + re )

(a b )re + ab .

On constate que
s

= a(b re ) + a(b re ).

Comme x y = x y + x y , on obtient
s

= a ( b re ) = a b re .

D'autre part,
+ abre + abre + abre

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

18 / 25

On en dduit le circuit d'un additionneur 1 bit complet ou full adder :


ab

ab

ab

HA

full
adder
(FA)

rs

rs

rs
re

re

re

HA
s

On peut enchaner k full adders de manire obtenir un additionneur de deux


entiers naturels de k bits. Voici par exemple un additionneur 4 bits :
rs

b3 a3

b2 a2

b1 a1

b0 a0

FA

FA

FA

FA

s3

s2

s1

s0

b3 a3

re

b2 a2

rs

b1 a1

b0 a0

re

add4

s3

s2

s1

s0

Ici, on propage la retenue comme on le fait en posant l'opration  la main  :


on verra par la suite qu'il est possible de concevoir des circuits plus  rapides .
N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

19 / 25

Plan

Gnralits
Fonctions boolennes
Circuits logiques combinatoires
Quelques circuits logiques de base
Dcodeur
Multiplexeur
Additionneur
Optimisation de circuits (bonus)
Dlai d'un circuit logique
Additionneur propagation de retenue anticipe

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

20 / 25

Il existe beaucoup de circuits dirents pour une fonction boolenne f :


comment en choisir un d'aprs certains critres ?
On s'intresse souvent au nombre de portes logiques, reprsentatif de la surface
occupe par le circuit. Mais il existe d'autres critres, comme le dlai ou la
consommation d'nergtique.
Les algorithmes d'optimisation connus sont exponentiels en le nombre de
variables : on ne trouve pas toujours un circuit optimal en un temps praticable.
Pour le dlai, on va voir sur un exemple qu'il est possible de le rduire en
introduisant plus de paralllisme dans le circuit initial.

N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

21 / 25

Dlai d'un circuit logique

Toute ralisation physique d'un circuit a un certain dlai de stabilisation ,


dni comme la dure qui s'coule entre un changement des entres (instant t )
et la stabilisation des sorties dans l'tat correspondant (instant t + ). Les
sorties peuvent passer par des tats transitoires pendant l'intervalle [t , t + ].
Chaque porte logique lmentaire prsente un dlai.
Pour dterminer le dlai d'un circuit, il faut :
calculer le dlai associ chaque chemin d'une entre vers une sortie,
identier un chemin dont le dlai est maximal : c'est un chemin critique.
Le dlai d'un circuit est donc gal au dlai d'un chemin critique.
Rem :

Il n'y a pas forcment unicit du chemin critique.


N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

22 / 25

Additionneur propagation de retenue anticipe


ab

Si on attribue le mme dlai de 1 ut toutes


les portes logiques, le dlai d'un full adder est de
3 ut. De plus le dlai de re rs est de 2 ut.

rs
re

s
b3 a3

Dans un additionneur 4 bits, le chemin critique


est celui allant de re rs : dlai de 8 ut.

rs

b7...4

a7...4

b3...0

a3...0

add4

add4

s7...4

s3...0

b1 a1

b0 a0

re

add4

s3

Dans un additionneur 16 bits, le dlai est de 16 ut.


rs

b2 a2

s2

s1

s0

re

Dans ces exemples, la propagation de la retenue est squentielle : le dlai est


proportionnel la longueur du chemin de propagation de la retenue.
N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

23 / 25

Pour implanter les additioneurs de la partie prcdente, on s'est bas sur


l'algorithme  la main  : on somme les bits de mme poids, en propageant la
retenue ventuelle des poids faibles vers les poids forts.
On a obtenu un additionneur 8 bits partir de deux additionneurs 4 bits :

rs

b7...4

a7...4

b3...0

a3...0

add4

add4

s7...4

s3...0

re

Le chemin critique est le chemin allant de re rs : le dlai du circuit est de 16 ut.


Comment obtenir un additionnneur 8 bits avec un dlai de 10 ut entre re et rs ?
N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

24 / 25

add4

b7...4

a7...4

b3...0

a3...0

add4

add4

re

ri

mux8-4
mux2-1
1
rs

s7...4

s3...0

On suppose un dlai de 2 ut pour les multiplexeurs. Au bout de 8 ut,


la retenue intermdiaire ri pour les 4 bits de poids faibles est connue,
les 4 bits de poids forts sont connus, quelle que soit ri ,
reste slectionner les 4 bits de poids forts d'aprs ri .
En tout, le dlai de re rs tombe 10 ut.
On a introduit du paralllisme, ce qui a permis de diminuer le dlai mais en
augmentant la surface : comme souvent, il y a un compromis.
N. Louvet  Circuits logiques, partie 1 : circuits combinatoires.

19 septembre 2015

25 / 25

You might also like