ecole polytechnique universitaire de montpellier ... · 2 copyright © epum/lirmm notion de code...

82
Copyright © Epum/Lirmm 1 Ecole Polytechnique Universitaire de Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier UMR 5506 Université Montpellier II / CNRS 161 rue Ada, 34392 Montpellier cedex 05, FRANCE Arithmétique binaire

Upload: others

Post on 12-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm1

Ecole Polytechnique Universitaire de MontpellierUniversité Montpellier II

Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE

Laboratoire d'Informatique, de Robotique et de Microélectronique de MontpellierUMR 5506 Université Montpellier II / CNRS

161 rue Ada, 34392 Montpellier cedex 05, FRANCE

Arithmétique binaire

Page 2: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm2

Notion de code

Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles. On appelle codage de I à l'aide des éléments de C une application injective

de I dans C* ou C* est l'ensemble des suites ordonnées de 1, 2, ..., m, ... symboles.

Si toutes les informations sont représentées à l'aide d'une suite de n symboles de C (codage en longueur fixe), et si C contient b symboles, on peut représenter bn informations différentes.

I1I2I3I4

C

x1x2…xn

C*

bn élémentsxi {,, …}

Ib éléments

Page 3: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm3

Représentation des nombres

Dans les systèmes de numération on attribue en général une significationà la position des symboles. Considérons, par exemple, un nombre quis'exprime dans un système de numération de base b par:

(A)b = a5 a4 a3 a2 a1 a0

Chaque chiffre ai peut prendre une valeur entière comprise entre 0 et (b-1).Cette représentation symbolique représente en fait le nombre positif:

A = a5b5 + a4b4 + a3b3 + a2b2 + a1b1 + a0b0

A = ai.bi

Les nombres exprimés dans la base 2 ou « nombres binaires » ont un intérêttous particulier pour les calculateurs électroniques du fait qu'ils ne font intervenirque deux valeurs (0,1).

i=0

n-1

Page 4: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm4

Représentation des nombres rationnels (Virgule fixe)

(A)b = a3 a2 a1 a0 , a-1 a-2

A = a3b3 + a2b2 + a1b1 + a0b0 + a-1b-1 + a-2b-2

Page 5: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm5

Conversion de bases

Méthode polynomiale :- Exprimer le nombre (N)b1 en polynôme avec dans le polynôme desnombres exprimés dans la base b2,- Evaluer le polynôme en utilisant l'arithmétique de la base b2.

Exemple : Soit un nombre binaire (1011101).Expression polynomiale:

A = 1*26 + 0*25 + 1*24 + 1*23 + 1*22 + 0*21 + 1*20

(A)10 = 1*64 + 0*32 + 1*16 + 1*8 + 1*4 + 0*2 + 1*1= 93

(A)8 = 1*100 + 0*40 + 1*20 + 1*10 + 1*4 + 0*2 + 1*1= 135

(A)3 = 1*2101 + 0*1012 + 1*121 + 1*22 + 1*11 + 0*2 + 1*1= 10110

Page 6: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm6

Conversion de bases

Exemple : Soit un nombre binaire (1011,101).Expression polynomiale:

A = 1*23 + 0*22 + 1*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3

(A)10 = 1*8 + 0*4 + 1*2 + 1*1 + 1*1/2 + 0*1/4 + 1*1/8= 11 + 5/8= 11,625

(A)8 = 1*10 + 0*4 + 1*2 + 1*1 + 1*1/2 + 0*1/4 + 1*1/10= 13 + 5/10= 13,5

(A)3 = 1*22 + 0*11 + 1*2 + 1*1 + 1*1/2 + 0*1/11 + 1*1/22= 102 + 12/22 = 102,121212 ...

Page 7: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm7

Conversion de bases

Méthode itérative :Soit A la représentation d'un nombre entier positif dans la base 10. Pourobtenir sa représentation dans la base b quelconque il suffit de diviser Apar b, puis le quotient par b, jusqu'à ce que le quotient devienne nul. Lesrestes successifs lu de bas en haut sont la représentation de A dans labase b.

A = a3b3 + a2b2 + a1b1 + a0= b(a3b2 + a2b1 + a1) + a0 = bQ1 + a0

Q1 = b(a3b1 + a2b0) + a1 = bQ2 + a1Q2 = ba3 + a2 = bQ3 + a2Q3 = a3

Le passage d'une base quelconque à la base décimale par la méthode algorithmique est simple l'inverse l'étant moins. Une solution pour réaliser ce passage (base 10 à base quelconque) est d'appliquer une méthode itérative.

base b1 => expression décimale (base 10) => base b2

Page 8: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm8

Conversion de bases

Exemple :29 en base 2 29 en base 8

29 = (14*2) + 1 29 = (3*8) + 514 = (7*2) + 0 3 = (0*8) + 37 = (3*2) + 1 3 = (1*2) + 1 (29)10 = (35)81 = (0*2) + 1

(29)10 = (11101)2

Page 9: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm9

Conversion de bases

