68
Algèbre de Boole et circuits logiques Eric Eric Garcia Garcia 2002 2002 IUT GTR, Montbéliard Architectures des ordinateurs Cours 3

03.Circuits logiques

Embed Size (px)

DESCRIPTION

Circuits combinatoires logiques

Citation preview

Page 1: 03.Circuits logiques

Algèbre de Boole et circuits logiques

EricEric GarciaGarcia

20022002

IUT GTR, Montbéliard

Architectures des ordinateursCours 3

Page 2: 03.Circuits logiques

PlanPlan

Algèbre de BooleAlgèbre de Boole

Circuits combinatoiresCircuits combinatoires

Circuits séquentiels : basculesCircuits séquentiels : bascules

Application des basculesApplication des bascules

UALUAL

ÉlectroniqueÉlectronique

Page 3: 03.Circuits logiques

Logique des propositionsLogique des propositions

� Proposition = énoncé vrai ou faux

� a : les élèves sont présents� b : le professeur est présent� cours si a et b

� Combinaison par des connecteurs

� ¬¬¬¬ (non logique) ∧∧∧∧ (et logique) ∨∨∨∨ (ou logique non exclusif)

VFFV

¬¬¬¬ pp

F

V

V

V

p ∨∨∨∨ q

FFF

FVF

FFV

VVV

p ∧∧∧∧ qqp

tables de vérités

Page 4: 03.Circuits logiques

Notion ensemblisteNotion ensembliste

R

a

a

R

a b

ba ∪

R

a b

ba ∩

Page 5: 03.Circuits logiques

Passage à l’algèbre de BoolePassage à l’algèbre de Boole

� Il y a d’autres connecteurs et quelques lois dans la logique des propositions : ¬¬¬¬ a ∧∧∧∧ ¬¬¬¬ b = ¬¬¬¬ (a ∨∨∨∨ b)…

V

F

F

F

¬¬¬¬ a ∧∧∧∧ ¬¬¬¬ b

V

F

V

F

¬¬¬¬ b

F

V

V

V

a ∨∨∨∨ b

V

V

F

F

¬¬¬¬ a

VFF

FVF

FFV

FVV

¬¬¬¬ (a ∨∨∨∨ b)ba

� Georges Boole a exprimé la logique des propositions en termes algébriques

� Claude Shannon a proposé : V = 1 et F = 0 aaa

babababa

−=⇒¬⇒∧

+⇒∨

1.

Page 6: 03.Circuits logiques

Algèbre de BooleAlgèbre de Boole

� Il existes 16 fonctions à deux variables : toutes ne sont pas intéressantes

0

1

1

1

0

1

1

0

0

0

0

1

1

0

0

0

1

1

1

0

111

001

010

100

a b ba + ba + ab ab ba ⊕ ba ⊕

Ou exclusif ou xor

Non ou ou nor

Non et ou nand

bababa +=⊕

ba +

ab

Page 7: 03.Circuits logiques

Opérations de baseOpérations de base

� Toutes les fonctions peuvent s’exprimer à l’aide des trois opérations logiques et, ou, non

� Avec n variables on peut construire 2n fonctions� Une fonction à trois variables peut se décomposée en deux

� f(a,b,c) = f(0,b,c) si a=0 et f(a,b,c) = f(1,b,c) si a=1 � f(a,b,c) = a.f(1,b,c) + a.f(0,b,c)

� groupe logique complet = ensemble de fonction à partir desquels il est possible de réaliser toutes les fonctions {et,ou,non}…� Fonctions à n variables décomposables et fonctions à 2 variables exprimable avec {et,ou,non} ⇒ récurrence…

� L’algèbre de Boole se construit sur les booléens à partir des trois opérations internes : +, * et

Page 8: 03.Circuits logiques

Théorèmes et axiomes (1)Théorèmes et axiomes (1)

� Théorème des constantes

� Idempotence

� Complémentation

� Commutativité

aa =+0 00 =×a11=+a aa =×1

aaa =+ aaa =×

1=+ aa 0=×aa

abba +=+ abba ×=×

1=⊕ aa

0=⊕ aa

aa =⊕ 0aa =⊕ 1

abba ⊕=⊕

Page 9: 03.Circuits logiques

Théorèmes et axiomes (2)Théorèmes et axiomes (2)

