You are on page 1of 17

Objectifs

Connatre et comprendre

Circuits Logiques
ELE1300

La reprsentation dun nombre dans une base


quelconque et en particulier dans les formats
binaires.

tre capable de

Reprsentation des nombres


et oprations

Convertir un nombre dune base une autre


Raliser des oprations sur les nombres

JP David

Addition soustraction multiplication division

Circuits logiques - JP David

9 mars 2016

Les nombres en binaire

Les nombres en binaire ()

Forme gnrale dun nombre :


(systme de numration pondre)

[ an1

[ an1

partie fractionnaire
m chiffres

an 2 L a1 a0 , a1 a2 L a m ] (b )

b n 1 b n 2 L b1 b 0

an 2 L a1 a0 , a1 a2 L a m ] (b )
partie entire
n chiffres

b 1 b 2 L b m

Valeur :

base

an 1 b n1 + an 2 b n 2 + L + a1 b + a0
+ a-1 b-1 + a-2 b -2 + L + a- m b- m

9 mars 2016

Circuits logiques - JP David

9 mars 2016

Circuits logiques - JP David

Quelques bases usites


SYSTME

BASE

Quelques bases usites (suite)

CHIFFRES

BINAIRE

ai {0,1}

OCTAL

ai {0,1, 2,3, 4,5, 6, 7}

DCIMAL

10

ai {0,1, 2,3, 4,5, 6, 7,8,9}

HEXADCIMAL

16

ai {0,1, 2,3, 4,5,6, 7,8,9, A, B, C, D, E, F}

Exemples :
1011,101( 2) = 1( 2 ) 103( 2) + 0( 2) 10(22 ) + 1( 2) 101( 2) + 1( 2 ) 10(02) + 1( 2 ) 10(21) + 0( 2) 10(22) + 1( 2) 10(23)
45,36(8) = 4( 8) 101( 8) + 5( 8) 10(08) + 3( 8) 10(81) + 6(8) 10(82)
243,6(10) = 2(10) 10(210 ) + 4(10 ) 101(10) + 3(10) 10(010 ) + 6(10) 10(101 )

BINAIRE

OCTAL

DCIMAL

HEXADCIMAL

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

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10

12A, 4(16) = 1(16) 10(216 ) + 2(16 ) 101(16) + A(16) 10(016) + 4(16 ) 10(161 )
9 mars 2016

Circuits logiques - JP David

9 mars 2016

Compter en base

Compter en base 10, cela signifie quon va


faire des paquets de 10 objets :

(voir cours 1 )

Circuits logiques - JP David

Une base est un paquet

Combien y a-t-il dautos ?

9 mars 2016

Circuits logiques - JP David

9 mars 2016

Circuits logiques - JP David

49 = 4 paquets de 10 + 9

La base 2

Il y a 4 paquets + 9 autos, soit 49 autos

9 mars 2016

Circuits logiques - JP David

Compter en base 2, cela signifie quon va


faire des paquets de 2 objets :

9 mars 2016

La base 2 (suite)

Circuits logiques - JP David

10

La base 2 (suite)

Compter en base 2, cela signifie quon va


faire des paquets de 2 objets :
Paquet de 2

Compter en base 2, cela signifie quon va


2 paquets de 2
faire des paquets de 2 objets :

autos

9 mars 2016

Circuits logiques - JP David

11

9 mars 2016

Circuits logiques - JP David

12

La base 2 (suite)

La base 2 (suite)

Compter en base 2, cela signifie quon va


faire des paquets de 2 objets :
Paquet de 4

Compter en base 2, cela signifie quon va


faire des paquets de 2 objets :

autos

9 mars 2016

Circuits logiques - JP David

13

9 mars 2016

La base 2 (suite)

Circuits logiques - JP David

14

La base 2 (suite)
Paquet de 8
autos

9 mars 2016

Circuits logiques - JP David

15

9 mars 2016

Circuits logiques - JP David

16

