Você está na página 1de 22

- III.

1 -

CHAPITRE III :
CIRCUITS DIGITAUX : PRIMITIVES DE MOYENNE COMPLEXITE

INTRODUCTION
Lobjectif de ce chapitre est de recenser les circuits catalogue plus complexes que
portes et bascules que lon peut utiliser pour la synthse de circuits digitaux.
Dans le cas de la conception de cartes, ces primitives correspondent des botiers
existants, dans le cas de la conception de circuits intgrs, il sagit en gnral
dassemblages prdfinis, auxquels le concepteur peut faire appel dans la description du
circuit raliser.

1. PRIMITIVES COMBINATOIRES
1.1. MULTIPLEXEURS
1.1.A.

DEFINITION

Un multiplexeur 2n 1 a 2n entres de valeurs, n entres de slection et une sortie ; il


slectionne une entre de valeur et la connecte la sortie d'aprs la valeur des entres
de slection
Le schma symbolique et le tableau de valeurs d'un multiplexeur 4 -> 1 sont donns
figure III-1.

- III.2 -

s1 s0

x0

x1

x2

x3

M
code s1 s0

0
1
2
3

y = s1 s0 x0+ s 1 s0 x1 + s1 s0 x2+ s1 s0 x3

0
0
1
1

0
1
0
1

x0
x1
x2
x3

Tableau de valeurs gnralis


d'un multiplexeur 4 1

Figure III-1 : multiplexeur 4 1

En technologie MSI (moyenne intgration), il existe des boitiers multiplexeurs 2 1, 4


1, 8 1, voire 16 1. Il est possible de construire des multiplexages plus
complexes avec des arbres de multiplexeurs simples.
1.1.B.

MULTIPLEXEURS EN TECHNOLOGIE MOS

En technologie MOS, il est possible de raliser des multiplexeurs directement par un


rseau de transistors (Fig.III-2).

s
x0

s
x0
x1

x0
s

s
y

x1

a) Schma symbolique

b) Ralisation NMOS

x1
s
c) Ralisation CMOS

Figure III-2 : ralisations MOS de multiplexeurs 2 1

Le signal est cependant dgrad, et il n'est pas possible d'utiliser des chanes de
multiplexeurs de ce type pour construire des multiplexeurs beaucoup d'entres, sans
insrer des amplificateurs (notez qu'en CMOS, on implmente sur chaque chemin un
transistor de type N et un transistor de type P, pour transmettre correctement la fois le
0 et le 1).

- III.3 Une description textuelle de circuits multiplexeurs pourrait tre :


- o <= mux21[s,a,b] (s : variable de slection, a et b : entres de valeurs)
- o <= mux41[s1,s2,a,b,c,d] (s1 et s2 : variables de slection ; a, b, c et d : entres de
valeurs)

1.1.C.

SYNTHESE DE FONCTIONS BOOLEENNES A BASE DE MULTIPLEXEURS

Il est possible de raliser une fonction n variables (donc 2n points) avec un


multiplexeur (ou un systme de multiplexage, compos d'un arbre de multiplexeurs) de
type 2n 1 : l'entre de valeur xi du multiplexeur est mise la valeur de la fonction au
point Pi.
Exemple
a b c

a b c f(a,b,c)
000
001
010
011
100
101
110
111

0
1
1
0
1
1
0
0

0
1
1
0
1
1
0
0

0
1
2
3
4
5
6
7

a) ralisation d'une fonction de n


variables avec un multiplexeur
2 n 1

f(a,b,c)

a b

a b f(a,b,c)
00
01
10
11

c
c
1
0

c
c
1
0

0
1
2
3

f(a,b,c)

b) ralisation d'une fonction de n


variables avec un multiplexeur
n-1
2 1

Figure III-3 : synthse avec des multiplexeurs

La figure III-3-aillustre la synthse d'une fonction de 3 variables avec un multiplexeur


8 1 : il suffit de "recopier" le tableau de valeurs aux entres du multiplexeur. On
remarque qu'il est coteux d'utiliser un circuit (relativement) complexe, et de connecter
ses entres des valeurs fixes : d'o le schma de la figure III-3-b, o on utilise un
multiplexeur 4 1, dont les entres de slection sont a et b, et dont les entres de
valeurs portent les sous-fonctions de c en chacun des points dfinis par a et b (cf
tableau de valeurs gnralis de la fonction, donn dans la figure).
Des techniques de synthse systmatique de fonctions boolennes l'aide de
multiplexeurs 2 1 ont t tudies. Elles sont bases sur la reprsentation de la
fonction par un arbre de dcision binaire (BDD : Binary Decision Diagram) : la
ralisation "copie" cet arbre (Fig.III-4).