Cas particulier de la base 2 :La conversion du système décimal au système binaire peut s'effectueren remarquant que le reste de la division est 0 ou 1 selon que ledividende est pair ou impair.La conversion décimale binaire peut donc être représentée plussimplement en écrivant les quotients de droite à gauche; on écrit “ 1 ”sous chaque quotient impair et “ 0 ” sous chaque quotient pair.

Exemple : Conversion de (29)10 en binaire1 3 7 14 291 1 1 0 1 => (29)10 = (11101)2

Page 10: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm10

Conversion de bases

Relations entre la base 2 et la base 8.Les bits sont pris 3 par 3 et exprimés en décimal pour obtenir lenombre octal.Relations entre la base 2 et la base 16.Les bits sont pris 4 par 4 et exprimés en hexadécimal pour obtenir le nombre hexadécimal.

Exemple : N2 = 11101=> N8 = 35 (011 101)=> N16 = 1D (0001 1101)

Compte tenu de la facilité de conversion entre les base 2, 8 et 16 (puissances de 2), les bases 8 (octal) et 16 (hexadécimal) sont exploitées pour représenter les nombres binaires sous forme plus synthétique.

Page 11: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm11

Représentation des nombres négatifs

22 21 20 N 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 -0 1 0 1 -1 1 1 0 -2 1 1 1 -3

Signe + Valeur absolue

Page 12: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm12

Complément à b-1

Définition: Le complément à la base - 1 d'un nombre exprimé dans une base b est le résultat de la soustraction de ce nombre du radical -1:

Si N est un nombre exprimé sur n digits, Cb-1(N) = bn- N - 1

• C9(5230) = 10000-5230-1 = 9999-5230 = 4769 • C1 (1010) = 10000-1010-1 = 1111-1010 = 0101

Le complément à b-1 d'un nombre peut être obtenu encomplémentant à la base -1 chaque digits.

• C9(5230) = 4769 • C1(1010) = 0101

Représentation des nombres négatifs

Page 13: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm13

Complément à b-1

Représentation des nombres négatifs

22 21 20 N 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 -3 1 0 1 -2 1 1 0 -1 1 1 1 -0

Page 14: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm14

Complément à b

Définition: Le complément à la base (b) d'un nombre exprimédans une base b est le résultat de la soustraction de ce nombredu radical:

Si N est un nombre exprimé sur n digits, Cb(N) = bn- N

• C10(5230) = 10000-5230 = 4770 • C2 (1010) = 10000-1010 = 0110

Le complément à b d'un nombre peut être obtenu en passantpar le complément à b-1 : Cb(N) = Cb-1(N) + 1

• C10(5230) = 4769 + 1 = 4770• C2(1010) = 0101 + 1 = 0110

Le complément à b d'un nombre peut être obtenu par unalgorithme de scrutation/complémentation

Représentation des nombres négatifs

Page 15: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm15

Complément à b

le complément à b d'un nombre peut être obtenu par unalgorithme de scrutation/complémentation

- Scruter le nombre à partir de la droite

- Tant que les digits rencontrés sont à 0, les conserver

- Complémenter à b le premier digit non nul

- Complémenter à b-1 tous les digits suivants

C10(5230) = 4770 C2(1010) = 0110

Représentation des nombres négatifs

Page 16: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm16

Complément à b

Représentation des nombres négatifs

22 21 20 N 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 -4 1 0 1 -3 1 1 0 -2 1 1 1 -1

A = - an-1.bn-1 + ai.bii=0

n-2

Page 17: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm17

0 1 264 ?

Complexité

264 = 1.8 10191.8 1019

106 * 3600 * 24 * 365= 584 942 années

Page 18: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm18

Synthèse : Algorithme / Structure

E0

En

S0...

Sn

.

.

.

Table de vérité => Impossible

=> Parallélisation

=> Récurrence

=> Algorithme

=> Structure itérative

Page 19: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm19

A

X

YS si A=0 alors S=X

si A=1 alors S=Y

000001010011100101110111

0011

1

10

0

AXY S

B2 B2n

2n

8=

0 0 11

0 1 1 0

00 01 11 10

0

1

AXYS

S = AX+AY

S

A

X

Y

0

1

Multiplexeurs

0

1

A

S

X

Y

Page 20: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm20

A

X

YS

m

m0

1

S0

A

Y0 X0

A A

Y1 X1 Ym Xm

S1 Sm

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

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

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

Multiplexeurs

m

Page 21: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm21

A

X

YS

S = AX+AY

A

XY S

S = ABX+ABY+ABZ+ABT

ZT

B A0..An

E0

En

S...

S = A0.A1..An.E(A0..An)2

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

E0 En

A0..An. A0..An.

A0A1A2

0

1

00011011

00...0

11...1

Multiplexeurs

Page 22: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm22

Récurrence - Décodeur de Gray

a3a2a1a0

0000000100100011010001010110011110001001101010111100110111101111

b3b2b1b0

0000000100110010011001110101010011001101111111101010101110011000