La base 2 (suite)

La base 2 (suite)
Paquet de 16
autos

9 mars 2016

Circuits logiques - JP David

17

Circuits logiques - JP David

9 mars 2016

La base 2 (suite)

18

La base 2 (suite)
Paquet de 32
autos

=2x

=2x

16

=2x

32
2

110001
9 mars 2016

Circuits logiques - JP David

19

9 mars 2016

Circuits logiques - JP David

20

Les nombres en binaire ()

Convertion entre les bases

Compter en base 10, cela signifie quon va faire des paquets


de 10 objets ou des paquets de 10 paquets
51 = 5 x 10 + 1
163 = 1 x (10x10) + 6 x 10 + 3
1964 = 1 x (10x10x10) + 9 x (10x10) + 6 x 10 + 4
Compter en base 2, cela signifie quon va faire des paquets
de 2 objets ou des paquets de 2 paquets
51 = 1 x (2x2x2x2x2) + 1 x (2x2x2x2) + 1 x 2 + 1
163 = 1 x (27=128) + 1 x (25=32) + 1 x 2 + 1
1964 = 1 x (210=1024) + 1 x (29=512) + (1 x 28=256) +
1 x (27=128) + 1 x (25=32) + 1 x (23=8) + 1 x (22=4)

Conversion dune base quelconque en base dcimale :


MTHODE POLYNOMIALE DIRECTE

9 mars 2016

Circuits logiques - JP David

Dvelopper le polynme et faire le calcul


Exemples : binaire en dcimal
01011(2) = 123 + 121 +120 = 8+2+1=11 en base 10
11001(2) = 124 + 123 +120 = 16+8+1=25 en base 10
011111(2)
1000001(2)
1000,001(2)
011,111(2)
21

9 mars 2016

= ?(10)
= ?(10)
= ?(10)
= ?(10)
Circuits logiques - JP David

22

Conversion entre les bases ()

Conversion entre les bases ()

Conversion dune base quelconque en base dcimale :


MTHODE POLYNOMIALE ITRATIVE

Conversion dune base quelconque en base dcimale :


MTHODE POLYNOMIALE ITRATIVE

Pour la partie entire (E)

Pour la partie fractionnaire (F)

E = an 1 b n 1 + L + a2 b 2 + a1 b1 + a0 b 0

F = a1 b1 + a2 b 2 + a3 b 3 + L + a m b m

E = ((((0 + an 1 ) b + an 2 ) b + L + a2 ) b + a1 ) b + a0

F = ((((0 + a m ) b 1 + a ( m 1 ) ) b 1 + L + a2 ) b 1 + a1 ) b1

01011(2) = (((1)2+0)2+1)2+1 = 11(10)


11001(2) = ((((1)2+1)2+0)2+0) 2+1 =25(10)

9 mars 2016

Circuits logiques - JP David

0.1011(2) = ((((1)+1)+0)+1) = 0.6875(10)


0.10111(2) = (((((1)2+1)2+1)2+0) 2+1) = 0.71875(10)

23

9 mars 2016

Circuits logiques - JP David

24

Conversion entre les bases ()


Conversion dune base dcimale en base quelconque :
MTHODE ITRATIVE PAR DIVISION

Conversion dune base dcimale en base quelconque :


MTHODE ITRATIVE PAR DIVISION

Le calcul se fait diffremment pour la partie entire


et la partie fractionnaire :

[ an1

Pour la partie entire (E)


Partie entire :

an 2 L a1 a0 , a1 a2 L a m ] (b )
partie entire
n chiffres

partie fractionnaire
m chiffres

Conversion entre les bases ()

E
b

base

E = an 1 b n 1 + L + a2 b 2 + a1 b1 + a0 b 0

= an 1 b n 2 + L + a2 b1 + a1 b 0 +

a0
b

= Q1 +

Q1
b

= an 1 b n 3 + L + a2 b 0 +

a1
b

= Q2 +

a1
b

Q2
b