- III.4 Exemple

On reprend la fonction f(a,b,c) de la figure prcdente (Fig.III-3)

cc

1 1

b
c c

1 0

cc

1 1

b
c

b
c

a
b

b) implmentation l'aide
de multiplexeurs 2 1

a) BDD de la fonction
f(a,b,c)

b
1

c) BDD simplifi

d) implmentation du BDD simplifi

Figure III-4 : BDD et ralisation base de multiplexeurs 2 1

De l'arbre de dcision binaire de la figure III-4-a, on dduit l'implmentation base de


multiplexeurs 2 1 de la figure III-4-b. On peut simplifier le BDD : on constate que,
quand a et b valent 1, la valeur de la fonction est indpendante de c (les 2 branches de
droite du BDD initial sont relis 0) ; de mme, quand a vaut 1 et b vaut 0. Ce qui
donne le BDD simplifi de la figure III-4-c, dont l'implmentation est donn en figure
II-4-d : dans cette implmentation, on a vit les multiplexeurs entres constantes.
1.2.D.

UTILISATION FONCTIONNELLE DES MULTIPLEXEURS

Les multiplexeurs ralisent une slection des informations mises sur leurs entres de
valeurs : ils sont souvent utiliss pour "aiguiller" les flots d'informations dans un circuit
complexe : pour slectionner un flot d'information parmi 2n flots de b bits, on utilise b
multiplexeurs 2n ->1 (Fig.III-5).

- III.5 s
A0
A1
Ab-1

0
1

Y0

0
1

Y1

Bb-1

B0
B1

0
1

b
0
1

Yb-1
b multiplexeurs 2 -> 1

a) slection par la variable s entre 2 flots


d'information de b bits

b) reprsentation symbolique

Figure III-5 : multiplexage de flots d'information

Suivant la valeur de la variable de slection s, soit les b bits de la nappe de fils A, soit
les b bits de la nappe de fils B sont aiguills vers la nappe de fils Y de b bits.
Exercices

III-1 Proposer une ralisation d'un multiplexeur 2 -> 1 en portes NAND et valuer le
nombre de transistors ncessaire en NMOS et en CMOS. Comparer ce nombre celui
de la ralisation directe en transistors NMOS ; en transistors CMOS (cf. figure III-2).
Proposer une ralisation d'un multiplexeur 2 -> 1 partir de la porte complexe
ab + cd et comparer son nombre de transistors celui des solutions prcdentes ; que
pensez-vous de la qualit du signal en sortie pour les diffrentes solutions ? Conclure.
III-2 Proposer une ralisation dune porte XOR partir dun multiplexeur 2 ->1.
III-3 Raliser la fonction Maj(x,y,z) avec un multiplexeur 8 -> 1 ; avec un multiplexeur
4 ->1. Faire son arbre de dcision binaire, le simplifier et proposer une ralisation avec
des multiplexeurs 2 -> 1.
On prend comme cot d'un multiplexeur 2n -> 1 : 2n + n + 1 (il s'agit d'un cot moyen
entre la ralisation en portes et la ralisation en transistors dans le cas de la conception
de circuits intgrs, et correspond au nombre de broches utilises du botier dans le cas
de conception de cartes base de boitiers MSI). Evaluer les diffrentes ralisations de
la fonction Maj(x,y,z) avec des multiplexeurs , et les comparer avec la ralisation en
portes NAND.
III-4 Mme exercice pour la fonction Impair (x, y, z) = x y z

- III.6 -

1.2. DEMULTIPLEXEURS ET DECODEURS


1.2.A.

DEFINITION

Un dmultiplexeur 1 -> 2n a 1 entre de valeur, n entres de slection et 2n sorties : il


met la valeur de son entre de valeur sur une des ses 2n sorties, d'aprs la valeur des
variables de slection.
Le schma symbolique et le tableau de valeurs d'un dmultiplexeur 1 -> 4 sont donns
figure III-6.
s1 s0

D
E
M
U
X

0
1
2
3

y0 = s1 s 0 x
y1 = s1 s 0 x
y2 = s1 s 0 x

code s1 s0 y0 y1 y2 y3
0
1
2
3

0
0
1
1

0
1
0
1

x
0
0
0

0
x
0
0

0
0
x
0

0
0
0
x