b0 = a0 a1b1 = a1 a2b2 = a2 a3b3 = a3

cd

ab 00 01 11 10

00

01

11

10

Page 23: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm23

S0 = A0S1 = A0’.A1 + A0.A1’

A0 A1S2 = (A0+A1)’.A2 + (A0+A1).A2’

(A0+A1) A2S3 = (A0+A1+A2) A3...

Récurrence - Complément à 2

Le complément à 2 d'un nombre peut être obtenudirectement en suivant la procédure suivante:

- Scruter le nombre à partir de la droite- Tant que les bits rencontrés sont à 0, les conserver- Conserver le premier 1- Inverser tous les bits suivants

N = 1010 C2(N) = 0110

S = C2(A)

A=A3 A2 A1A0

S= S3 S2 S1S0

i=1

n-1Sn = Ai An

Page 24: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm24

Fe =1 si A3=B3 et A2=B2 et A1=B1 et A0=B0

Fe =1 si A=B

A=A3 A2 A1A0 B=B3 B2 B1 B0

Fe

00011011

1001

AiBi fifi = AiBi+AiBi

fi = Ai BiFe= (A3 B3) (A2 B2) (A1 B1) (A0 B0)

Récurrence - Comparateur égalité

Page 25: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm25

Fs =1 si (A3>B3) ou (A3=B3 et A2>B2) ou (A3=B3 et A2=B2 et A1>B1)ou (A3=B3 et A2=B2 et A1=B1 et A0>B0)

Fs =1 si A>B

A=A3 A2 A1A0 B=B3 B2 B1 B0

Fs

00011011

0010

AiBi gigi = AiBi

Récurrence - Comparateur supériorité

Fs =(A3B3)+(A3B3 )(A2B2)+(A3B3 )(A2B2 )(A1B1) + (A3B3 )(A2B2 )(A1B1 )(A0B0)

Page 26: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm26

A0A1A2A3

C0C1C2C3C4

S0S1S2S3

Structure itérative

A=A3 A2 A1A0

S= S3 S2 S1S0

Page 27: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm27

A0A1A2A3

C0=0C1C2C3C4

S0S1S2S3

Ci+1 = Ci + Ai

S i = Ai.Ci’ + Ai’. Ci= Ai Ci

Structure itérative - Complément à 2

Ci+1

Ai

Ci

Si

S = C2(A)

A=A3 A2 A1A0

S= S3 S2 S1S0

Page 28: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm28

000 0001 1010 0011 0100 0101 0110 0111 1

Fe =1 si A=B

A=A3 A2 A1A0 B=B3 B2 B1 B0

Fe

A0B0A1B1A2B2A3B3

C0C1C2C3C4Fe

Ci+1 = 1 si Ai=Bi et Ci=1AiBiCi Ci+1

Ci+1 = AiBiCi+AiBiCi= Ci(Ai Bi)

Co=1

0 1 00

0 1 0

00 01 11 10

0

1

AiBiCi

Ci+1

0

Structure itérative - Comparateur égalité

Page 29: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm29

A0B0A1B1A2B2A3B3

C0=1C1C2C3C4Fe ====

Ci+1

Ai Bi

Ci

Structure itérative - Comparateur égalité

Ci+1 = AiBiCi+AiBiCi= Ci(Ai Bi)

Page 30: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm30

000 0001 1010 0011 0100 1101 1110 0111 1

A0B0A1B1A2B2A3B3

C0C1C2C3C4Fs

Ci+1 = 1 si Ai>Bi ou (Ai=Bi et Ci=1)AiBiCi Ci+1

Ci+1 = AiBi+AiCi+ BiCi

Co=0

0 1 00

1 1 1 0

00 01 11 10

0

1

AiBiCi

Ci+1

Fs =1 si A>B

A=A3 A2 A1A0 B=B3 B2 B1 B0

Fs

Structure itérative - Comparateur supériorité

Page 31: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm31

Ci+1

Ai Bi

Ci

A0B0A1B1A2B2A3B3

C0=0C1C2C3C4Fs >>>>

Structure itérative - Comparateur supériorité

Ci+1 = AiBi+AiCi+ BiCi

Page 32: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm32

000 0 0001 0 1010 0 1011 1 0100 0 1101 1 0110 1 0111 1 1

Ci+1 = 1 si retenueAiBiCi Ci+1 Si

Ci+1 = AiBi + AiCi + BiCi

Co=0

0 0 01

1 1 1

00 01 11 10

0

1

AiBiCi

Ci+1

0

A0B0A1B1A2B2A3B3

C0C1C2C3C4

S0S1S2S3

Ci+1 = AiBi + Ci ( Ai Bi)

S i = Ai Bi Ci

Additionneur

S = A + B

A=A3 A2 A1A0 B=B3 B2 B1 B0

S=R S3 S2 S1S0

Page 33: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm33

A0B0A1B1A2B2A3B3

C0=0C1C2C3C4

+ + + +S0S1S2S3

Ci+1

Ai Bi