= an 1 b n 4 + L + a3 b0 +

a2
b

= Q3 +

a2
b

a0
b

= Q1 reste a0

= Q2 reste a1
= Q3 reste a2

(le processus est appliqu jusqu an-1 )


Circuits logiques - JP David

9 mars 2016

25

Conversion entre les bases ()


Exemple : 57(10) = ?(2)
57 2 = 28 reste 1
28 2 = 14 reste 0
14 2 = 7 reste 0
7 2 = 3 reste 1
3 2 = 1 reste 1
1 2 = 0 reste 1

do 57(10) = 111001(2)
9 mars 2016

318 reste
159 reste
79 reste
39 reste
19 reste
9 reste
4 reste
2 reste
1 reste
0 reste

Conversion entre les bases ()

1
0
1
1
1
1
1
0
0
1

Pour la partie fractionnaire (F)


1
2
3
m
Partie fractionnaire : F = a1 b + a2 b + a3 b + L + a m b
bF = a1 b 0 + a2 b 1 + a3 b 2 + L + a m b m +1
Partie entire

Partie fractionnaire F1

bF1 = a2 b0 + a3 b 1 + a4 b 2 + L + a m b m + 2
Partie entire

do 637(10) = 1001111101(2)
Circuits logiques - JP David

26

Conversion dune base dcimale en base quelconque :


MTHODE ITRATIVE PAR DIVISION

Exemple : 637(10) = ?(2)


637 2 =
318 2 =
159 2 =
79 2 =
39 2 =
19 2 =
92=
42=
22=
12=

Circuits logiques - JP David

9 mars 2016

Partie fractionnaire F2

(le processus est appliqu jusqu a-m )


27

9 mars 2016

Circuits logiques - JP David

28

Conversion entre les bases ()


Exemple : 0,6875(10) = ?(2)

0,6875
0,375
0,75
0,5

2=
2=
2=
2=

1,375
0,75
1,5
1,0

partie
partie
partie
partie

entire
entire
entire
entire

Conversion entre les bases ()


La rptition existe aussi en binaire :
MTHODE ITRATIVE PAR DIVISION

=1
=0
=1
=1

Exemple : 22/7 = 21/7 + 1/7 = 3+1/7 = ?(2)


1/7 2 =
2/7 2 =
4/7 2 =
1/7 2 =

do 0,6875(10) = 0,1011(2)
Exemple : 0,8125(10) = ?(2)

0,8125
0,625
0,25
0,5

2=
2=
2=
2=

1,625
1,25
0,5
1,0

partie
partie
partie
partie

entire
entire
entire
entire

=1
=1
=0
=1

Circuits logiques - JP David

do 22/7 = 11 , 001 001 001

29

REPRSENTATION EN COMPLMENT 2

(2)

30

REPRSENTATION EN COMPLMENT 2
Reprenons lcriture en binaire.
Nous disposons de 8 bits (256 valeurs) partags en 128 valeurs positives
(0 127) et 128 valeurs ngatives (-128 -1).

Les valeurs positives sont :

Supposons que lon utilise 8 bits (n=8). On a 2n=256 valeurs binaires


(de 0 255).
Pour rserver un bit de signe, on choisit PAR CONVENTION de rpartir les
valeurs possibles en deux groupes, 128 nombres positifs (0 127) et 128
nombres ngatifs (-128 -1). Remarque : 0 est considr comme un positif
Pour reprsenter les nombres ngatifs on crit: N sera 256 |N|

000
001
002
003
004
...
123
124
125
126
127

= 11111101(2)
= 10000000(2)

Circuits logiques - JP David

=0
=0
=1
=0

Et les nombres ngatifs?

Un ordinateur reprsente linformation en 0 et en 1 (des bits). Pour reprsenter


le signe moins ( - ), on a pas dautre choix que dutiliser un bit
supplmentaire

9 mars 2016

entire
entire
entire
entire

Circuits logiques - JP David

