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

Algèbre de Boole et circuits logiques

Embed Size (px)

Citation preview

Page 1: Algèbre de Boole et circuits logiques

Algèbre de Boole et circuits logiques

Eric GarciaEric Garcia

20022002

IUT GTR, Montbéliard

Architectures des ordinateursCours 3

Page 2: Algèbre de Boole et 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: Algèbre de Boole et 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)

p p

V F

F V

p q p q p q

V V V V

V F V F

F V V F

F F F F

tables de vérités

Page 4: Algèbre de Boole et circuits logiques

Notion ensemblisteNotion ensembliste

R

a

a

R

a b

ba

R

a b

ba

Page 5: Algèbre de Boole et 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)…

a b a b a b a b (a b)

V V F F F V F

V F F V F V F

F V V F F V F

F F V V V F V

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

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

baba

baba

1

.

Page 6: Algèbre de Boole et circuits logiques

Algèbre de BooleAlgèbre de Boole

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

0 0 0 1 0 1 0 1

0 1 1 0 0 1 1 0

1 0 1 0 0 1 1 0

1 1 1 0 1 0 0 1

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: Algèbre de Boole et 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: Algèbre de Boole et 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 a11a aa 1

aaa aaa

1 aa 0aa

abba abba

1aa

0aa

aa 0aa 1

abba

Page 9: Algèbre de Boole et 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: Algèbre de Boole et 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: Algèbre de Boole et 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

a b F(a,b)

0 0 1

0 1 0

1 0 1

1 1 1

Simplification algébrique de l’équation

abbaF

abbaF

abbaF

abaabaF

ababaF

ababaF

ababaF

bbababaF

),(

),(

.),(

..),(

).(),(

))..((),(

.),(

).(.),(

Page 12: Algèbre de Boole et circuits logiques

Diagrammes de KarnaughDiagrammes de Karnaugh

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: Algèbre de Boole et circuits logiques

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

babababaF ...),(

abbaF ),(

a

a

b b

1 1

10

Page 14: Algèbre de Boole et circuits logiques

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

abccbacbacbabaF

abcccbacbabaF

abcbacbabaF

),(

)(..),(

..),(

cbacbaF ),(

a

a

bc cb

1 1

00

cb

1

1

cb0

0

Page 15: Algèbre de Boole et 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: Algèbre de Boole et circuits logiques

Portes logiquesPortes logiques

ET

NON

OU

OU exclusif

XOR

a

ba

ba

ba

Page 17: Algèbre de Boole et circuits logiques

Portes logiques et circuitsPortes logiques et circuits

a

ba

ba

ba

Page 18: Algèbre de Boole et circuits logiques

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

NON ETNAND

NON OUNOR

ID

ba

ba

ba

Page 19: Algèbre de Boole et circuits logiques

SchémaSchéma

Exemple du schéma électrique de la fonction

a b F(a,b)

0 0 1

0 1 0

1 0 1

1 1 1

abbaF

babababaF

),(

...),(

a

b

Page 20: Algèbre de Boole et 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: Algèbre de Boole et 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: Algèbre de Boole et 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: Algèbre de Boole et 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: Algèbre de Boole et 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: Algèbre de Boole et 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: Algèbre de Boole et 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 circuit courant à gauche = active l’électro-aimant = ferme l’interrupteur

Page 27: Algèbre de Boole et 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: Algèbre de Boole et 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: Algèbre de Boole et 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: Algèbre de Boole et 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: Algèbre de Boole et circuits logiques

Demi-additionneurDemi-additionneur

Addition de deux bits x et y

x y S R

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1xyyxyxS

xyR

).(

Page 32: Algèbre de Boole et 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: Algèbre de Boole et circuits logiques

Additionneur complet : circuitAdditionneur complet : circuit

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

x y re S rs

1 1 0 0 1

1 1 1 1 1

1 0 0 1 0

1 0 1 0 1

0 1 0 1 0

0 1 1 0 1

0 0 0 0 0

0 0 1 1 0

).(

..

yxrexyrs

reyrexxyrs

yxreS

Page 34: Algèbre de Boole et 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

x0

y0

re0=0

rs0

S0

x1

y1

rs1

S1

xn-1

yn-1

rsn-1

Sn-1

Page 35: Algèbre de Boole et 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

Ant

icip

atio

n de

ret

enue

x0

y0S0

xn-1

yn-1Sn-1

rsn-1

rsn-2

Page 36: Algèbre de Boole et 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: Algèbre de Boole et 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)

A B S C

0 X 0 0

1 X 0 1

X 0 1 0

X 1 1 1

SBSAC

SBAASBBAC

..

.).()..(

A

BC0

1

Page 38: Algèbre de Boole et circuits logiques

Multiplexeur / DemultiplexeurMultiplexeur / Demultiplexeur

Multiplexeur à deux et 2n entrées

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

Page 39: Algèbre de Boole et 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: Algèbre de Boole et 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

Op S

0 a et b

1 a ou b

urmultiplexeOpyOpxS

OpbaOpbaS

..

).(..

Page 41: Algèbre de Boole et circuits logiques

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

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

on ajoute un additionneur

Op1 Op0 S

0 0 a et b

0 1 a ou b

1 0 a + b

1 1 libre

Page 42: Algèbre de Boole et circuits logiques

UAL n bitsUAL n bits

Traitement de données codées sur n bits

Page 43: Algèbre de Boole et 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: Algèbre de Boole et circuits logiques

UAL : autre représentationUAL : autre représentation

UAL 8 bits

Page 45: Algèbre de Boole et 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: Algèbre de Boole et 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: Algèbre de Boole et 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

R S Q- Q

0 0 0 0 Q=Q-

0 0 1 1 Q=Q-

0 1 X 1 Mise à 1

1 0 X 0 Effacement

1 1 X ? Interdit))((

)).((

).(

)..(

...

QSRQ

QSRQ

QSRQ

QSSRQ

QSRSRQ

Mise à 1 et mise à 0

Page 48: Algèbre de Boole et 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.

R S Q- Q

0 0 0 0 Q=Q-

0 0 1 1 Q=Q-

0 1 X 1 Mise à 1

1 0 X 0 Effacement

1 1 X ? Interdit

))(()).((

).()..(

...

QRSQRSQ

QRSQRRSQ

QSRSRQ

Page 49: Algèbre de Boole et 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)

C R S Q

1 0 0 Q-

1 0 1 1

1 1 0 0

1 1 1 ?

0 X X Q-

Page 50: Algèbre de Boole et 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)