Ci

Si

Additionneur

Ci+1 = AiBi + AiCi + BiCi

Ci+1 = AiBi + Ci ( Ai Bi)

S i = Ai Bi Ci

Page 34: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm34

A0A1A2A3

C0C1C2C3C4

S0S1S2S3

A0 0A1 0A2 0A3 0

C0=1C1C2C3C4 + + + +S0S1S2S3

Ci+1 = AiBi + Ci ( Ai Bi)

S i = Ai Bi Ci

Ci+1 = Ai 0 + Ci ( Ai 0)

S i = Ai 0 Ci

Ci+1 = Ci.Ai

S i = Ai Ci

Incrémenteur

S = A + 1

A=A3 A2 A1A0

S=R S3 S2 S1S0

Page 35: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm35

A0A1A2A3

C0=1C1C2C3C4 +1 +1 +1 +1

S0S1S2S3

Ci+1

Ai

Ci

Si

Ci+1 = Ci.Ai S i = Ai Ci

Incrémenteur

Page 36: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm36

000 0 0001 1 1010 1 1011 1 0100 0 1101 0 0110 0 0111 1 1

Ci+1 = 1 si retenueAiBiCi Ci+1 Si

Ci+1 = AiBi + AiCi+BiCi

Co=0

0 1 11

0 1 0

00 01 11 10

0

1

AiBiCi

Ci+1

0 Ci+1 = AiBi + Ci ( Ai Bi)

S i = Ai Bi Ci

A0B0A1B1A2B2A3B3

C0C1C2C3C4

S0S1S2S3

+ + + +- - - -

Soustracteur

S = A - B

A=A3 A2 A1A0 B=B3 B2 B1 B0

S=R S3 S2 S1S0

Page 37: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm37

A1B1A2B2A3B3

C2C3C4

- - -

A0B0

C0=0C1

-S0S1S2S3

si A>B alors C4=0si A<B alors C4=1

+ + + +- - - -

Ci+1

Ai Bi

Ci

Si

Soustracteur

Ci+1 = AiBi + AiCi+BiCi

Ci+1 = AiBi + Ci ( Ai Bi)

S i = Ai Bi Ci

Page 38: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm38

Ci+1

Ai Bi

Ci

Ai Bi

CiCi+1

Ci+1 = AiBi + Ci ( Ai Bi)S i = Ai Bi Ci

Ci+1 = AiBi + Ci ( Ai Bi)S i = Ai Bi Ci

AiBi

CiCi+1 -Si

AiBi

CiCi+1 +Si

+ -

Soustracteur

Page 39: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm39

A1B1A2B2A3B3

C2C3C4

- - -

A0B0

C0=0C1

-S0S1S2S3

C2C3C4

+ + +

A1B1A2B2A3B3 A0B0

C0=0C1

+S0S1S2S3

+ - + - + - + -

Soustracteur

Page 40: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm40

Relations Soustracteur / Complément à 1

C1 (C1(A) + B) = C1 (2n - 1 - A + B)

= 2n - 1 - 2n + 1 + A – B

= A - B

C2C3C4 + + +

A1B1A2B2A3B3 A0B0

C0=0C1 +

S0S1S2S3

+ - + - + - + -

XC1(X)2n-1

1000+ 0111= 1111

C1(X) = 2n -1-X

Page 41: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm41

A0A1A2A3

C0C1C2C3C4

S0S1S2S3

A0 0A1 0A2 0A3 0

C0=1C1C2C3C4 + + + +S0S1S2S3

Ci+1 = AiBi + Ci ( Ai Bi)S i = Ai Bi Ci

Ci+1 = Ai 0 + Ci ( Ai 0)S i = Ai 0 Ci

Ci+1 = Ci Ai S i = Ai Ci

Décrémenteur

S = A - 1

A=A3 A2 A1A0

S=R S3 S2 S1S0

Page 42: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm42

A0A1A2A3

C0=1C1C2C3C4 +1 +1 +1 +1

S0S1S2S3

Ci+1

Ai

Ci

Si

Ci+1

Ai

Ci

Si

Ci+1 = Ci Ai S i = Ai Ci S i = Ai Ci

Décrémenteur

Ci+1 = Ci Ai

Page 43: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm43

Additionneur / soustracteur

s1s2s3

r0r1r2r3++ +

r4+

s0

a0 b0a1 b1a2 b2a3 b3

Op

Op = 0 => A + BOp = 1 => A - B

Page 44: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm44

Additionneur à carry anticipée

L'inconvénient de la structure précédente est le temps nécessaire à la réalisation de l'addition. Ce temps est en effet conditionné par la propagation de la retenue à travers tous les additionneurs élémentaires.

Dans un additionneur à carry anticipée on évalue en même temps la retenue de chaque étage. Pour cela on détermine pour chaque étage les quantités Pi et Gi suivantes: Pi= Ai Bi (propagation d'une retenue) Gi = AiBi (génération d'une retenue)

Page 45: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm45