9 mars 2016

Et les nombres ngatifs?

-3 sera 256 3 = 253


-128 sera 256 128 = 128

partie
partie
partie
partie

RPTITION

do 0,8125(10) = 0,1101(2)

9 mars 2016

2/7 0,2857
4/7 0,5714
8/7 1,1428
2/7 0,2857

31

9 mars 2016

0000
0000
0000
0000
0000
...
0111
0111
0111
0111
0111

0000
0001
0010
0011
0100
1011
1100
1101
1110
1111

Circuits logiques - JP David

32

Et les nombres ngatifs?

Et les nombres ngatifs?

REPRSENTATION EN COMPLMENT 2

REPRSENTATION EN COMPLMENT 2

Les valeurs ngatives sont :


-001
-002
-003
-004
-005
-006
...
-122
-123
-124
-125
-126
-127
-128

9 mars 2016

1111
1111
1111
1111
1111
1111
...
1000
1000
1000
1000
1000
1000
1000

Conclusions:
Le bit le plus significatif (le plus gauche, not MSB) est un bit de signe

1111
1110
1101
1100
1011
1010

Si le MSB vaut 0, le nombre est positif (sa valeur est la valeur binaire directe)
Exemples:
001
0000 0001
050
0011 0010
100
0110 0100
127
0111 1111
Si le MSB vaut 1, le nombre est ngatif (sa valeur est la valeur binaire 2n)
Exemples:
-001
1111 1111
(255-256 = -1)
-050
1100 1110
(206-256 = -50)
-100
1001 1100
(156-256 = -100)
-127
1000 0001
(129-256 = -127)

0110
0101
0100
0011
0010
0001
0000

Circuits logiques - JP David

33

Circuits logiques - JP David

9 mars 2016

Et les nombres ngatifs?

34

Et les nombres ngatifs?

REPRSENTATION EN COMPLMENT 2

CALCUL DU COMPLMENT 2 DUN NOMBRE


Pour trouver la valeur ngative dun nombre de manire simple,
on inverse les bits (complment 1) et on ajoute 1:

Comme le bit de poids fort est toujours vrai pour un nombre


ngatif, en 8 bits, la valeur reprsente est, 128 + valeur binaire
sur 7 bits 256, soit : valeur binaire sur 7 bits 128
Tout se passe comme si la valeur du premier bit (an-1) devait tre
compte en ngatif (-2(n-1) = -128) plutt quen positif
En gnralisant n bits, on peut donc trouver la valeur dun
nombre binaire sign comme suit, en notant le signe MOINS
devant la premire puissance de 2:

Exemples:
001 : 0000 0001 INVERSE 1111 1110 (+1) 1111 1111 : -001
050 : 0011 0010 INVERSE 1100 1101 (+1) 1100 1110 : -050
100 : 0110 0100 INVERSE 1001 1011 (+1) 1001 1100 : -100

N = [ an 1 an 2 L a1 a0 , a1 a2 L a m ] ( b)

127 : 0111 1111 INVERSE 1000 0000 (+1) 1000 0001 : -127

N = an1 2n1 +L+ a2 22 + a1 21 + a0 + a1 21 + a2 22 + a3 23 +L+ a m 2 m


9 mars 2016

Circuits logiques - JP David

35

9 mars 2016

Circuits logiques - JP David

36

Et les nombres ngatifs?

Et les nombres ngatifs?

CALCUL DU COMPLMENT ( 2) DUN NOMBRE


Le chemin inverse est juste aussi,
on inverse les bits (complment 1) et on ajoute 1:

CALCUL EN REPRSENTATION EN COMPLMENT 2


Le complment 2 est cyclique: Exemple (4 bits allant de -8
+7) :

Exemples:
-001 : 1111 1111 INVERSE 0000 0000 (+1) 0000 0001 : 001
-050 : 1100 1110 INVERSE 0011 0001 (+1) 0011 0010 : 050
-100 : 1001 1100 INVERSE 0110 0011 (+1) 0110 0100 : 100
-127 : 1000 0001 INVERSE 0111 1110 (+1) 0111 1111 : 127