y3 = s1 s0 x
Tableau de valeurs gnralis
d'un dmultiplexeur 1 -> 4

Figure III-6 : dmultiplexeur 1 -> 4

Les dmultiplexeurs sont aussi des circuits prdfinis (1 -> 4, 1 -> 8, 1 -> 16), et il est
possible de les combiner pour construire des systmes de dmultiplexage plus
complexes.
1.2.B.

SYNTHESE DE FONCTIONS BOOLEENNES A BASE DE DEMULTIPLEXEURS

Un dmultiplexeur 1 -> 2n, dont l'entre de valeur est fixe 1, gnre les 2n monmes
canoniques des n variables de slection. Comme une fonction boolenne s'exprime sous
la forme de la somme des monmes canoniques associs aux points o elle vaut 1, une
simple porte OR effectuant la somme des sorties correspondantes d'un dmultiplexeur
1 -> 2n permet de raliser toute fonction de n variables.

- III.7 Exemple

abc
a b c f(a,b,c)
000
001
010
011
100
101
110
111
f(a,b,c) =

0
1
1
0
1
1
0
0

0
1
2
3
4
5
6
7

f(a,b,c)

(1, 2, 4, 5)

Figure III-7 : synthse avec des dmultiplexeurs

Une ralisation de la fonction f(a,b,c) (dont des ralisations avec des multiplexeurs ont
t proposes figures III-3 et III-4) est donne figure III-7. Il n'y a pas de mthodes
systmatiques pour minimiser le cot de telles ralisations en utilisant des
dmultiplexeurs moins complexes.
1.2.C.

UTILISATION FONCTIONNELLE DES DEMULTIPLEXEURS : DECODEURS

Soient 2n "objets" matriels, chacun d'entre eux pouvant tre slectionn par la mise 1
d'un signal SELi (Fig.III-8-a). On veut gnrer ces 2n signaux de slection partir de :
- un signal de slection SEL, qui indique qu'on veut slectionner l'un d'entre eux,
- le numro, cod sur n bits, de l'objet slectionner, qu'il faut dcoder (Fig. III-8-b).
On peut utiliser un dmultiplexeur 1-> 2n pour gnrer ces signaux (Fig.III-8-c):
- le signal SEL est connect l'entre de valeurs
- le code du numro permet la slection de la sortie activer
- la sortie i gnre le signal SELi.
Un tel montage est appel dcodeur (FigIII-8-d).

- III.8 SEL numro SEL0 SEL1 .... SEL2

SELi

0
1
1
.
.
1

objet i

0
1
.
. n-1
2

0
1
0
.
.
0

....
....
....
....
....
....

0
0
0
.
.
1

b) tableau de valeurs

a) objet slectionner

SEL

numro

n
0
SEL

0
0
1
.
.
0

n-1

SEL0
SEL1

.
.

. n-1
2

n-1

SEL2

c) montage du dmultiplexeur
1 -> 2n en dcodeur

1
numro

2
.
.
.
.
. n-1
2

d) schma symbolique
d'un dcodeur

Figure III-8 : ralisation d'un dcodeur avec un dmultiplexeur


Exercices

III-5 Comparer les diffrentes ralisations de la fonction f(a,b,c), donnes figures III3,-4 et -7, en prenant comme cot d'un dmultiplexeur 1 -> 2n : 2n + n + 1.
III-6 Proposer une ralisation de la fonction Maj(x,y,z) l'aide d'un dmultiplexeur ;
mme chose pour la fonction Impair (x, y, z) = x y z.
III-7 Proposer une ralisation d'un dmultiplexeur 1 -> 4 base de portes AND et
valuer son cot(en nombre de transistors NMOS). Essayer de raliser le mme
dmultiplexeur directement avec des rseaux de transistors nMOS (attention, les sorties
doivent tre toujours dfinies). Conclure.

1.3. CIRCUITS PROGRAMMABLES


Les circuits programmables sont en fait des assemblages pr-raliss, que le concepteur
de matriel peut spcialiser pour qu'ils ralisent la ou les fonctions ncessaires :

- III.9 - au niveau conception de cartes, il s'agit de botiers catalogue, incluant quelques


milliers de transistors, qui peuvent tre spcialiss (programms) lectriquement,
- au niveau conception de circuits intgrs, il s'agit d'un ensemble de portes, dont
l'implantation (l'organisation des transistors et des connexions sur la surface de
silicium) et le dimensionnement des transistors sont pr-dfinis ; le concepteur n'a
plus qu' dfinir les connexions effectives des lignes portant les variables aux grilles
des transistors.
1.3.A.