Pi= Ai Bi (propagation d'une retenue)Gi = AiBi (génération d'une retenue)

La retenue entrante à l'ordre i vaut 1 si :- soit l'étage i-1 a généré la retenue (Gi-1 = 1)- soit l'étage i-1 a propagé la retenue générée à l'étage i-2 (Pi-1=1 et Gi-2=1)- soit les étages i-1 et i-2 ont propagé la retenue générée à l'étage i-3 (Pi-1=Pi-2=1 et Gi-3=1)..........- soit tous les étages inférieurs ont propagé la retenue entrante dans l'additionneur (Pi-1=Pi-2=...=P0=C0=1).

Ci = Gi-1 + Pi-1.Gi-2 + Pi-1.Pi-2.Gi-3 +................+ Pi-1.Pi-2.Pi-3....P0.C0

C1 = G0 + P0.C0C2 = G1 + P1.G0 + P1.P0.C0C3 = G2 + P2.G1 + P2.P1.G0 + P2.P1.P0.C0C4 = G3 + P3.G2 + P3.P2.G1 + P3.P2.P1.G0 + P3.P2.P1.P0.C0

Additionneur à carry anticipée

Page 46: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm46

Additionneur à carry anticipée

C0

G0P0G1P1G2P2G3P3

C4

s0s1s2s3

C3 C2 C1

G.P. G.P. G.P. G.P.

C.L.U.

a0b0a1b1a2b2a3b3

Page 47: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm47

C4 C3 C2 C1

C0

P3 G3 P2 G2 P1 G1P0 G0

Bloc CLU

Page 48: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm48

Additionneur Algébrique