DHS

DHR

.

.

H D Q- Q

0 X 0 0 Q=Q-

0 X 1 1 Q=Q-

1 1 X 1 S=1;Q=1

1 0 X 0 R=1;Q=0

Page 51: Algèbre de Boole et 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: Algèbre de Boole et 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

Val H D Q

1 X X Q-

1 1 1

1 0 0

0 X X NC

Page 53: Algèbre de Boole et 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

Val H D PRESET CLEAR Q

1 X X 1 1 Q-

1 1 1 1 1

1 0 1 1 0

1 X X 0 1 1

1 X X 1 0 0

1 X X 0 0 ?

0 X X X X NC

Page 54: Algèbre de Boole et 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: Algèbre de Boole et circuits logiques

Registres : exempleRegistres : exemple

// synchrone// synchrone

// asynchrone// asynchrone

sériesérie

Page 56: Algèbre de Boole et 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: Algèbre de Boole et 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: Algèbre de Boole et 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: Algèbre de Boole et 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

Multiplicande Multiplicateur Produit

1001 101 1001

10010 10 1001

100100 1 001001+100100=101101

1001000 0 101101…

Page 60: Algèbre de Boole et 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: Algèbre de Boole et 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) alors 32 bits MSB du produit=32 bits MSB du

produit+n2FinsiDécaler à droite produitDécaler à droite n1

Page 62: Algèbre de Boole et circuits logiques

Multiplieur V2 (2)Multiplieur V2 (2)

Multiplicande Multiplicateur Produit

1001 101 32 bits MSB+1001=1001

…010010000000…

1001 10 32 bits MSB+0000=0100

…00100100000000000…

1001 1 32 bits MSB+1001=1011

…0101101000000000000…

À la fin de la 32ème itération

…000101101

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: Algèbre de Boole et 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) alors 32 bits MSB du produit=32 bits MSB du

produit+n2FinsiDé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: Algèbre de Boole et circuits logiques

Multiplieur V3 (2)Multiplieur V3 (2)

Multiplicande Produit

1001 32 bits LSB 000000….0101

32 bits MSB+1001=1001

…010010000…0010

1001 32 bits LSB 1000….00010

32 bits MSB+0000=0100

…0010010000…001

1001 32 bits LSB 01000….0001

32 bits MSB+1001=1011

…01011010000…001

À la fin de la 32ème itération

00…001001101

Page 65: Algèbre de Boole et 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 mantisse d'un rang à droite FinSi

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: Algèbre de Boole et circuits logiques

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

Page 67: Algèbre de Boole et 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: Algèbre de Boole et 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)