RESEAUX LOGIQUES PROGRAMMABLES : PLA

Dfinition

Les PLA (Programmable Logic Arrays) sont des assemblages de portes en 2 tages
(Fig.III-9) :
- tage ET, qui permet de raliser des monmes des variables d'entre du PLA,
- tage OU, qui permet de raliser des sommes des monmes gnrs par l'tage ET
Un PLA est utile pour raliser plusieurs fonctions des mmes variables : dans ce cas,
certains des monmes raliss par l'tage ET peuvent tre utiliss par plusieurs sommes
de l'tage OU.

a
k
entres

tage
ET

l
monmes

ab

ac

ab
f

tage
OU
a) tages ET et OU d'un PLA

m
sorties

b) "programmation" d'un PLA 3 entres,


2 monmes, 2 sorties pour raliser
f(a,b,c) = a b + a c et g(a,b,c) = a c + a b

Figure III-9 : schmas symboliques d'un PLA

Dans la figure III-9-b, une reprsentation symbolique de la programmation d'un PLA


est donne. Les lignes horizontales de l'tage ET portent les valeurs des variables

- III.10 d'entre (sous forme normale et complmente) ; les lignes verticales de l'tage ET
portant la valeur des monmes, on indique par un les croisements de lignes o une
connexion doit tre effectue. Dans l'tage OU, on indique de mme quels monmes
contribuent la somme effectuer pour raliser chaque fonction.
Ralisation de PLA en technologie MOS

En technologie MOS, les PLA sont raliss avec des portes NOR : que ce soit en
NMOS ou en CMOS, seul le rseau de transistors nMOS (rseau de connexion au 0) est
implment : le rseau de connexion au 1 est ralis par un transistor nMOS ou pMOS
toujours passant et de forte rsistance.
Les marques de connexions, indiques sur le schma symbolique de la figure III-9-b
correspondent en fait des connexions aux grilles des transistors nMOS, qui dfinissent
les entres des portes NOR (Fig.III-10).
1

a
b
c

Figure III-10 : ralisation MOS d'un PLA

La figure III-10 montre une ralisation pseudo-NMOS du PLA de la figure III-9-b. Les
inverseurs en entre et en sortie permettent la synthse avec des portes NOR
d'expressions de la forme , et de plus amplifient les signaux en entre et en sortie
(ce qui est ncessaire, pour de "vrais" PLA, qui ont un grand nombre de variables et de
sorties). Les lignes en pointills sont connectes la masse.

- III.11 1.3.B.

MEMOIRES ROM

Les mmoires ROM (Read Only Memory) peuvent tre considres comme des PLA
dont l'tage ET gnre tous les monmes canoniques des variables d'entre, c'est--dire
est en fait un dcodeur. L'tage OU permet de slectionner les monmes canoniques
dont on veut faire la somme. Une ROM est donc une implmentation prdfinie de
circuits tels que celui donn figure III-7 (synthse laide de DEMUX).
Le schma symbolique d'une ROM ralisant les fonctions de la figure III-9-b est donn
figure III-11.
0
1
a

2
3

abc f g
000
001
010
011
100
101
110
111

01
01
10
10
00
11
00
11

5
6
7

f
a) tableaux de valeurs
de f (a,b,c) et g(a,b,c)

b) ralisation de f et g l'aide d'une ROM


3 entres, 2 sorties

Figure III-11 : ralisation de fonctions boolennes avec une ROM


1.4.C.

EVALUATION DES CIRCUITS PROGRAMMABLES

La synthse de fonctions boolennes avec une ROM se fait directement partir du


tableaux de valeurs, et ne ncessitent pas la recherche d'expressions simplifies, ce qui
est souhaitable lorsqu'on utilise des PLA. La surface du circuit obtenu est cependant
plus grande. L'avantage des ROM par rapport aux PLA est qu'elles ne sont dfinies que
par 2 paramtres : nombre d'entres et nombre de sorties, alors que les PLA ont en plus
le paramtre nombre de monmes. Au niveau de la conception de cartes, un "catalogue"
plus restreint de boitiers ROM permet de disposer des dimensions ncessaires.