Un nombre binaire signé de N bits peut se coder sur N+1 bits, le bit depoids fort servant à représenter le signe. (0 correspond à un nombrepositif, 1 à un nombre négatif.

Si la partie significative du nombre est représentée en valeur absolue,l'opération de soustraction est relativement complexe (elle nécessite laconnaissance du plus grand des deux nombres, la modification de cenombre au cours de la soustraction, etc...)

Un moyen d'éviter ce processus pour effectuer une soustraction est d'utiliser un codage particulier (Complément) pour représenter les nombres négatifs.

Page 49: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm49

Additionneur Algébrique

Comparateur

Additionneur / Soustracteur

Sa|A| Sb|B|

Signe

AA BB

|R|

R = A + B avec A et B positifs ou négatifs

Sr

Page 50: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm50

Additionneur Algébrique

7655- 2425

= 0 5230

2425- 7655

= 9 4770

Code de – 5230 ???

C10 (94770) = 05230

Page 51: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm51

Addition en complément à b

Le digit de retenue de l'addition doit être ignoré dans tous lescas. Le résultat de l'addition est la valeur attendue. Ce résultatpeut être positif ou négatif

Si le digit de signe du résultat vaut 0, le nombre obtenu estpositif et codé en décimal sur les digits significatifs. Si le digit designe du résultat vaut b-1, le nombre obtenu est négatif et codéen complément à b.

En utilisant un codage en complément à b pour les nombres négatifs, l'opération de soustraction se transforme en une simple opération d'addition binaire

A = A + bn (tronqué sur n bits)

A – B = A + bn – B

A – B = A + Cb(B) { Cb(B) = bn – B }

Page 52: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm52

Addition en complément à 2

Cas 1 : M>0 et N>0 S = M + NRésultat = M + N

Cas 2 : M>0 et N<0On effectue donc l'addition M + (2n - N).

S = (M - N) + 2n

= M - N (sur n bits)

M-N >0 => Résultat = S M-N<0 => Résultat = - (N - M)

= - (2n - M + N) sur n bits= - (2n - S) = - C2(S)

Page 53: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm53

Addition en complément à 2

Cas 3 : M<0 et N<0On effectue donc l'addition (2n - M) + (2n - N).

S = (- M - N) + 2n + 2n

= - M - N (sur n bits)

Résultat = - (N + M) = - (2n + M + N) sur n bits= - (2n - S)= - C2(S)

Page 54: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm54

Additionneur Algébrique

Codage Codage

Décodage

Additionneur

Sa|A| Sb|B|

Sr|R|

R = A + B avec A et B positifs ou négatifs

Page 55: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm55

Base 10 - Addition en complément à10

225 = 0225 = 0225 -110 = - 0110 = +9890

-------10115 Signe=0 =>R= + 115

-225 = - 0225 = 9775 +110 = +0110 = +0110

-------09885 Signe=9 =>R= - C10(885) = - 115

Page 56: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm56

Base 2- Addition en complément à 2

14 = 01110 14 = 01110-13 =-01101 +(-13) = 10011

-------100001 Signe=0 =>R=(00001)2=(1)10

13 = 01101 13 = 01101-14 = -01110 +(-14) = 10010

-------011111 Signe=1 => R= -C2(11111)2

= -(00001)2= -(1)10

Page 57: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm57

Dépassement de capacité

Remarque: Le résultat de l'opération doit être inférieure à 2N, c'est à dire qu'en valeur absolue sa représentation binaire comporte N bits au plus. Les cas qui peuvent poser problèmes sont ceux ou le signe des deux opérandes de l'addition est identique.

15 = 01111 15 = 01111+ 2 = + 00010 + 2 = 00010

-------10001 Signe=1 => R=-C2(10001)2

=-(01111)2=-(15)10

Overflow = S(A).S(B).S(R) + S(A).S(B).S(R)

Page 58: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm58

Additionneur/Soustracteur Algébrique

A - B = A + C2 (B) = A + C1 (B) + 1

A0B0A1B1A2B2A3B3

OpC1C2C3C4

+ + + +S0S1S2S3

Op = 1 <=> - , Op = 0 <=> +

C0

Page 59: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm59

Addition en complément à b-1

En utilisant un codage en complément à b-1 pour les nombres négatifs, l'opération de soustraction se transforme en une simple opération d'addition binaire [A-B = A+(-B)] mais le résultat final n'est obtenu qu'après addition de la retenue au résultat partiel.

A = A + bn (tronqué sur n bits)

A – B = A + bn – B

A – B = A + Cb-1(B) + 1 { Cb-1(B) = bn – B - 1}

Le bit de retenue de l'addition doit être ignoré. Si ce bit vaut 0, lerésultat de l'addition est la valeur attendue. Si ce bit est différentde 0, le résultat attendu est le résultat de l'addition plus de ce bitde retenue. Le résultat final peut être positif ou négatif.

Si le bit de signe du résultat final vaut 0, le nombre obtenu estpositif et codé en binaire naturel sur les bits significatifs. Si le bitde signe du résultat final vaut b-1, le nombre obtenu est négatifet codé en complément à b-1.

Page 60: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm60

Base 10 - Addition en complément à 9

225 = 0225 = 0225 -110 = - 0110 = +9889

-------10114+ 1-------0115 Signe=0 =>R= + 115

-225 = - 0225 = 9774 +110 = +0110 = +0110

-------09884 + 0-------9884 Signe=9 =>R= - C9(884) = - 115

Page 61: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm61

Base 2 – Addition en complément à 1

14 = 01110 14 = 01110-13 =-01101 +(-13)= 10010

-------100000+ 1-------00001 Signe=0 => R=(00001)2=(1)10

13 = 01101 13 = 01101-14 = -01110 +(-14)= 10001

-------011110+ 0-------11110 Signe=1 => R=-C1(11110)2

=-(00001)2 =-(1)10

Page 62: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm62

Addition en complément à 1

Cas 1 : M>0 et N>0 S = M+N=> Résultat = M + N

Cas 2 : M>0 et N<0On effectue donc l'addition M + (2n-1-N).Si le résultat S est inférieur à 2n (bit de retenue à 0) on obtient:

S1 = M + (2n-1 - N)S2 = S1 + 0

C1(S2) = 2n-1 - (M - N + 2n-1)= N - M (Cas /M/ < /N/)

=> Résultat: R = -C1(S2) Si le résultat est supérieur à 2n (bit de retenue à 1) et si l'on ignore le bit de retenue(résultat - 2n) on obtient :

S1 = M + (2n-1 - N) - 2n= M - N - 1

S2 = S1 + 1= M - N (Cas /M/ > /N/)

=> Résultat: R = S2

Page 63: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm63

Addition en complément à 1

Cas 3 : M<0 et N<0 => signe(M)=signe(N)=1=> retenue = 1

On effectue donc l'addition (2n-1-M) + (2n-1-N).Le résultat est supérieur à 2n (bit de retenue à 1).Si l'on ignore le bit de retenue (résultat - 2n) onobtient :

S1 = (2n-1 - M) + (2n-1 - N) - 2n

= - M - N + 2n - 1 -1S2 = S1 + 1

= - M - N + 2n - 1C1(S2) = 2n-1 - (- M - N + 2n-1)

= M + N=> Résultat: R = -C1(S2)

Page 64: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm64

Dépassement de capacité

Remarque: Le résultat de l'opération doit être inférieure à 2N, c'est à dire qu'en valeur absolue sa représentation binaire comporte N bits au plus. Les cas qui peuvent poser problèmes sont ceux ou le signe des deux opérandes de l'addition est identique.

15 = 01111 15 = 01111+ 2 = +00010 + 2 = 00010

-------10001+ 0-------10001 Signe=1 => R=-C1(10001)2

=-(01111)2=-(15)10

Overflow = S(A).S(B).S(R) + S(A).S(B).S(R)

Page 65: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm65

Multiplication par bn

i=-m

n(N)b = pibi = (pn pn-1 ... p1 p0 , p-1 p-2 ... p-m)b

(pn pn-1 ... p1 p0 p-1 ... p-k , p-k-1 ... p-m)b = pibi+k

i=-m

n

pibi+k = bk *pibi = bk *(N)bi=-mi=-m

nn

Ecriture d ’un nombre n en base b :

Décalage de k positions vers la gauche :

Multiplication par une puissance de 2 => décalage

Page 66: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm66

Multiplication binaire

1 1 0 0 Multiplicande1 1 0 1 Multiplieur---------

1 1 0 0 Produit partiel0 0 0 0 Produit partiel

1 1 0 0 Produit partiel1 1 0 0 Produit partiel

-------------------1 0 0 1 1 1 0 0

1 2* 1 3--------

3 61 2

--------1 5 6

Page 67: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm67

A3 B0 A2B0 A1B0 A0B0

A3 B1 A2B1 A1B1 A0B1

A3 B2 A2B2 A1B2 A0B2

A3 B3 A2B3 A1B3 A0B3

P1P2P3P4

P1 + P2 = R1 => R1 + P3 = R2 => R2 + P4 = S

+

Ri Ai-1Bj

Ri+1

Multiplieur

S = A * B

A=A3 A2 A1A0 B=B3 B2 B1 B0

S=S7S6S5S4S3 S2 S1S0B3 B2 B1 B0

A3 A2 A1 A0

*

S7 S6 S5 S4 S3 S2 S1 S0

Page 68: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm68

A3 B0 A2B0 A1B0 A0B0

A3 B1 A2B1 A1B1 A0B1

A3 B2 A2B2 A1B2 A0B2

A3 B3 A2B3 A1B3 A0B3

S7 S6 S5 S4 S3 S2 S1 S0

+ + + +

+ + + +

+ + + +

B0

B1

B2

B3

A0A1A2A3

A0A1A2A3

A0A1A2A3

A0A1A2A3

0

0

0

0

Multiplieur

Page 69: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm69

Complément à 2

Multiplieur en complément à 2

22 21 20 N 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 -4 1 0 1 -3 1 1 0 -2 1 1 1 -1

A = - an-1.2n-1 + ai.2ii=0

n-2

Page 70: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm70

Multiplieur en Complément à 2

X = - xn-1.2n-1 + xi.2ii=0

n-2

432

03

33

2

0

2

0

2

0

633

7

2

03

333

2

0

332

0

2

0

633

2

03

33

2

0

32

0

2

0

633

2

0

33

2

0

33

22'.2'.222

12)'.(2212'.2222