9 mars 2016

Circuits logiques - JP David

37

Circuits logiques - JP David

9 mars 2016

Et les nombres ngatifs?

38

Et les nombres ngatifs?


REPRSENTATION EN COMPLMENT 2
Il est possible de choisir nimporte quel nombre de bits.
Pour n bit: N sera reprsent par N pour N>=0
N sera reprsent par 2n|N| pour N<0
Exemples:
1001(2)
1011(2)
0101(2)
11100(2)
11001(2)
00111(2)
1101111(2)
1101010(2)
0010110(2)

Source xkcd n 571

9 mars 2016

Circuits logiques - JP David

39

9 mars 2016

=
=
=
=
=
=
=
=
=

?(10)
?(10)
?(10)
?(10)
?(10)
?(10)
?(10)
?(10)
?(10)
Circuits logiques - JP David

40

10

Et les nombres ngatifs?

Laddition binaire : 207 + 120

REPRSENTATION EN COMPLMENT 2

128

Pour n+m bit, quest-ce que a donne avec la partie en


virgule fixe?

64

32

16

N = [ an 1 an 2 L a1 a0 , a1 a2 L a m ] ( 2)

N sera reprsent par N pour N>=0


N sera reprsent par 2n|N| pour N<0
Exemples:
10,01(2)
10,11(2)
01,01(2)
11,100(2)
11,001(2)
00,111(2)
9 mars 2016

=
=
=
=
=
=

?(10)
?(10)
?(10)
?(10)
?(10)
?(10)
Circuits logiques - JP David

41

9 mars 2016

Arithmtique signe

42

ADDITION ()
Quel impact cela a-t-il sur le rsultat ?

Si ncessaire, on utilise lextension de signe pour les


oprandes (voir plus loin).
Finalement, on ralise les oprations comme si on tait en
arithmtique positive mais on ignore le bit de retenue.

Circuits logiques - JP David

Circuits logiques - JP David

Arithmtique signe

Lorsquon additionne ou que lon soustrait des nombres


reprsents en complment 2, on choisit dabord un
nombre de bits (n,m) qui sera le mme pour les
oprandes ET pour le rsultat.

9 mars 2016

01000111

43

00110110
+00001111

54
+ 15

01000101

69

11001010
+11110001

(54)
+ (15)

110111011

(69)

9 mars 2016

Circuits logiques - JP David

44

11

Arithmtique signe

Arithmtique signe

SOUSTRACTION
N1 N2 = N1 + ( N2 )

LE DBORDEMENT
Quel impact cela a-t-il sur le rsultat ?

00110110
00001111

00110110
+11110001

54
15

0100
+0100

4
+ 4

100100111

39

1000

11001010
11110001

11001010
+00001111

(54)
(15)

11011001

(39)

9 mars 2016

Quel est le problme?

Circuits logiques - JP David

45

Un peu darithmtique ()

Circuits logiques - JP David

46

Un peu darithmtique ()

LE DBORDEMENT ()
En complment 2 avec 4 bits, il ny a pas de reprsentation
de +8 !!!
Lorsque le rsultat de lopration nest pas reprsentable,
on parle de DBORDEMENT de lopration +/-.

9 mars 2016

Circuits logiques - JP David

9 mars 2016

47

LE DBORDEMENT ()

Le dbordement survient uniquement quand on additionne deux


nombres positifs ou deux nombres ngatifs.
Le dbordement peut tre facilement dtect, il survient lorsque
les deux dernires retenues sont diffrentes

9 mars 2016

0100
+0100

4
+ 4

1000

1100
+1011

(4)
+ (5)

0111

7
Circuits logiques - JP David

48

12

Un peu darithmtique ()