- III.12 On parle de logique alatoire pour un circuit ralis par une synthse en portes, de
logique rgulire pour un circuit ralis base de PLA ou de ROM : ces termes font
rfrence aux problmes poss par le trac des connexions entre portes (logique
alatoire), par opposition la rgularit des connexions pr-dfinies dans les circuits
programmables. Dans un circuit intgr, on peut estimer que la densit de transistors est
de 10% 20% suprieure en logique rgulire. Par contre, tous les transistors d'un PLA
ou d'une ROM ne sont pas utiliss (cf Fig.III-10). En ce qui concerne la conception de
cartes, il est vident que l'intgration suprieure des circuits programmables permet un
gain de place important.
Exercices

III-8 Donner le schma symbolique d'un PLA et d'une ROM ralisant les fonctions
Maj(x,y,z) et Impair(x,y,z).
III-9 On se place dans le cadre de la conception de circuit intgr. Evaluer le nombre
de transistors du PLA et de la ROM dfinies dans l'exercice III-8 (y compris les
transistors non utiliss). Comparer ce nombre celui ncessaire pour la synthse en
portes (portes NAND et portes ab + cd , en NMOS ou en pseudo-NMOS) de ces deux
fonctions. Si la densit des transistors est 20% suprieure en logique rgulire, quelle
est la meilleure solution ?
III-10 On se place dans le cas de la conception de cartes partir de botiers. Le critre
de complexit est alors le nombre de broches utilises. En supposant qu'il existe des
botiers PLA et ROM qui ont exactement la taille ncessaire (en gnral, les tailles
proposes sont bien suprieures), comparer la complexit des diffrentes ralisations
qui ont t proposes pour les fonctions Maj(x,y,z) et Impair(x,y,z) :
-

ralisation en portes NAND et XOR,


ralisation par multiplexeurs,
ralisation par dmultiplexeurs ,
ralisation par PLA
ralisation par ROM

- III.13 -

2. CIRCUITS ARITHMETIQUES
2.1. REPRESENTATION DES NOMBRES
2.1.A.

NUMERATION DECIMALE ET BINAIRE

Nous utilisons tous les jours une reprsentation dcimale (base 10), o un nombre est
reprsent par une suite de chiffres dcimaux (de 0 9) et la valeur d'un nombre est une
somme pondre des chiffres :
230510 = 2 . 10 3 + 3 . 10 2 + 0 . 10 1 + 5 . 10 0
Chaque poids est une puissance de 10, d'aprs la position du chiffre.
Pour un nombre rel, les chiffres aprs la virgule sont pondrs par une puissance
ngative de 10 :
4,02910 = 4 . 10 0 + 0 . 10 -1 + 2 . 10 -2 + 9 . 10 -3
Rajouter des 0 gauche de la partie entire ou droite de la partie fractionnaire ne
modifie pas la valeur du nombre :
4,02910 = 000004,029000010
Un ordinateur, lui, manipule des nombres cods avec 2 chiffres seulement, 0 et 1, donc
reprsents en binaire (base 2) :
11012 = 1 . 2 4 + 1 . 2 3 + 0 . 2 2 + 1 . 2 0
10,1012 = = 1 . 2 1 + 0 . 2 0 + 1 . 2 -1 + 0 . 2 -2 + 1 . 2 -3
On voit la ncessit d'tre extrmement prudent avec les notations ; on a ici :
- indiqu la base utilise en indice, avec la valeur de la base en numration dcimale
(sinon, il faudrait utiliser des notations du type 234dix ou 101deux)
- exprim la valeur du nombre l'aide de la base 10 (expressions en italique).
Un chiffre (dcimal) en Anglais est un digit, un chiffre binaire est un binary digit ou
bit.
Plus gnralement, un nombre peut tre reprsent en base b quelconque (avec b 2)
n1

sous la forme cn-1 cn-2 ...c0 , c-1 c-2 ... c-p, sa valeur tant

c .b

i=p

Le chiffre le plus gauche est appel chiffre de poids fort, le plus droite chiffre de
poids faible.

- III.14 Outre la numration binaire (base 2), on utilise aussi la numration octale (base 8, avec
les chiffres de 0 7) et la numration hexadcimale (base 16, chiffres 0,...,9, A, B, C,
D, E, F), voir tableau III-1.

dcimal

binaire

hexadcimal octal

10

11

100

101

110

111

1000

10

1001

11

10

1010

12

11

1011

13

12

1100

14

13

1101

15

14

1110

16

15

1111

17

16

10000

10

20

Table III-1 : reprsentations dcimale, binaire, hexadcimale et octale


2.1.B.

CONVERSIONS D'UNE BASE A L'AUTRE

Conversion hexadcimale <>binaire

La conversion est facilite car 16 est une puissance de 2 :