2)(22)(222.

22

22

ii

i

i

ii

ji

ij

ji

ii

i

i

ii

ji

ij

ji

ii

i

i

ii

ji

ij

ji

i

ii

i

ii

)b(a)b(ababa

ba)b(ababa

babababaBA

aaA

bbB

=> -X = -2n + C1(X) + 1

C2(X) = 2n - X

Page 71: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm71

Multiplieur en Complément à 2

= a0b020 + a1b021 + a2b022

+ a0b121 + a1b122 + a2b123

+ a0b222 + a1b223 + a2b224

+ a0b323 + a1b324 + a2b325

+ a3b023 + a3b124 + a3b225

+ 24 + a3b326 - 27

Page 72: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm72

Multiplieur en Complément à 2

P7 P6 P5 P4 P3 P2 P1 P0

+ + + +

+ + + +

+ + + +

A0B0A1B0A2B0A3B0

A0B1A1B1A2B1A3B1

A0B2A1B2A2B2A3B2

A0B3A1B3A2B2A3B3

1

0

0

0

Signe

Page 73: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm73

Multiplieur en Complément à 2

33

333

2

03

33

2

0

63

63

72

0

2

0

633

33

333

2

03

33

2

0

63

663

62

0

2

0

633

663

63

33

333

2

03

33

2

0

63

63

2

0

2

0

633

2

0

33

32

0

33

32

0

2

0

633

2

03

32

03

32

0

2

0

633

2

0

33

2

0

33

222'2'2'2'222

222'2'2'22'222

22'2or

222'2'2222

12)'(2212'2222