Un peu darithmtique ()
LE DBORDEMENT ()
Pour viter le dbordement, il faut choisir un nombre bits plus
grand. On procde alors lextension signe des oprandes :
Pour les nombres positifs, on met un ou plusieurs 0 devant
Pour les nombres ngatifs, on met un ou plusieurs 1 devant
0100
+0100

00100
+00100

1000

01000

100
+1011

11100
+11011

0111

10111
Circuits logiques - JP David

9 mars 2016

LE DCALAGE
Chaque dcalage droite correspond une division par
deux :
10101101
1 0 1 0 1 1 0,1
1 0 1 0 1 1,0 1
1 0 1 0 1,1 0 1
1 0 1 0,1 1 0 1
1 0 1,0 1 1 0 1
1 0,1 0 1 1 0 1

49

9 mars 2016

Un peu darithmtique ()

LA MULTIPLICATION
Un exemple simple (entiers positifs non signs):

2,703125
5,406250
10,812500
21,625000
43,250000
86,500000
173,000000

1101
0110

Circuits logiques - JP David

13
6

0000
11010
110100
0000000

1001110
9 mars 2016

50

Circuits logiques - JP David

Un peu darithmtique ()

LE DCALAGE
Chaque dcalage gauche correspond une multiplication
par deux :
1 0,1 0 1 1 0 1
1 0 1,0 1 1 0 1
1 0 1 0,1 1 0 1
1 0 1 0 1,1 0 1
1 0 1 0 1 1,0 1
1 0 1 0 1 1 0,1
10101101

173,000000
86,500000
43,250000
21,625000
10,812500
5,406250
2,703125

51

9 mars 2016

Circuits logiques - JP David

78
52

13

Un peu darithmtique ()

Un peu darithmtique ()
LA DIVISION
Un exemple simple (entiers positifs non signs):

LA MULTIPLICATION ()
Quelques exemples
10001
11111

11101
10111

11001
11001

01011
10101

1001110
110000
011100
11000
00110
110
000

53

Circuits logiques - JP David

9 mars 2016

9 mars 2016

Un peu darithmtique ()
LA DIVISION
110

1101010

78

1101

13

donne

donne

reste

reste

Circuits logiques - JP David

54

Virgule fixe
La reprsentation en virgule fixe signifie que
lon fixe le nombre de bits de la partie
fractionnaire

Quelques exemples
1101110

110

111

Ex : 5 bits dentier + 3 bits aprs la virgule

Pour les additions soustractions


1011001

101

1001100

Aucun changement

100

Pour les multiplications/divisions


Ajuster la virgule et tronquer/arrondir
9 mars 2016

Circuits logiques - JP David

55

9 mars 2016

Circuits logiques - JP David

56

14

Exemples en virgule fixe

Ladditionneur

En virgule fixe 5.3

A et B : cumulande et cumulateur

9.375 + 20.875 = 1/8 (75 + 167)

Addition de deux bits

01001.011(2) + 10100.111(2)

(demi-additionneur
binaire)

= 0.001(2) (01001011(2) + 10100111(2)) = 0.001(2) (11110010(2))


= 11110.010(2)

S : somme

A B

0
0

0
1

0
1

0
0

= 0.000001(2) x (01001011(2)10100111(2))

= 0.000001(2) (11000011101101(2)) = 11000011.101101(2) (virgule fixe 10.6)

9.375 x 20.875 = (1/8) x 75 x (1/8) x 167 = (1/8)2 x 75 x 167


01001.011(2) X 10100.111(2)
= (0.001(2) x 01001011(2)) x (0.001(2) 10100111(2))

R : retenue

S = A B

R = AB

A
B

Ce qui donnerait en format 5.3 : 00011.101 (2), on aurait donc un dbordement


Circuits logiques - JP David

9 mars 2016

57

Ladditionneur
rn 1

r3

an 1 L a3
+
rn

bn 1 L b3
sn 1

an-1 bn-1

a2
rn-1

binaire
complet

a2

a1
b1
s1

a1

b0

a0