A90F16 = 10 . 16 3 + 9 . 16 2 + 0 . 16 1 + F . 16 0
= 10 . 2 12 + 9 . 2 8 + 0 . 2 4 + F . 2 0
= 1010 1001 0000 11112
en utilisant la conversion chiffre hexadcimal -> chiffre binaire de la table III-1.
Dans le sens binaire-> hexadcimal, on groupe les bits par groupes de 4 ( partir de la
droite) :

- III.15 110101110010012 = 11 0101 1100 10012 = 0011 0101 1100 10012


3

= 35C916

Conversion octal <>binaire

31278

=3.83+1.82+2.81+7.80
=3.29+1.26+2.23+7.20
= 011 001 010 1112

Conversion binaire <> dcimal

A partir de la reprsentation en binaire, on exprime le nombre sous forme de somme


pondre en dcimal, puis on effectue les calculs :
110110 2

=25 +24+22+21

= 5610

7843
3921
1960
980
490
245
122
61
30
15
7
3
1

RESTES SUCCESSIFS

QUOTIENTS SUCCESSIFS

La conversion dcimal vers binaire est plus difficile et se fait par divisions successives
par 2 : le reste de chaque division donne un chiffre de la reprsentation binaire, du bit
de poids faible au bit de poids fort :
1
1
0
0
0
1
0
0
0
1
1
1
1 1 1 0 0 0 1 0 0 0 1 1

2.1.C

NOMBRES EN PRECISION FINIE

En gnral, la conception d'un ordinateur on prvoit un nombre fini (voire fixe) de


bits pour reprsenter un nombre.
Sur n bits, il est possible de reprsenter 2n entiers naturels dans l'intervalle [0, 2n 1]
cod de 000 ...0 111...1.

- III.16 -

2.2. ADDITIONNEURS
2.2.A.

ADDITION D'ENTIERS POSITIFS

Soient 2 nombres de 1 bit, ai et bi additionner (Fig.III-12) : le rsultat est cod sur 2


bits, ci+1 (retenue sortante : "carryout") et si (somme).
a

0
1
0
1

0
0
0
1

ai b i

ci +1

a i b i c i+1 s i
0
0
1
1

bi

c i+1

0
1
1
0

si

a) tableau de valeurs

si

b) entres/sorties du circuit

c) ralisation du circuit

Figure III-12 : addition de 2 nombres de 1 bit

Du tableau de valeurs de la figure III-12-a, on dduit les quations du circuit :


ci+1 = ai bi et si = ai bi qui mnent la ralisation propose en Fig.III-12-c.
Quand on additionne 2 nombres de n bits, l'addition des bits de rang i doit tenir compte
de la retenue ci gnre par les bits de rang infrieur, ou retenue entrante (Fig.III-13).
ai b i

a
a i b i ci

ci+1 s i

0
0
0
0
1
1
1
1

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

bi

ci +1

ci

c i+1

ci

si

a) tableau de valeurs b) entres/sorties du circuit

si
c) ralisation du circuit

Figure III-13 : additionneur 1 bit

- III.17 Le tableau de valeurs de la figure III-13 permet de dterminer les quations :


ci+1 = ai bi + ai ci + bi ci = Maj(ai, bi, ci)
si = ai bi ci = Impair(ai, bi, ci)
On retrouve les fonctions Maj et Impair, dont les diffrentes ralisations ont t
tudies.
Le circuit correspondant (Fig.III-13-c) est appel additionneur 1-bit (le circuit de la
figure III-12, qui ne tient pas compte de la retenue entrante, est appel 1/2
additionneur).
Pour faire un circuit additionneur n-bits, il suffit de connecter n additionneurs 1-bit
(Fig.III-14).
A

B
n

additionneur
n-bits
n

an-1b n-1

an-2b n-2

a 1 b1

a 0 b0
0

cn
sn-1

s n-2

s1

s0

Figure III-14 : additionneur n-bits propagation de retenue

Dans ce circuit, la retenue calcule un tage est propage vers l'tage suivant pour
qu'il en tienne compte dans son calcul (carry-propagate adder). Ce circuit a le mrite de
la simplicit grce sa rgularit (utilisation de n exemplaires du mme circuit
additionneur 1-bit), mais est trs lent : son chemin critique est le chemin de propagation
des retenues, qui comporte 2n portes (2n - 1 portes si l'additionneur de poids faible est
un 1/2 additionneur).
Un tel circuit est appel circuit itratif. Il est possible de le dcrire dans un langage de
description de circuits rapidement : dans une premire tape, on dfinit un bloc
additionneur 1-bit ( 3 entres et 2 sorties), puis la connexion des n exemplaires du bloc
est dcrite (sans oublier la retenue entrante 0 du premier additionneur 1-bit) :
s(0), c(1) <= add1bit [a(0), b(0), Gnd]
For m = 1 : n-1 s(m), c(m+1) <= add1bit [a(m), b(m), c(m) ]