2)(22)(222.

22

22

ab)b(a)b(abababa

ab)b(a)b(abababaP

aa

ab)b(a)b(abababa

ba)(abbaba

baabbabaBAP

aaA

bbB

ii

i

i

ii

ji

ij

ji

ii

i

i

ii

ji

ij

ji

ii

i

i

ii

ji

ij

ji

ii

i

i

ii

ji

ij

ji

ii

i

i

ii

ji

ij

ji

i

ii

i

ii

Page 74: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm74

Multiplieur en Complément à 2

P7 P6 P5 P4 P3 P2 P1 P0

+ + +

+ + +

+ + +

A0B0A1B0A2B0

0

A3B0

00A2B1 A0B1A1B1

+ + +

A0B2A1B2A2B2

+ B3

A3

A3B1

A3B2

+

+

1

B3

A0B3

A3

A1B3A2B2A3B3

ignoré

Signe

Page 75: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm75

1 0 1 1- 1 0 0 1---------------0 0 1 0 0

- 1 0 0 1---------------

0 1 0 0 0- 1 0 0 1

----------------1 0 0 0 0

- 1 0 0 1-----------------

0 1 1 1

1 ,0 0 1

1 0 0 1

1

0

0

1

Soustraction 5 bits

Exemple : 11 / 9

Division Binaire

1 1 9

2 0 1 , 2 2 ...2 0

2

Page 76: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm76

- 0 1 0 0Q R R R R

R R R R

1 0 1 1- 0 1 0 0 10

1 0- 0 1 0 0 10

1 0 1- 0 1 0 0 10

1 0 1 1- 0 1 0 0 11

0 0 1 0 0- 0 1 0 0 10

0 1 0 0 0- 0 1 0 0 10

1 0 0 0 0- 0 1 0 0 11

0 1 1 1 0- 0 1 0 0 11

Si R>B alors Q=1 et R-Bsinon Q=0 et R

Diviseur

S = A / B

A=A3 A2 A1A0 B=B3 B2 B1 B0

S=S7S6S5S4,S3 S2 S1S0

Page 77: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm77

R

+

01

+ -

R B

Si alors

Ci+1 Ci

- Si

B-

R

RSi

CiCi+1+

Bo+ - + - + -

B1B2+ -

B30+ -

0

Bo+ - + - + -

B1B2+ -

B30+ -

0

Bo+ - + - + -

B1B2+ -

B30+ -

0

Bo+ - + - + -

B1B2+ -

B30+ -

0

Bo+ - + - + -

B1B2+ -

B30+ -

0

Bo+ - + - + -

B1B2+ -

B30+ -

0

Bo+ - + - + -

B1B2+ -

B30+ -

0

A3

A2

A1

A0

0

0

0

0 0 0 0

Q3

Q2

Q1

Q0

Q-1

Q-2

Q-3

Diviseur

Page 78: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm78

A0A1A2A3

C0=0C1C2C3C4

S0S1S2S3

Complément à 2 série

Ci+1

Ai

Ci

Si

Ai

Ci+1 Ci

Si

D Q

H

Ai

Ci+1Ci

Si

D Q

H

Page 79: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm79

Additionneur série

D Q

H

Ai

Ci+1Ci

Si

D Q

H

A0B0A1B1A2B2A3B3

C0=0C1C2C3C4 + + + +

S0S1S2S3

Ci+1

Ai Bi

Ci

Si

Ci+1

Ai Bi

Ci

Si

Bi

Page 80: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm80

Multiplieur séquentiel 1

(A) 1110(B) 1011-------------

R2R1 0000 0000 Initialisation de R1 et R2+A*20 1110 b0=1 => on ajoute A*20

-------------R2R1 0000 1110 Décalage de B => B=(0101)+A*21 1 110 b0=1 => on ajoute A*21

-------------R2R1 0010 1010 Décalage de B => B=(0010)+0*22 b0=0 => on ajoute 0*22

-------------R2R1 0010 1010 Décalage de B => B=(0001)+A*23 111 0 b0=1 => on ajoute A*23

-------------R2R1 1001 1010 Fin

Page 81: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm81

Multiplieur séquentiel 2

(A) 1110(B) 1011

---------------R3R2R1 0 0000 0000 Initialisation de R3 R2 R1+A 1110 b0=1 => (R2 + A -> R3R2)

---------------R3R2R1 0 1110 0000 Décalage de R3R2R1R3R2R1 0 0111 0000 Décalage de B => B=(0101) +A 1110 b0=1 => (R2 + A -> R3R2)

---------------R3R2R1 1 0101 0000 Décalage de R3R2R1R3R2R1 0 1010 1000 Décalage de B => B=(0010) +0 0000 b0=0 => (R2 + 0 -> R3R2)

---------------R3R2R1 0 1010 1000 Décalage de R3R2R1R3R2R1 0 0101 0100 Décalage de B => B=(0001) +A 1110 b0=1 => (R2 + A -> R3R2)

---------------R3R2R1 1 0011 0100 Décalage de R3R2R1R3R2R1 0 1001 1010 Fin

Page 82: Ecole Polytechnique Universitaire de Montpellier ... · 2 Copyright © Epum/Lirmm Notion de code Soit I un ensemble fini ou infini d'éléments et C un ensemble fini de symboles

Copyright © Epum/Lirmm82

Multiplieur séquentiel 3

(A) 1110---------------

R3R2R1 0 0000 1011 Initialisation de R3R2R1 (B->R1)+A 1110 b0(R1)=1 => (R2 + A -> R3R2)

---------------R3R2R1 0 1110 1011 Décalage de R3R2R1R3R2R1 0 0111 0101 b0(R1)=1 => (R2 + A -> R3R2) +A 1110

---------------R3R2R1 1 0101 0101 Décalage de R3R2R1R3R2R1 0 1010 1010 b0(R1)=0 => (R2 + 0 -> R3R2) +0 0000

---------------R3R2R1 0 1010 1010 Décalage de R3R2R1R3R2R1 0 0101 0101 b0(R1)=1 => (R2 + A -> R3R2) +A 1110

---------------R3R2R1 1 0011 0101 Décalage de R3R2R1R3R2R1 0 1001 1010 Fin