� Distributivité

� Associativité

))(()( cababca ++=+acabcba +=+ )(

cbacbacba ++=++=++ )()(abccabbca == )()(

� Théorème de De Morgan

baab +=baba ×=+

Page 10: 03.Circuits logiques

Table de vérité et équationTable de vérité et équation

� Pour concevoir un circuit, il faut le modéliser.

� on utilise une table de vérité� on obtient une équation qu’on simplifie (algébrique ou Karnaugh)� on trace le schéma électrique du circuit

� éléments constitutifs d’un ordinateur : exclusivement portes nand ou bien nor (système complet)

� Table de vérité : présente toutes les combinaisons possibles des n entrés (2n lignes) et les états de sortie correspondant

� Une fois la table de vérité écrite, il faut la transformer en équation logique

� somme (fonction ou) de produit (fonction et)

Page 11: 03.Circuits logiques

Équation : exempleÉquation : exemple

F(a,b)=1 si

a=0 et b=0 soit a=1 et b=1 donc si a.b=1a=1 et b=0 soit a=1 et b=1 donc si a.b=1 a=1 et b=1 donc si a.b=1

F(a,b) = a.b+a.b+a.b

111101010100

F(a,b)ba

Simplification algébrique de l’équation

abbaF

abbaF

abbaF

abaabaF

ababaF

ababaF

ababaF

bbababaF

+=

+=

=

+=

+=

=

+=

++=

),(

),(

.),(

..),(

).(),(

))..((),(

.),(

).(.),(

Page 12: 03.Circuits logiques

Diagrammes de Diagrammes de KarnaughKarnaugh

� Table de Karnaugh : principe

� départ : somme de produits où chaque produit doit contenir toutes les variables : (a+a)b = b

� chaque colonne diffère de sa voisine d’un seul littéral� les tables de Karnaugh sont à deux dimensions : on regroupe

des variables� on regroupe les 1 en morceaux rectangulaires

1. plus grands morceaux possibles2. moins de morceaux possibles3. nouveau morceau que s’il permet de regrouper des 1 non

encore regroupés4. la ligne du haut et du bas ainsi que colonne de droite et de

gauche sont adjacentes

� Morceau = produit de variable : variable et son inverse dans le même morceau = élimination de la variable

Page 13: 03.Circuits logiques

Karnaugh Karnaugh : exemple n°1: exemple n°1

babababaF ...),( ++=

abbaF +=),(

a

a

b b1 1

10

Page 14: 03.Circuits logiques

Karnaugh Karnaugh : exemple n°2: exemple n°2

abccbacbacbabaF

abcccbacbabaF

abcbacbabaF

+++=

+++=

++=

),(

)(..),(

..),(

cbacbaF +=),(

a

a

bc cb1 1

00

cb11

cb00

Page 15: 03.Circuits logiques

Portes et circuits logiquesPortes et circuits logiques

� Un ordinateur travaille en base 2

� Électroniquement 0 correspondait à une tension de 0 à 0,8V et 1 à une tension de 2,8 à 2,5V (tensions données par les constructeurs de composants)� Toute fonction binaire peut être représentée par une expression booléenne� Tout circuit électrique ou électronique à deux valeurs de tension peut être représenté par une expression booléenne

� Préférable de représenter les circuits par des symboles logiques et non par des expressions booléennes

� Correspondance entre les différentes fonctions logiques (+,*…) et des symboles appelés portes logiques

Page 16: 03.Circuits logiques

Portes logiquesPortes logiques

ET

NON

OU

OU exclusif

XOR

a

ba×

ba +

ba ⊕

Page 17: 03.Circuits logiques

Portes logiques et circuitsPortes logiques et circuits

a

ba +

ba×

ba ⊕

Page 18: 03.Circuits logiques

Portes logiques : mise en sériePortes logiques : mise en série

NON ETNAND

NON OUNOR

ID

ba×

ba +

ba ⊕

Page 19: 03.Circuits logiques

SchémaSchéma

�Exemple du schéma électrique de la fonction

111101010100

F(a,b)ba

abbaF

babababaF

+=

++=

),(

...),(

a

b

Page 20: 03.Circuits logiques

Système complet (1)Système complet (1)

� Porte NAND = la plus simple à réaliser du point de vue technologique.� Possible de réaliser toutes les fonctions logiques en utilisant uniquement NAND (http://www.univ-lemans.fr/enseignements/physique/02/electro/portes2.html)

ET

XOR

OU

NON

Page 21: 03.Circuits logiques

Système complet (2)Système complet (2)

NON OU

Représentation des assemblages de portes NAND (TTL : 7400 ou CMOS : 4011) qui réalisent les différentes fonctions logiques

Page 22: 03.Circuits logiques

PlanPlan

Algèbre de BooleAlgèbre de Boole

Circuits combinatoiresCircuits combinatoires

Circuits séquentiels : basculesCircuits séquentiels : bascules

Application des basculesApplication des bascules

UALUAL

ÉlectroniqueÉlectronique

Page 23: 03.Circuits logiques

Cristal et dopageCristal et dopage

� Trois type de cristaux (structures régulières d’atomes)

� Isolants : dioxyde de Silicium (SiO2)� Conducteurs : Cuivre, Aluminium, Or…� Semi-conducteurs : Silicium, Germanium, Arséniure de Gallium

� isolant à très basse température et conducteurs sinon

� Dopage : insérer des atomes d’un matériau A dans un cristal d’atomes B = modification de la conductivité du cristal

� négatif : on introduit un excès d’électrons dans le cristal. Exemple : un excès d’un atome de Phosphore dans un cristal de Silicium divise par 30000 sa résistivité� positif : on retire des électrons� le Silicium est facilement dopable

Page 24: 03.Circuits logiques

Transistor à effet de champ MOSTransistor à effet de champ MOS

� Transistor à canal N :

� à l’intérieur d’un substrat faiblement dopé P on délimite 2 zones fortement dopées N (source et drain) espacée d’une distance L� à la surface du substrat (entre source et drain) on dépose une couche d’isolant (dioxyde de Silicium) puis de Silicium dopéP

Page 25: 03.Circuits logiques

Temps de réponseTemps de réponse

� Temps de Propagation (Propagation Delay)

� passage de l' état logique "0" à l' état logique "1", et inversement ne sont pas instantanés mais prennent un temps :� tPLH temps de propagation LOW to HIGH� tPHL = temps de propagation HIGH to LOW .� Ex : tPLH = 8 ns pour le 74LS21� signal électrique : 200 000 km/s dans un conducteur mais 2 km/s dans un semi-conducteur

� Puissance consommée

� La puissance consommée " p" en mW par un boîtier dépend de sa fréquence d' utilisation et du nombre d' opérateurs utilisés .Ex : 2mW par opérateur pour le 74LS21

Page 26: 03.Circuits logiques

Transistor à canal PTransistor à canal P

� Même principe mais bloquant si VG = 5V passant sinon

� Tensions des circuits électronique de l’ordre de 3,3 V ou 5 V

� pour représenter les valeurs logiques (1 et 0) il est impossible de prendre 0V pour 0 ou 5V pour 1 (bruits parasites)� 0 logique : tension comprise entre 0 et 0,75 V� 1 logique : tension comprise entre 4,5 et 5 V

on peut modéliser un transistor sous forme d’un circuitcourant à gauche = active l’électro-aimant = ferme l’interrupteur

Page 27: 03.Circuits logiques

Portes logiquesPortes logiques

� A partir de ce dispositif on peut réaliser des portes de base (ET, OU…)

�Portes logiques : regroupées dans des circuits intégrés (2 types de technologies différentes TTL ou CMOS)

Page 28: 03.Circuits logiques

Circuits intégrésCircuits intégrés

� Plaquette de Silicium contenant :

� des éléments actifs : transistor (amplification de tension)� des éléments passifs : résistances, condensateurs, diodes.� entre 5 et 500 mm² : peut contenir plusieurs million d’éléments

� Les circuits intégrés (chip) peuvent être classifiés

� SSI (Small Scale Integration) contenant moins de 100 portes� MSI (Medium) : entre 100 et 1000 portes� LSI (Large) : entre 1000 et 105 portes� VLSI (Very Large) : entre 105 et 107 portes� ULSI (Ultra Large) : plus de 107 portes

� Largeur des connexions entre éléments : influence sur la densité des transistors au mm² (0,13 microns)

Page 29: 03.Circuits logiques

Introduction aux circuits logiquesIntroduction aux circuits logiques

� Portes logiques : réalisées électroniquement par un ou deux transistors

� Plusieurs portes logiques forment un circuit logique = circuit intégré

� circuits combinatoires : ne font que combiner les variables d’entrée selon une table de vérité� circuits séquentiels : construits à partir de circuits combinatoires + capacité de mémorisation

� La réalisation d’un circuit passe par la recherche des expressions booléennes, puis par leur simplification (règles ou tableau de Karnaugh)

Page 30: 03.Circuits logiques

PlanPlan

Algèbre de BooleAlgèbre de Boole

Circuits combinatoiresCircuits combinatoires

Circuits séquentiels : basculesCircuits séquentiels : bascules

Application des basculesApplication des bascules

UALUAL

ÉlectroniqueÉlectronique

Page 31: 03.Circuits logiques

DemiDemi--additionneuradditionneur

� Addition de deux bits x et y

0110S

111001010000Ryx

xyyxyxS

xyR

).( +=⊕=

=

Page 32: 03.Circuits logiques

Additionneur complet Additionneur complet

� Addition de deux nombres

� addition bit à bit� considération de la retenue précédente� somme de 3 bits = additionneur complet

x

y

re

rs

S

� Somme S

� vaut 1 si entre x, y et re (retenue d’entrée) : le nombre de bits à1 est impaire

� Retenue de sortie rs

� vaut 1 si x et y valent 1, ou si l’un des deux vaut 1 alors que re vaut 1

Page 33: 03.Circuits logiques

Additionneur complet : circuitAdditionneur complet : circuit

� Un additionneur se réalise à l’aide d’additionneurs 3 bits mis bout à bout

10011111110100110101

01100000001011001010

Sre rsyx

).(..yxrexyrsreyrexxyrs

yxreS

⊕+=++=

⊕⊕=

Page 34: 03.Circuits logiques

Additionneur 2n bits : propagationAdditionneur 2n bits : propagation

� Forme la plus simple : propagation de retenue

� le calcul sur chaque bit se fait de façon différée � rang 0 en premier puis rang 1 avec la retenue du rang 0…

� Temps de calcul

� si un additionneur 1 bit met 1T pour calculer la retenue et 1,5T pour le résultat� rs0 à T et S0 à 1,5T� rs1 à 2T et S1 à 2,5T� rsn-1 à nT et Sn-1 à (n+0,5)T

� Temps : (n+0,5)*T = linéaire

x0y0

re0=0

rs0

S0

x1y1

rs1

S1

xn-1yn-1

rsn-1

Sn-1

Page 35: 03.Circuits logiques

Additionneur 2n bits : anticipationAdditionneur 2n bits : anticipation

� Anticipation de retenue

� partie complexe : calcule en un temps très court toutes les retenues à partir des différents bits à additionner

� Temps de calcul

� si un additionneur 1 bit met 1,5T pour calculer le résultat et si l’anticipation de retenue met 3T� Temps : 4,5T = constant

Antic

ipat

ion

de re

tenu

e x0y0

S0

xn-1yn-1

Sn-1

rsn-1

rsn-2

Page 36: 03.Circuits logiques

IncrémenteurIncrémenteur

� Ajouter ou retrancher 1 : opération fréquente d’un processeur

� utiliser l’addition : utilisation non optimale� Exemple : incrémenteur 4 bits

Page 37: 03.Circuits logiques

MultiplexeurMultiplexeur

� Permet d’envoyer sur la sortie (C) l’état d’une entrée (A) ou de l’autre (B) en fonction d’un signal de sélection (S)

1100S

11X00X1X10X0CBA

SBSAC

SBAASBBAC

..

.).()..(

+=

+++=

A

BC0

1

Page 38: 03.Circuits logiques

Multiplexeur / DemultiplexeurMultiplexeur / Demultiplexeur� Multiplexeur à deux et 2n entrées

� Demultiplexeur : aiguille l’entrée sur la sortie n°S

Page 39: 03.Circuits logiques

PlanPlan

Algèbre de BooleAlgèbre de Boole

Circuits combinatoiresCircuits combinatoires

Circuits séquentiels : basculesCircuits séquentiels : bascules

Application des basculesApplication des bascules

UALUAL

ÉlectroniqueÉlectronique

Page 40: 03.Circuits logiques

UAL : principeUAL : principe

� UAL : Unité Arithmétique et logique

� effectue les opérations de bases (arithmétiques et logiques°� un code d’entrée détermine la partie du circuit qui va effectuer les opérations

� UAL 1 bit : opération ET / OU

� en fonction d’un signal Op le circuit calcul a ET b ou bien a OU b

a ou b1a et b0

SOp

urmultiplexeOpyOpxS

OpbaOpbaS

⇒+=

++=

..

).(..

Page 41: 03.Circuits logiques

UAL : ET, OU, +UAL : ET, OU, +

� UAL 2 bits : opération ET / OU / +

� on ajoute un additionneur

librea + ba ou ba et b

S

11011000

Op0Op1

Page 42: 03.Circuits logiques

UAL n bitsUAL n bits

Traitement de données codées sur n bits

Page 43: 03.Circuits logiques

UAL : représentation UAL : représentation

� UAL chargée des opérations

� logique : AND, OR, XOR, NOT, CMP, LSL, LSR, ASR (décalages)� arithmétiques : ADD, SUB, MUL, DIV, INC (+1), DEC (-1)

Page 44: 03.Circuits logiques

UAL : autre représentationUAL : autre représentation

� UAL 8 bits

Page 45: 03.Circuits logiques

PlanPlan

Algèbre de BooleAlgèbre de Boole

Circuits combinatoiresCircuits combinatoires

Circuits séquentiels : basculesCircuits séquentiels : bascules

Application des basculesApplication des bascules

UALUAL

ÉlectroniqueÉlectronique

Page 46: 03.Circuits logiques

Circuits séquentiels : définitionCircuits séquentiels : définition

� Définition

� circuit séquentiel : pour la même combinaison des données, la sortie peut prendre diverses valeurs en fonction du temps� mémorisation des états passés� table de vérité : on trouve en plus des entrées, la valeur de sortie àl’état précédent

� Les circuits séquentiels de base sont les bascules

� particularité : deux états stables = conservation de l’état de leur sortie même si la combinaison des signaux d’entrée l’ayant provoquée disparaît

� Horloge : composant passant d’un niveau haut à bas (0101010…)

� bascules synchrones (avec horloge) insensibles aux bruits entre deux tops ou asynchrone (sans)

Page 47: 03.Circuits logiques

Bascules RS (1)Bascules RS (1)

� Circuit le plus simple

� une entrée S (Set – mise à un) et une sortie R (Reset – remise à0) qui permettent de changer l’état de la bascule� bascule asynchrone : pas d’horloge

?0110Q

InterditEffacement

Mise à 1Q=Q-Q=Q-

X01X

X10Q-

11

100000SR

))((

)).((

).(

)..(

...

−++=

−+=

−+=

−+=

−+=

QSRQ

QSRQ

QSRQQSSRQ

QSRSRQ

Mise à 1 et mise à 0

Page 48: 03.Circuits logiques

Bascules RS (2)Bascules RS (2)

� Effet mémoire représenté par le retour des sorties

� Bascules RS fréquemment utilisées dans les circuits anti-rebond.

?0110Q

InterditEffacement

Mise à 1Q=Q-Q=Q-

X01X

X10Q-

11

100000SR

))(()).((

).()..(

...

−++=−+=

−+=−+=

−+=

QRSQRSQ

QRSQRRSQ

QSRSRQ

Page 49: 03.Circuits logiques

Bascules RSC ou RSHBascules RSC ou RSH

� Bascule RS asynchrone : deux problèmes

� sensibilité aux bruits parasites (prise en compte des entrées à tout moment)� synchronisation (quand peut-on prendre les données)

� Solution : R et S pris en compte à des instants déterminés àl’aide d’une horloge (période plus grande que le temps de stabilisation)

Q-?01Q-Q

111X

010S

X0

110101RC

Page 50: 03.Circuits logiques

Bascules DHBascules DH� Pour supprimer l’état indéterminé (Horloge ou Clock)

� on utilise un signal D qui va être mémorisé dans la bascule RS� D permet de fabriquer deux signaux R et S (différents de 11)� H : signal d’horloge permet de mémoriser le signal dans une plage de temps fixée (quand H vaut 1)

DHSDHR

..

==

0110Q

R=1;Q=0S=1;Q=1

Q=Q-Q=Q-

X01X10Q-

11X0X0DH

Page 51: 03.Circuits logiques

Bascules DH sur frontBascules DH sur front

� On mémorise à un instant précis

� front descendant : signal d’horloge passe de 1 à 0� fonctionnement de bascule synchrone

� Signal d’horloge = 1 : D est stocké dans la 1ère bascule

� Passage à 0 : le signal issu de la 1ère bascule est stockée dans la 2ème

Page 52: 03.Circuits logiques

Bascules D avec validationBascules D avec validation

� Branchement de plusieurs bascules sur un bus de données

� attention : une seule sortie validée à un instant donnée� on ajoute, en sortie de bascule, un interrupteur commandé par un signal de validation� la sortie de bascule est reliée à l’extérieur si Val = 1

NC01Q-Q

XX001XD

↓1↓1X1HVal

Page 53: 03.Circuits logiques

Bascules complètesBascules complètes

� Elles possèdent à la fois des entrées

� asynchrones : PRESET (=0 mise à 1) et CLEAR (=0 mise à 0)� synchrones : changement de sortie qu’à des moments précis (H,D)

�Elles constituent les mémoires statiques de l’ordinateur

110XX1001XX1?00XX1

X

111

PRESET

X

111

CLEAR

NC

01Q-Q

XX0

01XD

↓1↓1X1HVal

Page 54: 03.Circuits logiques

RegistresRegistres

� Application des bascules : utilisées pour leurs effets mémoire, chacune permet de stocker un bit

� Registres

� parallèles synchrones (bascules DH sur front montant)� parallèles asynchrones (PRESET et CLEAR)� Série (bascules connectées en séries) : pour transmettre des informations n bit sur un seul fil : modem, imprimante série…

� compteurs binaires

� Décalage

� rotation…

Page 55: 03.Circuits logiques

Registres : exempleRegistres : exemple

// synchrone// synchrone

// asynchrone// asynchrone

sériesérie

Page 56: 03.Circuits logiques

Registres : repérageRegistres : repérage

� Dans un microprocesseur les données et le résultat d’une opération UAL sont stockés dans les registres (2 ports d’entrée et 1 port de sortie)

� un registre est repéré par un numéro� pour la lecture on a besoin de deux multiplexeurs à 2n entrées

Page 57: 03.Circuits logiques

Mémoire SRAMMémoire SRAM

� SRAM (Static Random Access Memory)

� composée d’un ensemble de 2n lignes de données de m bits� signal Lecture(0)/Écriture(1) en mémoire� un décodeur permet de valider une ligne de bascules (un registre)

� SRAM : 1 bit = 1 bascule = 2 portes NOR = 4 transistors

� mémoire très rapide ≠ DRAM = 1 transistor + 1 condensateur qui se décharge vite et qui doit être périodiquement rechargé (Dynamic)� DRAM moins rapide que SRAM car on ne peut pas faire d’accès pendant le temps de rechargement mais moins chère.

� SRAM : registres processeur, mémoire cache� DRAM : mémoire centrale

Page 58: 03.Circuits logiques

PlanPlan

Algèbre de BooleAlgèbre de Boole

Circuits combinatoiresCircuits combinatoires

Circuits séquentiels : basculesCircuits séquentiels : bascules

Application des basculesApplication des bascules

UALUAL

ÉlectroniqueÉlectronique

Page 59: 03.Circuits logiques

Multiplieur V1 (1)Multiplieur V1 (1)

� Multiplication simple : multiplication, décalage, addition

� 9*5=1001*0101=1001+00000+100100+0000000=101101=45� Algorithme :

Pour i de 1 à Taille des donnéesSi (bit 0 de n1 = 1) alors

produit = produit + n2FinsiDécaler à gauche n2Décaler à droite n1

101101…01001000001001+100100=101101

10011001

Produit

11001001010010

1011001MultiplicateurMultiplicande

Page 60: 03.Circuits logiques

Multiplieur V1 (2)Multiplieur V1 (2)

� Si n1 et n2 sont codés sur 32 bits, on a besoin de :

� un registre 64 bits pour décaler n2� un registre 32 bits pour n1� une UAL 64 bits pour le calcul� un registre 64 bits pour stocker le résultat

Page 61: 03.Circuits logiques

Multiplieur V2 (1)Multiplieur V2 (1)

� Pour limiter le matériel :� sur les 64 bits du registre contenant n2 : 32 utilisés� Algorithme :Pour i de 1 à Taille des données

Si (bit 0 de n1 = 1) alors32 bits MSB du produit=32 bits MSB du produit+n2

FinsiDécaler à droite produitDécaler à droite n1

Page 62: 03.Circuits logiques

Multiplieur V2 (2)Multiplieur V2 (2)

À la fin de la 32ème itération…000101101

32 bits MSB+1001=1011…0101101000000000000…

32 bits MSB+0000=0100…00100100000000000…

32 bits MSB+1001=1001…010010000000…

Produit

11001

101001

1011001

MultiplicateurMultiplicande

� on a besoin de :

� deux registres 32 bits pour n1 et n2 � une UAL 32 bits pour le calcul� un registre 64 bits pour stocker le résultat

Page 63: 03.Circuits logiques

Multiplieur V3 (1)Multiplieur V3 (1)

� Dans le résultat : les 32 bits de poids faible ne sont pas utilisés au début : on peut y placer n1 décalé en // au produit

� Algorithme :Pour i de 1 à Taille des données

Si (bit 0 de n1 = 1) alors32 bits MSB du produit=32 bits MSB du

produit+n2

FinsiDécaler à droite produitDécaler à droite n1

�on a besoin de :

� un registre 32 bits pour décaler n2 � une UAL 32 bits pour le calcul� un registre 64 bits pour stocker le résultat et n1

Page 64: 03.Circuits logiques

Multiplieur V3 (2)Multiplieur V3 (2)

À la fin de la 32ème itération00…001001101

32 bits LSB 01000….000132 bits MSB+1001=1011

…01011010000…001

32 bits LSB 1000….0001032 bits MSB+0000=0100

…0010010000…001

32 bits LSB 000000….010132 bits MSB+1001=1001

…010010000…0010

Produit

1001

1001

1001

Multiplicande

Page 65: 03.Circuits logiques

Additionneur de réels (1)Additionneur de réels (1)

� Pour réaliser l'addition de n1 + n2 on utilise l'algorithme suivant:

Si (exposant n1 > exposant n2)alors décaler la mantisse de n2 à droite de

(exposant n1 - exposant n2) rang(s)sinon décaler la mantisse de n1 à droite de

(exposant n2 - exposant n1) rang(s)FinsiAdditionner les mantisses de n1 et n2Si retenue sortante de l'addition = 1

alors ajouter 1 à l'exposant et décaler la mantissed'un rang à droiteFinSi

� Remarque : Au niveau des décalages de la mantisse, ce sont les bits de la mantisse qui sont décalés à droite, ce qui correspond à un décalage à gauche de la virgule.

Page 66: 03.Circuits logiques

Additionneur de réels (2)Additionneur de réels (2)

Page 67: 03.Circuits logiques

Additionneur de réels : exempleAdditionneur de réels : exemple

� Exemple 1

� n1 = 2,5 = 1,01 l'exposant = 128 et la mantisse normalisée = 01� n2 = 0,25 = 1,0 l'exposant = 125 et la mantisse normalisée = 1

Lors de l'addition l'exposant de n1 > exposant de n2, alors la mantisse et le bit de normalisation de n2 sont décalés à droite de 128-125 = 3 rangs.

� n1 = 1,01 (1.25 21) et maintenant � n2 = 0,001 (0,125 21) � soit au total 1,011 (1,375 21) soit 2,75, il n'y a pas de changement de l'exposant à faire dans ce cas.

Page 68: 03.Circuits logiques

Additionneur de réels : exempleAdditionneur de réels : exemple

� Exemple 2

� n1 = 2,5 = 1,01 l'exposant = 128 et la mantisse normalisée = 01� n2 = 2,5 = 1,01 l'exposant = 128 et la mantisse normalisée =01

lors de l'addition l'exposant de n1 = exposant de n2, alors la mantisse et le bit de normalisation de n2 sont décalés à droite de 0 rang.

� n1 = 1,01 et maintenant � n2 = 1,01 soit au total 10,1. � Comme il y génération d'une retenue, il faut ajouter 1 à l'exposant (qui vaut 2 pour avoir un chiffre avant la virgule et décaler la mantisse de 1 rang à gauche (1,01 x 22 = 5)