- III.18 Attention, la primitive For d'un langage de description de circuits a une interprtation
spatiale (n-1 exemplaires du circuit), non temporelle comme dans un langage de
programmation (n-1 excutions squentielles du corps de boucle).
Il est possible de concevoir des additionneurs plus rapides, en particulier par
anticipation de la retenue : connaissant les k bits de poids faibles des nombres A et B, il
est possible de dterminer la retenue entrante sur le k+1-me additionneur sans avoir
effectu entirement l'opration d'addition sur ces k bits (carry lookahead adder)
Exercice

III-11 Concevoir un circuit itratif d'incrmentation (addition d'un 1) pour un nombre de


n bits. Evaluer sa complexit et son temps de calcul (nombre de portes sur le chemin
critique).
Pour n = 4, faire le tableau de valeurs des sorties, chercher leurs expressions
irrdondantes ; remarquer qu'on peut les mettre sous la forme si = ai j<i aj.. Evaluer
la complexit du circuit correspondant (incrmenteur non itratif) et son temps de
calcul pour n = 4 ; pour n = 8. Conclure.
2.2.B.

ADDITION / SOUSTRACTION D'ENTIERS RELATIFS

Les entiers relatifs peuvent tre cods sur n bits :


- soit en signe et valeur absolue : 1 bit de signe et n -1 bits de valeur absolue :
code de A : S

valeur absolue | A |

A = (-1)S | A |

Les valeurs sont dans l'intervalle [ - (2n-1 -1) , + (2n-1 -1) ], avec un 0 positif et un 0
ngatif.
- soit en complment 2n : un nombre ngatif est cod par 2n - | A |.
code de A : S

an-2 an-3 ...........a1 a0

A = si S = 0, alors (an-2 an-3 ........a1 a0)


sinon - (2n - (S an-2 an-3 ........a1 a0))

Les valeurs sont dans l'intervalle [ - 2n-1 , + (2n-1 - 1)], avec un seul 0 (positif).
Exemple

Sur 4 bits, les codes sont les suivants :

- III.19 -

nombre
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7

code en signe
code en
et valeur absolue complment 2
1111
1110
1101
1100
1011
1010
1001
1000 ou 0000
0001
0010
0011
0100
0101
0110
0111

1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0010
0011
0100
0101
0110
0111

Tableau III-2 : codages sur 4 bits des entiers relatifs

L'avantage du codage en complment 2n est qu'il est conserv par l'opration


d'addition sur les entiers positifs (telle que dfinie par la table d'opration de la figure
III-13) :
code(A) plus code (B) modulo 2n = code (A plus B), si A plus B est codable sur n
bits.
De plus, le complment 2n d'un nombre est facile obtenir, par :
2n - A = + 1, avec = an-1 an-2 ..... a1 a0
Par contre, le codage en signe et valeur absolue impose de comparer les valeurs
absolues avant de les soustraire (pour soustraire la plus petite la plus grande), ou de
corriger le rsultat obtenu, si la plus grande a t soustraite la plus petite. C'est
pourquoi le codage en complment 2n est le plus souvent utilis.
Ajouter 2 entiers relatifs cods en complment 2n est donc ajouter leur code, les
soustraire revient ajouter le complment 2n , c'est--dire ajouter le code du nombre
avec tous ses bits complments, puis ajouter 1. Un circuit additionneur / soustracteur
de nombres cods en complment 2n peut tre ralis partir d'un additionneur n-bits
d'entiers positifs, en rajoutant un ensemble de n inverseurs et de n multiplexeurs (entre
des bits complments de l'oprande soustraire) et en introduisant une retenue
entrante 1 si l'opration effectuer est une soustraction : un tel circuit est indiqu
figure III-15.

- III.20 -

add / sous

B
n

an-2 bn-2

01

01

a1 b1

a 0 b0

additionneur
/
soustracteur
n-bits
n
S

a n-1 b n-1

01

01
add /
sous

cn

s n-1

s n-2

s1

s0

Figure III-15 : additionneur/soustracteur