b0
r0 = 0

s1

Circuits logiques - JP David

aibi

Additionneur binaire complet

s0

r1

s2

Addition de deux
nombres binaires
:

a0

b1

r2

rn sn-1 Additionneur

r1

s2

b2

r3

9 mars 2016

L s3

58

Ladditionneur

r2

b2

Circuits logiques - JP David

9 mars 2016

s0

ri

ai

bi

si

ri +1

0
0

0
0

0
1

0
1

0
0

0
0

1
1

0
1

1
0

0
1

1
1

0
0

0
1

1
0

0
1

ri

00

01

11

10

si = ri ai bi + ri ai bi + ri ai bi + ri ai bi
aibi

ri

00

01

11

10

ri +1 = ri ai + ri bi + ai bi
59

9 mars 2016

Circuits logiques - JP David

60

15

Ladditionneur

Ladditionneur
ai

si = ri ai bi + ri ai bi + ri ai bi + ri ai bi

) (

= ri ai bi + ai bi + ri ai bi + ai bi

bi

= ri ( ai bi ) + ri ( ai bi ) = ri ( ai bi )

aibi

ri +1 = ri ai + ri bi + ai bi ou ri ai bi + ri ai bi + ai bi

= ri ai bi + ai bi + ai bi
ri

= ri ( ai bi ) + ai bi

si = ri ( ai bi )

ri

00

01

11

10

ri +1 = ri ( ai bi ) + ai bi

Inconvnient : Dlai de propagation des


retenues
Circuits logiques - JP David

9 mars 2016

61

Circuits logiques - JP David

9 mars 2016

Ladditionneur

Ladditionneur
Circuit danticipation des retenues pour un additionneur 4 bits

Circuit danticipation des retenues

(avec r0= 0)

( Carry Lookahead Network )

r1
g0
p1
g1
p2
g2
p3
g3

ri +1 = ri pi + g i o pi = ai bi (ou bien ai + bi ) et g i = ai bi

r1 = r0 p0 + g0
r2 = r1 p1 + g1 = ( r0 p0 + g0 ) p1 + g1 = r0 p0 p1 + g0 p1 + g1
r3 = r2 p2 + g 2 = ( r0 p0 p1 + g0 p1 + g1 ) p2 + g 2 = r0 p0 p1 p2 + g0 p1 p2 + g1 p2 + g 2

r2

r3

rn = r0 p0 p1 p2 L pn 1 + g 0 p1 p2 L pn 1 + g1 p2 L pn 1 + g 2 p3 L pn 1 + L

r4

L + g n 4 pn 3 pn 2 pn 1 + g n 3 pn 2 pn 1 + g n 2 pn 1 + g n 1

9 mars 2016

Circuits logiques - JP David

62

63

9 mars 2016

Circuits logiques - JP David

64

16

Ladditionneur
Additionneur 4 bits
a0

(avec r0= 0)

a1

a2

b0

Le soustracteur

b2

b1

a3

Arithmtique binaire : application du complment deux


[ an1 an2 L a2 a1 a0 ] [bn1bn 2 Lb2 b1b0 ]
Ralisation de la

s0

b3

soustraction
s1

bn-1

b2

an-1

s2

a2
rn-1

s3
g0

p1

g1

p2

g2

p3

r2

r3

r4

rn sn-1

r4

Circuits logiques - JP David

9 mars 2016

b0

a1

r3

a0

r2

r1

r0 = 1

g3

Circuit danticipation des retenues


r1

b1

65

9 mars 2016

s2

s1

Circuits logiques - JP David

s0

66

Ladditionneur/soustracteur
Unit arithmtique binaire avec commande de
lopration
bn-1

b2

an-1

a2
rn-1

rn sn-1

b1

b0

a1

r3

a0

r2

r1

s2

0 , addition
c=
1 , soustraction

r0

s1

s0

d
dtection de dbordement
9 mars 2016

Circuits logiques - JP David

67

17

You might also like