Si l'entre de commande add /sous est 0, l'addition des 2 codes A et B est effectue ;
sinon, la valeur complmente des bits de B est slectionne par les multiplexeurs, la
retenue entrante de l'additionneur est 1, et l'addition de A et du complment de B est
effectue. Notez le codage de la commande d'addition / soustraction qui permet de
commander directement le circuit.
Le mme type de montage peut tre ralis en utilisant un additionneur anticipation de
retenue.
Exercices

III-12 Nombres relatifs cods en complment 2n : dmontrer que le codage est


conserv par l'opration d'addition. Dterminer dans quels cas le rsultat est erron (non
codable sur n bits) en fonction des oprandes et de la retenue sortante de l'additionneur
cn ; en fonction des retenues cn et cn-1. En gnral, on munit l'additionneur /
soustracteur d'une sortie indiquant que le rsultat est erron : sortie v (dbordement ou
"overflow") ; donner son expression.
III-13 Donner le schma d'un circuit qui effectue les trois oprations : A + B, A - B et B
- A ; la commande de ce circuit doit tre code sur 2 bits : choisir le codage de
l'opration excuter de faon optimiser le circuit.
III-14 Proposer une ralisation pour un circuit de dcrmentation (soustraction de 1) ;
pour un circuit incrmenteur / dcrmenteur (cf exercice III-11).

2.3. UNITE ARITHMETIQUE ET LOGIQUE


Il existe des circuits MSI effectuant un ensemble d'oprations logiques et arithmtiques
(Unit Arithmtique et Logique : UAL, ou Arithmetic and Logic unit : ALU), d'aprs
des entres de commandes et la retenue entrante (Fig. III-16).

- III.21 A
n

B
n

Cin

f 3 f 2 f1 f0 M=1

entres de
commandes

0
0
M
0
UAL
f3 f2 f1 f0
0
0
0
znvc
n
0
indicateurs
0
S
1
indicateurs :
1
- z :( A moins B = 0)
1
- n : (A moins B < 0)
1
- v : dbordement en complment 2 1
- c : retenue sortante
1
1
1

0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

0 A
1 A+B
0 AB
1 0
0 AB
1 B
0 AB
1 AB
0 A+B
1 AB
0 B
1 AB
0 1
1 A+B
0 A+B
1 A

M=0
Cin=0 Cin=1
A
Aplus1
AplusBplus1
moins1 0
AmoinsB
AplusB AplusBplus1
AplusA AplusAplus1
Amoins1A

tableau de valeurs de S en fonction des


entres de commandes
M=1 mode logique, M=0 mode arithmtique
Figure III-16 : unit arithmtique et logique

Les sorties du circuit sont le rsultat sur n bits, et des indicateurs sur le rsultat de
l'opration.

3.4. MULTIPLIEURS
La multiplication d'entiers positifs cods en binaire consiste (comme en dcimal) :
- calculer les produits partiels : dans le cas binaire, un produit partiel est soit 0, soit le
multiplicande lui-mme,
- ajouter les produits partiels convenablement dcals : dans une multiplication " la
main", on ajoute tous les produits partiels aprs les avoir calculs ; un circuit les
ajoutera au fur et mesure de leur calcul, donc ajoutera un produit partiel un
rsultat intermdiaire (qui est la somme des produits partiels antrieurs).
Un multiplieur de nombres de n bits peut tre ralis partir de n - 1 additionneurs n
bits (Fig. III-17).

- III.22 a3

a1

a2

a0
b0
b1

0
0

b2
0

b3
0

s7

s6

s5

s4

s3

s2

s1

s0

Figure III-17 : multiplieur 4 * 4 bits

Le multiplieur combinatoire de nombres de 4 bits de la figure III-17 comporte :


- 4 ranges de 4 portes AND, chaque range calculant un produit partiel,
- 3 additionneurs 4 bits, qui effectuent la sommation des produits partiels.
Le chemin critique dans ce multiplieur est constitu par la porte et les additionneurs
1bit en gris (1 porte, 8 additionneurs1-bit) : notez que le chemin critique global n'est
pas la concatnation des chemins critiques des additionneurs n-bits composant le
circuit.
Le temps de calcul d'un multiplieur n*n-bits, conu suivant ce principe, est (3 n - 4) ta,
ta tant le temps de calcul de la retenue d'un additionneur 1-bit.
Il est possible de concevoir un multiplieur combinatoire temps de calcul en 2n ta, ou
en (n +log2n) ta, en optimisant le calcul des retenues.

Você também pode gostar