80876357-electronique-numerique-1
TRANSCRIPT
ElectroniqueElectronique numérique 1numérique 1
T.EA
1
Bibliographie
Circuits Numériques - Théorie et Applications
Ronald J. Tocci (Dunod)( )
Circuits numériques et synthèse logiqueJ. Weber & M. Meaudre
Architecture des ordinateurs
Fonctions booléennes, logique combinatoire et séquentielle
Philippe Darche (Vuibert)
Introduction to Digital Systems
l ( l )Milos Ercegovac, Tomas Lang, J.H. Moreno (Wiley)
T.EA
2
Introduction généraleg
T.EA
3
Analogique-Numérique
Système analogique - Système numériquetraitement de grandeurs physiques exprimées sous forme analogique (resp. numérique) : les grandeurs
i d f i ( di è ) à l’i é ivarient de façon continues (resp. discrètes) à l’intérieur d’un intervalle de valeurs
ex. syst. ana: tachymètre, thermomètre à mercure, microphone classique, bande magnétique, etc.
ex. syst. num.: calculatrice, ordinateur, etc.
T.EA
4
Analogique-Numérique
Atouts du numériquescircuits plus simple à concevoir
stockage de l’information facileg
précision et exactitude accrues
programmation des opérationsprogrammation des opérations
robuste vis à vis du bruit
forte intégration
Inconvénient majeur du numériquej qle monde réel est analogique
T.EA
5
Analogique-Numérique
Exploitation des techniques numériquesp q qTraduire les signaux analogiques en signaux numériques
Traiter l’information numériqueTraiter l information numérique
Convertir les sorties numériques en analogique
Transducteur CAN Traitementϕ A N NTransducteur CAN numérique
AN NTraitementnumérique CNA Transducteur
AN N ϕ
T.EA
6
Système numérique
Système combinatoire (passé indifférent) :réalisation d’une fonctionréalisation d une fonction
logique combinatoire
SystèmeEntrées Sorties
Système séquentiel (dépendant des entrées
yΔt
Entrées Sorties
Système séquentiel (dépendant des entrées antérieures)
di é i i d é d’ h ldiscrétisation du temps : présence d’une horloge
réalisation d’un comportementlogique séquentielle synchrone
SystèmeΔt
Entrées Sorties
T.EA
7Δt
Architecte numéricien
Fonction ou comportement h i é ( é ifi i )souhaité (spécification)
ImplantationpStructure concrète
Technologie disponibleContraintes du systèmecoût encombrement vitesseTechnologie disponible
Transistor, portes, ...coût, encombrement, vitesse,
consommation, temps de développement, ...
T.EA
8
Phases d’un projet électronique
Spécification technique du besoinNégociation
Conception d’architecture
gavec le client
Conception détaillée (schéma, code, doc, simu)
Synthèse, AnalyseAmélioration
Placement, routage
Fabrication ou programmation
T.EA
9Test et Production
Spécifications du besoin
Demande du clientDéfinition contraignante des résultats à obtenir
Performances et caractéristiques électriques du circuit
Réfl i t i t ti t i h i hit tRéflexion et orientation vers certains choix architecturauxContient la description :
D t t l t é / tiDe toutes les entrées/sortiesDe l’environnement dans lequel le circuit sera utiliséDes fonctionnalités du circuit à développerppDes caractéristiques temporelles (timing) des entrées /sorties, des niveaux électriquesDes conditions de test le taux de couverture de test les méthodesDes conditions de test, le taux de couverture de test, les méthodes statistiques utilisées pour l’acceptation des lots
T.EA
10
Conception d’architecture
Document à usage interne écrit par l’ingénieur responsable du projetSynthèse de l’analyse de la spécification et solutions
h i i étechniques envisagéesDescription des interconnexions des sous blocs internes et l l tileurs relations
Répartition du travail entre collaborateursConstruction d’une bibliothèque de fonctionsConstruction d une bibliothèque de fonctionsSuivi de l’avancement du projet
Description schématique de la structure interne du circuit p qintégré
T.EA
11
Conception détaillée
Conception du circuitpCode VHDL, saisie schématique
Définition détaillée des interfaces des blocsDéfinition détaillée des interfaces des blocs
Conception de certains modules critiques du circuitDé i é d’é l blè h iDétection précoce d’éventuels problèmes techniques
Complète le document de conception architecture
Simulation : phase la plus longueValidation des spécificationsValidation des spécifications
T.EA
12
Synthèse, Analyse
Transformation du code VHDL ou de la schématique en netlist
Liste de nœudsListe de nœuds
Instances de cellules effectuant des opérations élémentaires (portes logiques)
Schéma de cellules physiques (caractéristiques physiques)physiques)
Fréquence maximale de fonctionnement
T.EA
13
Placement, Routage
Disposer les cellules de la fonctionpOptimisation en surface
Réduction de la longueur des interconnexionsRéduction de la longueur des interconnexions
Insertion du Scan-PathTest de production
Simulation post-layoutSimulation post layoutAnalyse physique (back annotation)
Timing plus proche de la réalité plus précise (modélisation desTiming plus proche de la réalité, plus précise (modélisation des cellules de base)
T.EA
14
Fabrication ProgrammationFabrication, ProgrammationTest et Production
ASIC : envoie du circuit en fabrication
FPGA : « programmation » du composant
Confrontation des résultats d’analyse, de y ,simulations avec la réalité
Mesures de caractéristiques dans un lot de circuitMesures de caractéristiques dans un lot de circuit
Test de production : vérification pièce par pièce
T.EA
15
Chapitre I : Fonctions Booléennes -Al èb d B lAlgèbre de Boole
T.EA
16
Introduction
Représentation binaireUtili ti t i d dé i iUtilisation courante pour exprimer des décisions fonction de propositions multiples présentant deux états : vraies ou fausses: vraies ou fausses.
exemple : Décision D : aller au cinéma
Prop 1 : film intéressant
P 2 é h i d d filProp 2 : occupé aux horaires de passage du film
Prop 3 : voiture en état de marche
P 4 ét èProp 4 : métro en grève
La décision D sera prise si : P1 est vraie ET si P2 est fausse ET (si P3 est vraie OU P4 est fausse)
T.EA
17
(si P3 est vraie OU P4 est fausse).
Introduction
Toute proposition logique peut se mettre sous la forme décrite précédemment:
nécessité d’un outil mathématique pour traiter les q ppropositions logiques : algèbre de Boole
nécessité d ’outil physique pour matérialiser lesnécessité d outil physique pour matérialiser les opérateurs fondamentaux ( vrai/faux - ET - OU) : circuits logiquesg q
T.EA
18
Contributeurs
George Boole (1815-1864) : mathématicien g ( )anglais
Augustus De Morgan (1806 1871)Augustus De Morgan (1806-1871)
Charles Sanders Peirce (1839-1914)
John Venn (1834-1923)
G ttl b F (1848 1925)Gottlob Frege (1848-1925)
Claude Elwood Shannon (1916-2001)
T.EA
19
Variable logique - Fonction logique
Variable logique (x)Deux états : faux/vrai 0/1 fermé/ouvert éteint/allumé arrêt/marcheDeux états : faux/vrai, 0/1, fermé/ouvert, éteint/allumé, arrêt/marche, bas/haut, non/oui,...
Variable booléenne ou binaire
Fonction logique de n variables est une fonction qui ne prend, comme chacune des variables, que deux étatsp , , q
Peut être considérée comme une variable logique vis à vis d’une autre fonction.
Algèbre de Boole étudie des variables binaires et des fonctions de ces variables.
Algèbre d’états et non des nombres.
T.EA
20
Algèbre de Boole
Définition : B=<E,+,•,¯,0,1>, , , , ,ensemble E muni de deux lois de composition internes + et •, et d ’une loi de complémentation ¯+ et , et d une loi de complémentation
ā, a’, /a: si a=0 alors ā=1
i 1 l ā 0si a=1 alors ā=0
Propriétés des lois de composition a b a + b0 0 00 1 1
a b a • b0 0 00 1 0
1 0 11 1 1
1 0 01 1 1
T.EA
21
Algèbre de Boole
Axiome de base : ∀ (a,b,c) ∈ E3( , , )Commutativité: a + b = b + a
a • b = b • aa • b = b • a
Distributivité: a • (b + c) = (a • b) + (a • c)
a + (b • c) = (a + b) • (a + c)
Eléments neutres: a + 0 = a
a • 1 = a
Complémentation: a + ā = 1Complémentation: a ā 1
a • ā = 0
T.EA
22
Algèbre de Boole
Propriétéspa + 1 = 1
a • 0 = 0 a + (a • b) = a
aa =
a • 0 = 0
a + a = a
a + (a • b) = a
a • (a + b) = a
a • a = a
a + b + c = (a + b) + c = a + (b + c)
a • b • c = (a • b) • c = a • (b • c)
; : loi de De Morganbaba •=+ baba +=•; : loi de De MorganGénéralisable à n variable par SHANNON
baba + baba +
T.EA
23
Algèbre de Boole
Autres propriétésp p
ababa =•+• )()(
babaa
ababa
•=+•
=+•+
)(
)()(
babaa +=•+ )(
)(
T.EA
24
Algèbre de Boole
Exemples de démonstrationp
bbbaba
bbaabababa
+•+•+•
+••+•=•+•
)]()[()]1([
])[(])[()()(
ababaa
bbbaba
=+•=+•=
+•+•+•=
)1()(
)]()[()]1([
bbbaaba
bbaabababa
•+•+•+=
•++•+=+•+
)]()[()]([
])([])([ )()(
babaaabaa
ababaa
•=•+•=+•
=+•=•+=
)()()(
)1()(
babaaabaa
babaaabaa
+=+•+=•+
•=•+•=+•
)()()(
)()()(
T.EA
25
Algèbre de Boole
Remarque:+ b + ba + b = a + c ⇒ b = c
a • b = a • c ⇒ b = c
b = c ⇒ a + b = a + c
b = c ⇒ a • b = a • c
Exemple :
i 1 b 0 1 l b 1 i bsi a=1, b=0, c=1 alors a+b=a+c=1 mais b≠c
si a=0, b=0, c=1 alors a • b=a • c=0 mais b≠c
T.EA
26
Fonction logique
Fonction logique complètement définieentièrement définie quand on connaît sa valeur 0 ou 1 pour les 2nentièrement définie quand on connaît sa valeur 0 ou 1 pour les 2combinaisons possibles (n : nombre de variables)
Table de vérité ou tableau des combinaison
a b f0 0 00 1 1
Fonction logique incomplètement définie
0 1 11 0 11 1 0
Fonction logique incomplètement définieX ou ∅ : valeur de la fonction non spécifiée
Utile pour la simplification des éq logiquesUtile pour la simplification des éq. logiques
T.EA
27
P-terme, s-terme, minterme, maxterme
Définitionp-terme : produit de variables logiques
s terme : somme de variables logiquess-terme : somme de variables logiques
minterme : p-terme de degré n (n nombre de variables d l f ti l i ) { }n 1
∏−
de la fonction logique) :
maxterme : s-terme de degré n
{ }iiii
ij xxxxm ,,0
∈= ∏= { }iii
n
iij xxxxM ,,
1
0
∈= ∑−
=
Fonction à n variables → 2n maxtermes et 2n
mintermes possible p
T.EA
28
Minterme, maxterme
Représentation des mintermes et maxtermes en f ti d l’ét t d i bl t l i t 1fonction de l’état des variables tel que minterme=1 et maxterme=0
1−nx …1x 0x Minterme Maxterme
0 0 0 0 xxxx •• xxxx ++++0 0 0 00121 ... xxxx nn •• −− 0121 ... xxxx nn ++++ −−
0 0 0 10121 ... xxxx nn •• −− 0121 ... xxxx nn ++++ −−
… … … … … …
1 1 1 00121 ... xxxx nn −− 0121 ... xxxx nn ++++ −−
1 1 1 10121 ... xxxx nn −− 0121 ... xxxx nn ++++ −−
T.EA
29
Théorème de Shannon
Toute fonction booléenne autre que f=0 peut s ’écrire sous la forme d ’une somme des écrire sous la forme d une somme de mintermes. Toute fonction booléenne autre que f 1 ’é i l f d ’ d i df=1 peut s ’écrire sous la forme d ’un produit de maxtermes.
Forme généralisée du théorème de De Morgan
)()( +••+ xxfxxfFormule de développement de Shannon
),,,...,(),,,...,( 0101 +•=•+ −− xxfxxf nn
[ ] [ ]),...,1,...,(),...,0,...,(),...,,...,(
),...,0,...,(),...,1,...,(),...,,...,(
010101
010101
xxfxxxfxxxxf
xxfxxxfxxxxf
iii
niniin −−−
+•+=
•+•=
T.EA
30
[ ] [ ]),...,1,...,(),...,0,...,(),...,,...,( 010101 xxfxxxfxxxxf niniin −−− ++
Théorème de Shannon
Démonstration pour une variablep
f(x)xf(x)x)x(xf(x)f(x)effeten
f(0)xf(1)xf(x) : écrires'peut variableuned' f booléenne fonction Toute
•+•+•
•+•=
f(1)f(1)1f(1)xet
f(1)f(1)1f(x)xa on 1,x si
f(x)xf(x)x)x(x f(x)f(x)effet en
=•=•=•=•=
•+•=+•=
0f(0)0f(0)xet
0f(1)0f(x)xa on 1,x si
••
=•=•=
0f(1)0f(1)xet
0f(0)0f(x)xa on 0,x si
f(1)f(1)1f(1)xet
=•=•=•=•=
=•=•
f(0)f(0)1f(0)
f(0)f(0)1f(x)xa on 0,x si
0f(0)0f(0)xet
=•=•=
=•=•
)1(f f(1),xf(x)x donc
0f(1)0f(1)xet
∀•=•=•=•
)0(f f(0),xf(x)x donc
f(0)f(0)1f(0)xet
∀•=•
=•=•
T.EA
31
Théorème de Shannon
f(1)]x[f(0)]x[f(x) : écrires'peut variableuned' f booléenne fonction Toute +•+=
1f(1)1f(x)xa on 1,x si
f(x)]x[f(x)]x[)x(x f(x)f(x)effet en
=+=+=+•+=•+=
f(1)f(1)0f(x)xa on 1,x si =+=+=
f(0)f(0)0f(x)xa on 0,x si
1f(0)1f(0)xet
=+=+==+=+
1f(0)1f(x)xa on 0,x si
f(1)f(1)0f(1) xet
=+=+=
=+=+
)0(f f(0),xf(x)x donc
f(0)f(0)0f(0)xet
∀+=+=+=+
)1(f f(1),xf(x)x donc
1f(0)1f(0)xet
∀+=+
=+=+
Généralisation à n variables
T.EA
32
Ecriture Canonique
F(a,b,c…) peut s’écrire sous deux formes( , , ) psomme canonique (1ère forme canonique - forme canonique (ou normale) disjonctive):canonique (ou normale) disjonctive):
somme de produits contenant toutes les variables de la fonction : somme de mintermes
ex :
produit canonique (2ère forme canonique - forme yzxzyxxyzzyxf ++=),,(
p q ( qcanonique (ou normale) conjonctive):
produit de sommes contenant toutes les variables de la fonction p: produit de maxtermes
ex : ))((),,( zyxzyxzyxf ++++=
T.EA
33
Ecriture Canonique
Obtention des formes canoniques i d l f l d dé l t d Shissues de la formule de développement de Shannon
exemple de 2 variables :
)0,0( )1,0( )0,1(11
)]0,0( )1,0( [)]0,1( )1,1( [),0( ),1( ),(
fbafbafba),ab f(
fbfbafbfbabfabfabaf
+++=
+++=+=
extension à n variables
Exemple 1:Exemple 1: f(0,0)=0; f(0,1)=0; f(1,0)=0; f(1,1)=1
f(a,b)=a.b
T.EA
34
Ecriture Canonique
Exemple 2: p
mettre f sous forme de somme et produit canonique
))((),,( cbabacbaf +++=
mettre f sous forme de somme et produit canonique
produit de maxtermes)())(()( bbbbf
somme de mintermes
)())((),,( cbacbacbacbaf ++++++=
cbaabcbaab
acbbcbbaacabaacbaf
+++=
+=+++++=),,(
bbbbb
cbaabccbabcacababc
cbaabcbaab
+++++=
+++
T.EA
35cbacbabcacababc ++++=
R é i d i bl dReprésention des variables et des fonctions logiquesfonctions logiques
Diagramme d’Euler ou de Venng
x x a b
Table de vérité (truth table)
a b
( )ligne c b a f(c,b,a)
0 0 0 0 f(0,0,0)1 0 0 1 f(0 0 1)1 0 0 1 f(0,0,1)2 0 1 0 f(0,1,0)3 0 1 1 f(0,1,1)4 1 0 0 f(1,0,0)( , , )5 1 0 1 f(1,0,1)6 1 1 0 f(1,1,0)7 1 1 1 f(1,1,1)
T.EA
36
R é i d i bl dReprésention des variables et des fonctions logiquesfonctions logiques
Tableau de KarnaughgUne seule variable change d’état entre deux cases contiguëscontiguës
Simplification des équations logiques grâce à la propriété d’adjacente )1( =+ aapropriété d adjacente Méthode de construction pour n variables
2n cases : 2n-1 cases pour la forme normale et 2n-1 cases pour la forme
)1( + aa
2 cases : 2 cases pour la forme normale et 2 cases pour la forme complémentée
2l lignes et 2c colonnes : n=l + c
choix du nombre de lignes et de colonnes :• n pair : c=l=n/2
• n impair c=l+1=(n+1)/2
T.EA
37
n impair c l+1 (n+1)/2
R é ti d i bl t dReprésention des variables et des fonctions logiquesfonctions logiques
Exemples de tableaux de Karnaughp gn=1
a 0 1
0 1
n=2b\a 0 10
0 1
n=3c\ba 00 01 11 10
00 1 3 2
12 3
14 5 7 6
b
n=5ed\cba 000 001 011 010 110 111 101 100
000 1 3 2 6 7 5 4
an=4
dc\ba 00 01 11 1000
0 1 3 2 0 1 3 2 6 7 5 4
018 9 11 10 14 15 13 12
1124 25 27 26 30 31 29 28
10
014 5 7 6
c 1112 13 15 14
d 10 1016 17 19 18 22 23 21 20
d 108 9 11 10
T.EA
38
R é i d i bl dReprésention des variables et des fonctions logiquesfonctions logiques
Arbre de décision binaireUtilisé en intelligence artificielle pour visualiser une décision dépendante de plusieurs variables logiquesdécision dépendante de plusieurs variables logiquesConstruction :
Chaque variable occupe 1 niveauf(xn-1,…,x0)
Chaque variable occupe 1 niveau de 0 à n-1
Etat 0 à gauche et état 1 à droite 0 1
xn-1
d’un nœud
L’arbre se termine par des f ill l l d l
0 1xn-20 1
xn-2
x xfeuilles contenant la valeur de la fonction correspondant à l’état des variables d’entrée
0 1x0 0 1
x0
T.EA
39
des variables d entrée
R é ti d i bl t dReprésention des variables et des fonctions logiquesfonctions logiques
ChronogrammegGraphe d’évolution temporelle des variables et des fonctions logiquesfonctions logiques
t
x
ty
t
F(x,y)=x . y
t
T.EA
40
Simplification des fonction logiques
Recherche de l’écriture la plus simple possible
Utilisation du minimum de matérielUtilisation du minimum de matérielfabrication d’un système à moindre coût
Méthode algébrique, graphique, algorithmiqueobtention d’une forme minimale de la fonction logique
• somme minimale, produit minimal
on appelle forme minimale d’une expression logique, l ’ i f éd it i tl ’expression sous forme réduite qui comporte :
-nombre minimal de termes (p-termes, s-termes)
nombre minimal de variables dans chaque terme-nombre minimal de variables dans chaque terme
exemples :
dbdbdbbdf
bdcabdcbaadbabcdf
+++
+++=
)(
),,,(
T.EA
41
dcabdcbaadbabcdf +++=),,,(
Simplification des fonction logiques
Méthode algébrique :tili ti d iété t l ti d l’ l èb dutilisation des propriétés et relations de l’algèbre de
Boole
é h d h dméthode assez hasardeuse
manipulation pas toujours facile
devient inextricable quand le nombre de variables
n > 5
T.EA
42
Simplification des fonction logiques
Exemple abccabcbabcacbaf +++)(
abcabcabccabcbabcacbaf +++++=),,(
abccabcbabcacbaf +++=),,(
abacbc
ccabbbacbcaa
f
+++++++= )()()(
),,(
abacbc ++=
abccabcbabcacbaf +++=),,(
cababccabbabc
cabcbabccabcbabcaa
++=++=
++=+++=
)()(
)(
bcacbcbcacbcabcacb
cababccabbabc
++=++=++=
++=++=
)()(
)()(
T.EA
43bcabac ++=
Simplification des fonction logiques
Méthode graphique (Karnaugh)méthode difficile pour n > 6
Principe : pregroupement des cases par 2,4,8..,2i
élimination de 1,2,3…i variables, ,
obtention d’une forme ΣΠ non canonique car des variables ont été éliminées
Etapes de simplification Cas des fonctions complètement définesCas des fonctions complètement défines
1. regrouper des ensembles de 2i cases en maximisant i à chaque fois. Les cases extrêmes peuvent se regrouper entre-elles
T.EA
44
p g p
Simplification des fonction logiques
2. Lorsque cela est possible regrouper les cases restantes avec des cases appartement à des ensembles déjà constitués pour former des ensembles de 2j cases en maximisant j à chaque fois
3 Ecrire l’équation booléenne correspondante3. Ecrire l équation booléenne correspondante
Exempledc\ba 00 01 11 10 dc\ba 00 01 11 10dc\ba 00 01 11 10 dc\ba 00 01 11 10
00 1
01
11
dc\ba 00 01 11 10
00
01 1 1
11 1 1
dc\ba 00 01 11 10
00
01 1 1
11 11
10 1
11 1 1
10
dc\ba 00 01 11 10
11
10 1 1 1 1
dc\ba 00 01 11 10
00 1 1
01
11
00
01
11 1 1 1 1
T.EA
4510 1 1 10 1 1 1 1
Simplification des fonction logiques
Exempledc\ba 00 01 11 10
00 1 1 1 1
dc\ba 00 01 11 10
00 1 1 1 1 00 1 1 1 1
01 1 1
11 1 1
00 1 1 1 1
01 1 1
11 1 1
10 1 110 1 1
acdcacdabcdf ++=),,,( accacdabcdf ++=),,,(
Cas des fonctions incomplètement définiesRemplacer les valeurs indifférentes ∅ par des 1 logiques l ’ ê é élorsqu ’un regroupement peut être opéré.
dc\ba 00 01 11 10
00 ∅ 1dc\ba 00 01 11 10
00 1 1
01 ∅ 1 ∅
11 1 1
10 1 1
01 0 1 1
11 1 1
10 1 1
T.EA
46
Simplification des fonction logiques
Remarque sur les regroupements:t l 0regroupement par les 0
forme ΠΣ
Méthodes algorithmiquesNelsonNelson
Quine-McCluskey
Méthode d consens s (Tison)Méthode du consensus (Tison)…
BDD : Diagramme de décision binairesimple à implémenter
T.EA
47
Diagramme de décision binaire (BDD)
Dérivé de l’arbre de décision binaire
BDD dépend de l’ordre dans lequel on a pris lesBDD dépend de l ordre dans lequel on a pris les variables
NœudNœud • variable binaire
• peut avoir plusieurs pères ap p p
• deux fils au plus
• feuilles :
a
1bvaleur 0 ou 1
possibilité de se combiner
1b
T.EA
48
Diagramme de décision binaire (BDD)
Technique de réductionSuppression des graphes représentant la même fonction
Suppression des sommets redondants
Suppression des doublons terminaux
Représentation unique pour un ordre de variables fixées !!
x0 1
x0 1
x0 1 01
x
y
z z0 1
y
z0 1
z zz z
1 0 1 00 0 11
1
z
1 00 1
1 1 00 1
1
z
1 00 1
z
T.EA
49
Diagramme de décision binaire (BDD)
Réduction des BDD - Exemplef( )
px y z f(x,y,z)0 0 0 00 0 1 0 x
f(x,y,z)
0 1 0 00 1 1 11 0 0 01 0 1 1
x
yy0
10
0 111 0 1 11 1 0 01 1 1 1 z z z z
0 0
0 0 0 0
11
1 1 1 1
0 0 0 1 0 1 0 1
T.EA
50
Diagramme de décision binaire (BDD)
f(x,y,z) f(x,y,z) f(x,y,z) f(x,y,z)
x 10 x 10 x1
0 x1
0
y
z z z
y0 0 11
z
y
01
z z
y 1
10
z
y 1
10
z z z
0 0 1 0 10 0 01 1 1
z
0 0 10 1
z
0 10 1
z
0 10 1
0
z
0 10 1
)()(),,( yxzyxxzyzxxzzyxf +=+=+=
T.EA
51
Diagramme de décision binaire (BDD)
Un outil destiné au BDD : Multiplexeur 2 vers 1l i f ti ( ? b) (if th l )en langage informatique : s=(c?a:b); (if…then…else…)c : commande, a et b données multiplexées, s=sortie
i t l l d l d ’ t it bi b isuivant la valeur de la commande, c ’est soit a ou bien b qui se retrouve à la sortie
également appelé sélecteur cs
0 1également appelé sélecteur
Implémentation des BDD
c
a b
0 1
y y 0 1y0 1
y 0 1
T.EA
52
Diagramme de décision binaire (BDD)
Exemplep
f(x,y,z)f(x,y,z)
x0
x 0 1
y 1
10
y 0 1
z
0 10 1
z 0 1
VDD0 1 VDD
GND
T.EA
53
Dualité
Forme duale d’une fonction•↔+0 1 ↔
010011 +→→+
0aa.1aa a a.aaaa
aa0a1.a 0a.01a1
=→=+=→=+
=+→==→=+
Sert pour la simplification des fonctions algébriques
Exemple :?))()(( ++++→+++ bababbabababababa
))()((
?))()((
↵=+++
+=+=++→=+++
babababa
bababbabababababa
T.EA
54
Chapitre II : Les circuits intégrés bi t icombinatoires
T.EA
55
Logique combinatoire
Définition de baseFonction logique combinatoire : toute fonction définieFonction logique combinatoire : toute fonction définie uniquement à partir de ses variables, quel que soit l’instant d’observation. Pour une combinaison des variables, la valeur de la fonction est unique
Circuit logique combinatoire : l ’état de ses sorties estCircuit logique combinatoire : l état de ses sorties est fonctions uniquement de l’état présent de ses entrées, c ’est à dire de ses variables d ’entrées. A chaque qcombinaison des entrées correspond une seule combinaison des sorties. Les états des sorties sont stables pour des états d’entrée stables.
T.EA
56
Système logique complet
Opérateurs logiques élémentaireslien avec l’algèbre de Boole :lien avec l algèbre de Boole :
conservation des propriétés vu précédemment
système logique complet : NON ET OUsystème logique complet : NON, ET, OUces 3 opérateurs permettent de décrire n’importe quelle fonction
Opérateur NON
O é t ET
xxx
1 1
Opérateur ET xy yx • &
Opérateur OUxy yx + ≥1
T.EA
57
Système logique complet minimisé
Système logique complet minimisé2 opérateurs ou 1 seul opérateur peuvent également2 opérateurs ou 1 seul opérateur peuvent également décrire n ’importe quelle fonction. Ils constituent un système logique complet.y g q p
ET, NON• opérateur OU :
x yx • yxyx +=•xy y
OU, NON• opérateur ET :
y
xy
x
y
yx + yxyx •=+
T.EA
58
Système logique complet minimisé
NAND (NON-ET) : xyx •y yx •
• opérateur NON
x x x xxx =•logique 1
x
• opérateur OU
x x
y
x
yyxyx +=•
T.EA
59
y y
Système logique complet minimisé
• Opérateur ET
x yx •
NOR (NON OU)
yy
NOR (NON-OU) xy yx +
• Opérateur NON
x xx =+ 0 x xxx =+xlogique 0
xx =+ 0 x xxx =+
• Opérateur OU
x yxyx +=+
T.EA
60y
Système logique complet minimisé
• Opérateur ETxx
yxyx •=+
y
Autres opérateursXOR (OU Exclusif )XOR (OU Exclusif )
XNOR (NON-OU Exclusif)
T.EA
61
Rappel : 1ère et 2ème forme (canonique)
• Somme canonique (1ère forme canonique - forme q ( qcanonique (ou normale) disjonctive):
somme de produits contenant toutes les variables de la
yzxzyxxyzzyxf ++=),,(fonction : somme de mintermesex :
• Produit canonique (2ère forme canonique - forme canonique (ou normale) conjonctive):
produit de sommes contenant toutes les variables de la fonction : produit de maxtermes
))((),,( zyxzyxzyxf ++++=ex :
T.EA
62
3ème et 4ème forme (canonique)
Ces 2 formes permettent de réaliser des fonctions logiques à l’aide des opérateurs NAND et NORlogiques à l aide des opérateurs NAND et NOR exclusivement
E l f )(Exemple :3ème forme:
yxyxyxf +=),(
yxyxyxyxyxf •=+=),(x y
),( yxf
T.EA
63
3ème et 4ème forme (canonique)
4ème forme: yxyxyxyxyxf +++=+=),(4ème forme: yxyxyxyxyxf ++++),(x y
),( yxff
Similitude entre la forme avec les NAND et NORSimilitude entre la forme avec les NAND et NOR (à un inverseur près)
T.EA
64
3ème et 4ème forme (canonique)
En pratique : utilisation simultanée des portes p q pNOR et NAND
Réalisation des fonctions sous forme directe ouRéalisation des fonctions sous forme directe ou inverse sans calcul :
xy yx +
xy yx •
xy
yx +xy
xyyy
T.EA
65
OU Exclusif (XOR)OU Exclusif (XOR)Non OU Exclusif (XNOR)
y x x ⊕ y x ⊕ y
( )Table de vérité Symboles
x ⊕y x x ⊕ y x ⊕ y
0 0 0 1
0 1 1 0
xy
yx ⊕
1 0 1 0
1 1 0 1xy =1 yx ⊕y
Propriétésxyyx ⊕=⊕
x yx ⊕
xx
zyxzyx
xyyx
=⊕⊕⊕=⊕⊕
⊕=⊕
0
)()(y yx ⊕
x
yxyxyx
yxyx
xx
⊕⊕⊕
⊕=⊕
=⊕ 0 xy =1 yx ⊕
T.EA
66
yxyxyx ⊕=⊕=⊕
Applications du XOR-XNOR
XOR :Détection de 2 éléments binaires différentsDétection de 2 éléments binaires différents
Détection d’un nombre impair de variables égales à 10 sinon 1 , si =⊕=⊕≠ yxyxyx
Détection d un nombre impair de variables égales à 1si x=0 et y=1 ou si x=1 et y=0, le nombre de variables égales à 1 est un nombre impair et la sortie du XOR vaut 1p
si x=y, le nombre de variables égales à 1est soit nul, soit égal à 2 et la sortie du XOR vaut 0
Addition de deux éléments binairesx y s r x s0 0 0 00 1 1 01 0 1 0
yx s
T.EA
67
1 0 1 01 1 0 1 r
Applications du XOR-XNOR
Opérateur programmableDéfinition : un opérateur est dit programmable si la relation entre la sortie et les entrées est fixée par une commande
x 0 si == cxs
XNORc 1 si == cxs
XNORDétection de 2 éléments binaires égaux
Détection d’un nombre pair de variables égales à 1
Opérateur programmablep p g
T.EA
68
Convention logique
Traduction physique des opérateurscorrespondance entre les états binaires et les étatscorrespondance entre les états binaires et les états physiques
système physique comprend 2 états distincts E et E onsystème physique comprend 2 états distincts E1 et E2, on peut associer :
E1 à 0 E2 à 1 ou bien E1 à 1 et E2 à 0E1 à 0, E2 à 1 ou bien E1 à 1 et E2 à 0
état physique == état électrique : 2 tensions V0 et V1
avec V0 < V1
convention logique positive : V1 ↔ 1 et V0 ↔ 0
convention logique négative : V1 ↔ 0 et V0 ↔ 1
T.EA
69
Convention logiquefl d h d i lInfluence du changement de convention sur les
opérateurs réaliséesNON → NON
OU → ET
NAND → NOR
NOR → NANDOU → ET
ET → OU
S l l ti l i l ê i it
NOR → NAND
XOR → XNOR
Selon la convention logique, le même circuit réalise 2 fonctions différentes
En pratique, convention fixée au début du projet et cette convention est conservée jusqu’à la fincette convention est conservée jusqu à la fin
Choix de la convention positive dans la majorité d
T.EA
70des cas
Transistor MOS : approx. numérique
Physique du transistor MOS (Métal-Oxyde-Semiconducteur) : cf. cours physique des
G) p y q
composantTransistor nMOS
DS
G
DS
G
Transistor pMOSTransistor nMOS
Le transistor MOS peut être vu comme un Sub Sub
Transistor pMOS
interrupteur (en électronique numérique)la grille (G) contrôle le passage du courant entre la g ( ) p gsource (S) et le drain (D)
les 2 états de l’interrupteur sont :p
0 ↔ GND=0V ou VSS (<VDD)
1 ↔ VDD=1 à 2V 5V 10V 15V
T.EA
71
1 ↔ VDD=1 à 2V, 5V, 10V, 15V
Transistor MOS : approx. numérique
Transistor nMOSt V VSS GND t V VDDpassant : VSub=VSS ou GND et VG=VDD
parfait pour passer l’état 0
i f it l’ét t 1 D01
D=00imparfait pour passer l’état 1
h t i éd (Z) d V GND0
D0
1
D 0
D≈1
0
1
haute impédance (Z) qd VG =GND
Transistor pMOSpassant : VSub=VDD et VG=VSS
parfait pour passer l’état 1 0p p p
imparfait pour passer l’état 0
Z qd VG=VDD0
1 1
D D≈0
D=1
0
1
T.EA
72
Z qd VG VDD 1
Transistor MOS : approx. numérique
Tensions de substrat implicites désormais
nMOS uniquement pour passer l’état 0 et pMOSnMOS uniquement pour passer l état 0 et pMOS uniquement pour passer l’état 1
Transistor MOS = multiplexeurD VDD 1 ZD
G G0 1
Z 0 D
0 1G
D
G
les transistors n et p combinés servent respectivement à
Z 0 D D
réaliser les 0 et 1 d’une porte logiquelogique complémentaire ou logique CMOS
T.EA
73
Inverseur CMOS
1 Z VDD
xx 0 1xx
0 1
1 Z
x
VDD
x 0 1
1 0 0 1x
xx x
Z 0
Séparation des 1 et Court-circuit masse-des 0 de la porte booléenne
alimentation impossible
T.EA
74
Porte de transfert et Multiplexeur
Porte de transfert (interrupteur logique)s s
0 1c c c
s
Multiplexeur : s=mux(c x y)
Z x x
Multiplexeur : s=mux(c,x,y)s s
0 1c
yxc
x cc
yx y
T.EA
75
DU BDD en porte CMOS
Exemple du chapitre I sur les BDDf( ) ( + )
f(x,y,z) f(x,y,z)
x 0 1
f(x,y,z)=(x+y)z
x x
( ,y, )
x x
( ,y, )
y 0 1
x x
z 0 1
y yy
y yy
0 1
VDD
GND
z zz
z zGND
VDDz
VDD
Traduction brute Suppression des t i t i til
T.EA
76transistor inutiles
Montages en série/parallèle
pMOS en sérienMOS en série1si0 xy = VDD y\x 0 1
x sinon
1 si 0
Z
xy =x
0 1 Z
1 Z Z
y y
i
0 si 1
Z
yx =+y\x 0 1
0 Z Z
1 Z 0
pMOS en parallèlenMOS en parallèlesinon Z1 Z 0
sinon ,1 si 0 Zyx =+x
VDD
y
y\x 0 1
0 1 1
x y x y
sinon ,0 si 1 Zxy =
1 1 Zy\x 0 1
0 Z 0
1 0 0
T.EA
77
1 0 0
NAND-NOR CMOS
NAND CMOSVDD
\ 0 1
x yy\x 0 1
0 1 1 Bloc p
xxy1 1 0
1 si xy=0 Bloc ny0 si xy=1
y Bloc n
li blGénéralisable à n entrées
T.EA
78
NAND-NOR CMOS
NOR CMOS VDD
y\x 0 1
0 1 0x
Bloc p1 0 0
1 si x+y=0
yyx +
Bloc p
0 si x+y=1
1 si x+y=0x y Bloc n
Généralisable à n entrées
T.EA
79
Synthèse des fonctions logiques CMOS
Pour implanter une fonction f quelconque en l i lé t ilogique complémentaire :
exprimer sous forme de somme de produits (Σπ)f
optimiser la somme de produits (réduction)
traduire cette somme de produits en suivant lestraduire cette somme de produits en suivant les consignes ci-dessous:
Bloc p x parallèle sériep p
∑∏=f x • +
Bloc n x série parallèle
T.EA
80
Synthèse des fonctions logiques CMOS
Exemple : abcfabcf +=⇒+=
VDD
b ac abcf +=
a b ab 6 transistors
cabcf +=
cb
a
ac abcf +=
bb
10 transistors
T.EA
81
Synthèse des fonctions logiques CMOS
Exemple : )( bacabcabcabf ++=++=
VDD VDDVDD
aa b
c a
cb VDDb
c
VDD
ac
ab
a
a
b
VDD
cb
a ab
c c a
bb14 transistors
a bb14 transistors
12 transistors
T.EA
82
Synthèse des fonctions logiques CMOS
Transistors en séries délais excessifsFractionner une porte en plusieurs
VDD
1x nx n/2
1x n/2
nx1…xn
nxn
T.EA
83
Caractéristiques électriques des portes
Transitions non idéales90%90%
10%tf : fall timetr : rise time
Retard en sortie des portesaaa
50%a
a 50%
a
a
tpHL : high to low propagation delay
50%
tpLH : low to high propagation delay
T.EA
84
propagation delay propagation delay
Caractéristiques électriques des portes
Influence de la charge sur le temps de propagation
Porte A Porte B
Porte A Porte B tpHL
Porte CtpHL =0.10 + 0.04L ns
T.EA
85
Caractéristiques électriques des portes
DéfinitionsCharge unité standardg
• en général, correspond à la charge introduite par une porte de base tel que l’inverseur
Facteur charge• exprime la charge à l’entrée d’une porte en fonction de la charge
unitéunité
Charge en sortie d’une porte (output load : L)• c’est la somme des facteurs de charge de toutes les entrées g
connectées à la sortie d’une porte
Sortance (Fan-out) : c’est la charge maximale acceptée par iune porte sur sa sortie
Entrance (Fan-in) : c’est la charge aux entrées d’une porte
T.EA
86
Aléas statiques
Origine des aléas en théorie: 0et1 =•=+ aaaaen théorie:
en pratique : il existe un retard entre a et la sortie
d dû à l i
0et 1 =•=+ aaaa
a
ce retard est dû à la porte inverseuse
aa aaniveau d’inversion
a
a
idéalisé a
0i 0=+ aamenttemporaire
1 =• aamenttemporairealéas
T.EA
87
Aléas statiques
Circuit logique avec un aléab ab
caabcbaf +=),,(ab ab
ac ca
ment théorique,11 =+=⇒== aafcb
en pratique, f n’est pas égale à 1 en permanence
aléa peut perturber le fonctionnement du circuit en avalp p
T.EA
88
Aléas statiques
Théorème de la redondanceDans une expression booléenne ayant la forme d’uneDans une expression booléenne ayant la forme d une somme de produits, un produit contenant tous les facteurs d’un autre produit est redondant ce qui permetfacteurs d un autre produit est redondant, ce qui permet de l’éliminer
Exemple :Exemple :a+ab=a
ab+abc+abd=abab+abc+abd=ab
caababcdbcdacaaba)abcd(caabbcdcaab +=+++=+++=++
T.EA
89
Aléas statiques
RemèdesThéorème des aléas pour : menttemporaireaa 0=+Théorème des aléas pour :
Dans une somme de produits, on peut introduire des produits redondants correspondant au produit des
menttemporaireaa 0+
produits redondants, correspondant au produit des coefficients de :
La sortie est forcée à 1
aa et
La sortie est forcée à 1
Exemple :babbaabaaf +=++=+=1
cbbaabbcbaabcbaaf
babbaabaaf
+++=+++=++=
+=++=+=
)1(2
1
bccaabcaabf
babbaa
+++
+=++=
3
T.EA
90bccaabcaabf ++=+=3
Aléas statiques
Méthode KarnaughRegrouper les paquets déjà constitués entre-euxRegrouper les paquets déjà constitués entre-eux
b\a 0 1
baaf +=1 bcbaaf ++=2c\ba 00 01 11 10
0 0 1
1 1 1
c\ba 00 01 11 10
0 0 1 1 1
1 0 1 1 1
Cause
baf +=1 baf +=2caabf +=3 caabf +3
c\ba 00 01 11 10
0 0 0 1 0
bccaabf ++=3
1 1 0 1 1
T.EA
91
bccaabf ++3
Aléas statiques
Correction du circuit avec aléa
bbbf )(b ab
bccaabcbaf ++=),,(
aa
ca
c
Cas des aléas causés par (=1 temporairement)aa •
on introduit le terme redondant (b+c) :
aléa ,0 qd ))(( ⇒===++= aafcbcabaf
on introduit le terme redondant (b+c) :0,0 qd ))()(( ===+++= fcbcbcabaf
T.EA
92
Chapitre III : Codesp
T.EA
93
Codes-Codage
DéfinitionCodeCode
correspondance arbitraire entre un ensemble de symboles et un ensemble d ’objet e se b e d objet
ex: code Morse : une série de points et de traits représentent les lettres de l’aphabet
CodageAction de faire correspondre à des nombres, des lettres ou des pmots, un groupe de symbole (code)
T.EA
94
Codes-Codage
Types codespondérés :pondérés :
code décimal, binaire naturel, octal, hexadécimal, DCB...
non pondérésnon pondérés code majoré de 3, code de gray
d d t d dét t t t d’redondants: codes détecteurs et correcteurs d’erreurscodes p parmi n, code biquinaire, code avec éléments binaires de paritéde parité…
codes alphanumériquesd ASCII (CTI 5) d ASCII ét d U i dcode ASCII (CTI 5), code ASCII étendu, Unicode
T.EA
95
Codes pondérés
Manipulation courante des nombres décimaux (base 10)(base 10)
Systèmes numériques : nombres binaires (base 2)
Besoin de circuits réalisant la conversion :décimale ⇔ binairedécimale ⇔ binaire
Autres systèmes de numération pour représenter de gros nombres binaires
Octal : base 8
Hexadécimal : base 16
T.EA
96
Code décimal
Base 1010 b l 0 1 2 3 4 5 6 7 8 910 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
système à poids positionnelsla valeur d’un chiffre dépend de sa position dans le nombre
exemple453,89610 = 4 x 102 + 5 x 101 + 3 x 100 + 8 x 10-1 + 9 x 10-2 + 6 x 10-3
P id f t P id f iblP id d 0
Tout nombre est la somme des produits de chaque chiffre par
Poids fort Poids faiblePoids de rang 0
le poids de son rang dans le nombre
{ }9;8;7;6;5;4;3;2;1;0avec10i ∈= ∑ ii xxx
T.EA
97
{ }9;8;7;6;5;4;3;2;1;0avec 10 ∈∑ ii
i xxx
Code binaire
Base 22 symboles : 0 et 1sy bo es : 0 etsystème à poids positionnels
la valeur d’un chiffre dépend de sa position dans le nombrep p
exemple1011,0112=1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 + 0 x 2-1 + 1 x 2-2 + 1 x 2-, 23
Bit de poids fort (MSB) Bit de poids faible (LSB)
= 8 + 2 + 1 + 0,25 + 0,125 = 11,37510
Bit de poids fort (MSB) Bit de poids faible (LSB)
{ }1;0 avec 2i ∈= ∑ ii
i xxx
T.EA
98
Code octal
Base 88 symboles : 0, 1, 2, 3, 4, 5, 6, 7
système à poids positionnelsy p pla valeur d’un chiffre dépend de sa position dans le nombre
exempleexemple275,468=2 x 82 + 7 x 81 + 5 x 80 + 4 x 8-1 + 6 x 8-
2=189,593751010
{ }7;6;5;4;3;2;1;0 avec 8i ∈= ∑ ii
i xxxi
T.EA
99
Code hexadécimal
Base 1616 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F16 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
éq. décimal : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11, 12,13,14,15
éq binaire : 0000 0001 0010 1101 1110 1111éq binaire : 0000, 0001, 0010,…………,1101,1110,1111
système à poids positionnelsl l d hiff d d d i i d l bla valeur d’un chiffre dépend de sa position dans le nombre
exemple2A,1C16=2 x 161 + 10 x 160 + 1 x 16-1 + 12 x 16-2
=42,10937510
{ }FEDCBAxxx ii
i ;;;;;;9;8;7;6;5;4;3;2;1;0 avec 16i ∈= ∑
T.EA
100
Comptage binaire
Avec N bits, on a 2N valeurs numériques
Exemple : N=3Exemple : N=3
22 21 20 Eq. décimal0 0 0 00 0 0 00 0 1 10 1 0 20 1 1 30 1 1 31 0 0 41 0 1 51 1 0 61 1 1 7
LSBMSB
T.EA
101
Conversion binaire ↔ décimal
Binaire → décimalsomme de produit des chiffres binaires par son poidssomme de produit des chiffres binaires par son poids
Décimal → binaire1ère méthode : le nombre décimal est exprimé comme une puissance de 2 et on inscrit 1 ou 0 vis-à-vis des positions binaires appropriées
ex : 39=32+4+2+1=1 x 25 + 0 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20
= 100111
T.EA
102
Conversion binaire ↔ décimal
2ème méthode : division successive
39 2100111
191 291 2
41 220 2
10 201
T.EA
103
Conversion octal ↔ décimal
octal → décimalsomme de produit des chiffres octals par son poids
dé i l → t ldécimal → octalméthode par division successive (division par 8)
39 847 8
478
47 804
T.EA
104
Conversion octal ↔ binaire
Tableau de correspondanceex: 472 =100 111 010O l Bi i ex: 4728=100 111 010
1101001=001 101 001=1518
Octal Binaire0 0001 0012 0103 0114 1004 1005 1016 1107 1117 111
T.EA
105
Conversion hexadécimal ↔ décimal
hexadécimal → décimald d it d hiff é it dé i lsomme de produit des chiffres écrits en décimals par
son poids
décimal → hexadécimalméthode par division successive : division par 16p p
444 161BC16
2712 16111 16
01
T.EA
106
Conversion hexadécimal ↔ binaire
Tableau de correspondanceex: 1BC=0001 1011 1100H dé i l Bi i ex: 1BC=0001 1011 1100
0001 1110 1001=1E9
Hexadécimal Binaire0 00001 00012 00103 00114 01005 01016 01106 01107 01118 10009 1001A 1010A 1010B 1011C 1100D 1101E 1110F 1111
T.EA
107
Code complément
Coder les nombres négatifsgcode complément à la base
code complément à la base diminuécode complément à la base diminué
Opérateur d ’addition utilisé pour les soustractions
T.EA
108
Code complément à la base B
N positions
A chaque position un chiffre xi tel que 0 ≤ xi ≤ B-1A chaque position, un chiffre xi tel que 0 ≤ xi ≤ B 1
si 0 ≤ x ≤ BN/2 - 1 alors x∑−
2-Ni1N BBsi -BN/2 ≤ x ≤ -1 alors BN+x
Remarques : en pratique B est pair
∑=
+=0i
ii
1N1-N BxB-xx
Remarques : en pratique B est pair
Exemple : complément à B=2 et N=42
∑=
+=2
0i
ii
33 2x2-xx
x=-5=-1x23+0x22+1x21+1x20 → x=16-5=1110=10112
x=5 =0x23+1x22+0x21+1x20 → x=0101
T.EA
109
x=5 =0x2 +1x2 +0x2 +1x2 → x=01012
Code complément à la base B
Exemple (suite) : B=2 et N=4p ( )7 01116 0110
01015 01014 01003 00112 00101 00010 0000
-1 1111-2 1110-3 1101-4 1100-5 1011-6 1010
T.EA
110-7 1001-8 1000
Code complément à la base B restreint
N positions
A chaque position un chiffre xi tel que 0 ≤ xi ≤ B-1A chaque position, un chiffre xi tel que 0 ≤ xi ≤ B 1
si 0 ≤ x ≤ BN/2 - 1 alors x
si -BN/2+1 ≤ x ≤ 0 alors BN-1+x
RemarquesRemarques0 a deux représentations (0...00 et (B-1)(B-1)…(B-1))
f il d’ b à épassage facile d’un nombre à son opposé :
-x → (x)2 = (BN-1-x)10
Exemple: B=2→complément à 1 (restreint-diminué) x=5=0101 et -x=-5=1010 ou 24-1-5=10=1010
T.EA
111
x=5=01012 et -x=-5=10102 ou 2 -1-5=10=10102
Code complément à 2
Codage des entiers dans un ordinateur
Dé l d l défi i i d l 2 d bDécoule de la définition modulo 2n des nombressi x ≥ 0 : écriture en binaire naturel de x, éventuellement
lété d 0 à hcomplété par des 0 à gauche
si x < 0 : écriture en binaire naturel de 2n + x ou 2n -⏐x⏐( d l 2n)(modulo 2n)
exemple : 8 bi i 83 01010011sur 8 bits si x = +83 → x = 01010011
si x = -83 = 256-83=173 → x = 10101101
MSB bi d i (N)remarque : MSB = bit de signe (N)0 ↔ + 1 ↔ -
T.EA
112
Code complément à 2
Astuce de calculbt ti id d l’ é d’ t bi i Aobtention rapide de l’opposé d’un mot binaire A
-A=2n - A= 2n - 1 - A + 1
Nbr dont tous les Complément de A Complément à 1 ou chiffres binaires sont à 1 (0 → 1 et 1 → 0) complément restreint de A
1AA +exemple :
1AA +=−
0101001183 =+ bit de signe (N) = 0
10101101 1 10101100 83-
0101001183
=+=+
bit de signe (N) = 1
g ( )
T.EA
113
Code complément à 2
Règle pratique : lecture de la droite vers la gauche (du LSB vers le MSB). Complémentation après le premier bit à ‘1’vers le MSB). Complémentation après le premier bit à 1 rencontré et maintenu.
Extension du bit de signe par la gaucheExtension du bit de signe par la gauche
exemple : sur 16 bits
+83 0000000001010011+83= 0000000001010011
-83 = 1111111110101101
Addition et soustraction se ramènent à une même opération
Division et multiplication par des puissances de 2 sont des p p pdécalages arithmétiques à droite et à gauche (c-à-d avec conservation des signes)
T.EA
114
g )
Code complément à 10
Trouver l’opposé de 240 (nombres sur 3 digits)pp ( g )complément à 9 : C9(240)=103-1-240=759
complément à 10 : C10(240)=759+1=760complément à 10 : C10(240) 759+1 760
Calculer 800-240 3800 + (-240) = 800 + 760 = 1560 = 560 (modulo 103)
T.EA
115
Virgule fixe
Codage à virgule fixe d’un nombre dans la base BN bits pour la partie entière et M bits pour la partieN bits pour la partie entière et M bits pour la partie décimale 1
== ∑−
BxxxxxxxxxN
i
{ }13210
...,... 321021
∈
== ∑−=
−−−−−−
Bxavec
BxxxxxxxxxMi
iMNN
exemple :
{ }1...,3,2,1,0 −∈ Bxavec i
B=2, N=3 et M=2 101,012=1x22+0x21+1x20+0x2-1+1x2-2=5,2510
B=8, N=2 et M=1 24,68=2x81+4x80+6x8-1=20,7510
T.EA
116
Code DCB (8-4-2-1)
DCB =Décimal Codé Binaire é t ti d h hiff d ’ b dé i lreprésentation de chaque chiffre d ’un nombre décimal
par son équivalent en binaire
C d dé é l id 23 22 21 20Code pondéré avec les poids 23, 22, 21, 20
exemple : 978 décimal ⇒ 1001 0111 1000 DCB
Remarques : 4 bits pour chaque chiffre décimal4 bits pour chaque chiffre décimal
utilisation des groupes binaires de 0000 à 1001
b DCB ’ t b bi iun nombre DCB n’est pas un nombre binaire pur
T.EA
117
Code DCB (8-4-2-1)
exemple : 26910=10001101 en binaire10
26910=0010 0110 1001 en DCB
Avantage du code :Avantage du code :passage facile en décimal et vice-versa
T.EA
118
Code Aiken (2-4-2-1)
Code complément à 9 ou auto-complémentaire
4 élé bi i4 éléments binaires
Pondéré :poids positionnel de chaque élément binaire : 2-4-2-1
Remarques :
- différents codages pour certains g pchiffres
T.EA
119
Code majoré de trois (CMT)C d éd 3 d l 3CMT ou code excédant 3 ou code plus 3
permet de faciliter certains calculs arithmétiques
complémentaire à 9
Analogie avec le code DCB gsauf qu’il faut ajouter 3 à chaque chiffre décimal avant de faire la conversion => code non pondéréfaire la conversion code non pondéré
exemple : CMT(4)=4+3=7=0111
CMT(48) => 4+3=7 et 8+3=11 => 0111 1011CMT(48) => 4+3=7 et 8+3=11 => 0111 1011
Tableau décimal, DCB et CMT D écim al D C B M C T
0 0000 00111 0001 01001 0001 01002 0010 01013 0011 01104 0100 01115 0101 1000
T.EA
1206 0110 10017 0111 10108 1000 10119 1001 1100
Code Gray (binaire réfléchi)C d di à di i i lCode dit à distance minimale
entre 2 représentations il n’y a qu’un bit qui change
Code non pondéré : pas de poids affectés aux positions binaires du codepas de poids affectés aux positions binaires du code
ne convient pas aux calculs arithmétiquesDécimal Binaire Gray
0 0000 00001 0001 00012 0010 00113 0011 00103 0011 00104 0100 01105 0101 01116 0110 01017 0111 01008 1000 11009 1001 1101
10 1010 111111 1011 111012 1100 1010
T.EA
12113 1101 101114 1110 100115 1111 1000
Code alphanumérique
Codage des nombres, des lettres, des signes de ponctuation des caractères spéciauxponctuation, des caractères spéciaux…
Code ASCII (American Standard Code for I f i I h ) ANSI X3 4Information Interchange) ou ANSI X3.4
code à 7 bits soit 27=128 groupes possibles
Décimal=ligne+colonne
Exemple : A→65Exemple : A→6510
T.EA
122
Code ASCII étendu
EBCDIC (Extended Binary Coded Decimal Interchange Code) : 8 bitsg )
6 versions incompatibles entre-elles.
Code ASCII étendu OEM (les 1er IBM PC)Code ASCII étendu OEM (les 1er IBM PC)
Code ASCII étendu ANSI (syst. exploitation récents)
T.EA
123
Code ASCII étendu
T.EA
124
Unicode
Standard UNICODE
codage sur 16 bits ( 30 000 caractères couvrant lacodage sur 16 bits ( 30 000 caractères couvrant la plupart des langages du monde.)
128 i tè tè ASCII128 premiers caractères == caractères ASCII
128 suivants== caractères LATIN 1 de l’ASCII
puis, les caractères cyrilliques, arméniens, hébreux, arabes, sanscrit, bengali, etc…, , g ,
englobe également plus de 20 000 idéogrammes chinois Hanchinois Han
T.EA
125
Codes détecteurs d’erreurs
Transmission de donnée (voies hertzienne, filaire…)
émetteur récepteur
S k d d é d é i (diStockage de données dans une mémoire (disquette, disque dur…)
Probabilité non nulle qu’une erreur survienne
T.EA
126
Codes p parmi n
A chaque chiffre décimal correspond n éléments bi i d t t à 1 t à 0binaires dont p sont à 1 et n-p à 0
si le nbr de 1 est différent à l’envoi et à la réception, il y a une erreur. Permet de détecter 1 erreur
ex : code 2 parmi 5p
T.EA
127
Code biquinaire
Composé de 2 groupes d’éléments binaires chacun contenant un 1contenant un 1
Permet de détecter 2 erreurs (une dans chaque groupe)
T.EA
128
Codes avec éléments binaires de parité
Nbr total de 1 pair (impair)exemple : 0 0 0 0 0
1 0 0 1 00 1 0 0 1
Détection de la place d ’un bit erroné
0 1 0 0 1
bit de parité paire
Détection de la place d un bit erroné codage en 2D (lignes et colonnes)
Emission Réception
Contrôle horiz.
Réception
T.EA
129Contrôle vertical
Codes détecteurs et correcteurs d’erreurs
Augmentation du nombre de bits de paritédétection, localisation et correction des erreurs
ex : code de Hamming (cf. TD)
T.EA
130
ClassificationApplications Codes recommandésTraitement de l'information
Comptage binairep gVisualisation BCD
Arithmétique binaire MCT, aiken, Compl.1 et 2q pAddition, soustraction
Chiffres, lettres, caractères ASCII, unicode
Transmission des données numériquesMinimisation d'erreur GraySimplification Tableau de KarnaughAsservissement
Dé d' i bi i i bi d i éDétecteur d'erreur p parmi n, biquinaire, bit de parité
Détection et correction d'erreurs Hamming
T.EA
131
Chapitre IV :Opérateurs logiques é T dcomposés - Transcodeurs
T.EA
132
Opérateurs logiques composés
Composés à partir d’opérateurs de basep p p
Eléments de conditionnement de données (mux) ou de contrôle d’éléments logiques (décodeur)ou de contrôle d éléments logiques (décodeur)
Notation :variable peut être active à l’état 0 ou 1
pour indiquer que la variable x est active à l’état 0, onpour indiquer que la variable x est active à l état 0, on l’écrit x
T.EA
133
Multiplexeur p vers 1
DéfinitionO i it t é d d é t t tOrgane qui reçoit p entrées de données et transmet par sa sortie une de ces entrées au choix
é d ôl 2 é dpour n entrées de contrôle p=2n entrées de données aux maximum et 1 sortie de données
parfois, une entrée de validation supplémentaire V
Vn entrées de contrôle
V
MUX2n entrées de données 1 sortie de données
T.EA
134
Multiplexeur p vers 1
Exemple d’un multiplexeur 4 vers 1a et b : entrées de contrôles
x0…x3 : entrées de données0 3
s : sortieabxbaxbaxbaxs +++=
aabxbaxbaxbaxs 3210 +++= b
xx0
x1s
x2
T.EA
135
x3
Multiplexeur de mots d’entrées
Peut être vu comme un ensemble de multiplexeurs p vers 1 fonctionnant simultanément avec lap vers 1 fonctionnant simultanément avec la même adresse
0
MUX
Mot n°0x-1
deN motsMot n°i
x-1
0 0
x-1Mot de sortie
dex bits
0Mot n°N-1
x-1
T.EA
136N bits de contrôle
Multiplexeur de mots d’entrées
Exemple : multiplexeur de 4 mots de 2 bits4 mots : a=a1a0, b=b1b0, c=c1c0, d=d1d0
2 bits de contrôle : x et y
1 mot en sortie s=s1s0
a1
b MUX
a0
b0b1
c1
s1
MUX4→1c0
d
s0
d1
x y
d0
x y
T.EA
137
Multiplexeur - Générateur de fonctions
Théorème d’expansion de Shannon)11()01()10()00()( abffbabfafbabaf +++
Multiplexeur 4 vers 1
)1,1()0,1()1,0()0,0(),( abffbabfafbabaf +++=
entrées : x0 à x3, bits de contrôle : a et b, sortie : s
3210 abxxbabxaxbas +++=
Possibilité de réaliser toutes les fonctions de 2 i bl
3210 abxxbabxaxbas +++
variablesentrées de contrôle du multiplexeur ↔ variables de la fonction
entrées du multiplexeur ↔ valeurs de la fonction
T.EA
138
Multiplexeur - Générateur de fonctions
Toute fonction logique de N variables est réalisable avec un multiplexeur 2N vers 1réalisable avec un multiplexeur 2 vers 1
Exemple : table de vérité de la fonction majorité
cbabacabcacbabcf +++=),,(
y00N c b a f(c,b,a) y0 0 0 0 0 y01 0 0 1 0 y1
Mux
y1
y0
y2y3
00
012 0 1 0 0 y2
3 0 1 1 1 y34 1 0 0 0 y45 1 0 1 1 y5
Mux8vers1
y3y4y5y6
f(c,b,a)10115 1 0 1 1 y5
6 1 1 0 1 y67 1 1 1 1 y7
c b a
y7 22 21 2011
T.EA
139
Multiplexeur - Générateur de fonctions
Toute fonction logique de N variables est réalisable avec un multiplexeur de 2N-1 vers 1réalisable avec un multiplexeur de 2 vers 1
Exemple : cbaacbabcbacabcf +++=),,(
1...),,( cbabcabcabcf ++=
yc b a f(c,b,a) cb f y0 0 0 0 00 0 y00 0 1 00 1 0 0 01 1 Mux
y0
y1a
0
0 1 0 0 01 a y10 1 1 11 0 0 1 10 /a y21 0 1 0
Mux4vers1
f/a
y2
y311 0 1 01 1 0 1 11 1 y31 1 1 1
c b
21 20
y31
T.EA
140
Convertisseur parallèle série
Envoyé sur une seule ligne une donnée binaire codée sur n bits de manière série. Chaque bit qenvoyé étant espacé d’un temps fixe
Balayage cyclique des entrées de sélection du muxBalayage cyclique des entrées de sélection du muxconversion parallèle série
Exemple :a b c s0 0 0 10 0 0 10 0 1 10 1 0 00 1 1 0 t
1
01 0 0 11 0 1 11 1 0 01 1 1 1
t000 001 010 011 100 101 110 111
T.EA
141
1 1 1 1
Démultiplexeur 1 vers p
DéfinitionO i it 1 t é d d é t l t tOrgane qui reçoit 1 entrée de données et la transmet par une de ses sorties au choix
é d ôl 2 i dpour n entrées de contrôle p=2n sorties de données aux maximum et 1 entrée de données
parfois, une entrée de validation supplémentaire
Vn entrées de contrôle
V
DEMUX 2n sorties de données1 entrée de données
T.EA
142
Démultiplexeur 1 vers p
Exemple d’un démultiplexeur 1 vers 4a et b : entrées de contrôles (a poids faible b poids fort)a et b : entrées de contrôles (a poids faible, b poids fort)
x : entrée de données
i d d és0…s3 : sorties de données
a
bxas
baxs
1
0
=
= b
s0
xabs
baxs2
1
== s1
xabs3 = x s2
s3
T.EA
143
3
Démultiplexeur-Générateur de fonctions
cbabacabcacbabcf +++)(
Table de vérité de la fonction majoritécbabacabcacbabcf +++=),,(
N c b a f(c,b,a) y y0( , , ) y0 0 0 0 0 y01 0 0 1 0 y12 0 1 0 0 y2 Démux
y1
y0
y2y3
13 0 1 1 1 y34 1 0 0 0 y45 1 0 1 1 y56 1 1 0 1 6
Démux1vers8
y4y5y6y
f(c,b,a)
1
≥16 1 1 0 1 y67 1 1 1 1 y7
c b a
y722 21 20
T.EA
144
Générateur et contrôleur de parité
Principeajouter des éléments binaires supplémentaires dansajouter des éléments binaires supplémentaires dans l’information utile à contrôler
vérification de l’intégrité de l’information utile envérification de l intégrité de l information utile en recalculant les éléments binaires et en les comparant avec les éléments binaires ajoutésavec les éléments binaires ajoutés
identique : information utile exploitable
différent : information utile inexploitabled é e : o o u e e p o b e
UtilisationContrôler la bonne transmission des donnéesContrôler la bonne transmission des données
Contrôler le bon fonctionnement de la mémoire vive d ’un ordinateur
T.EA
145
ordinateur
Générateur et contrôleur de paritéGé é d i é l i ( i é i )Générateur de parité logique (parité paire)
Utilisation de la propriété du XOR : vaut 1 si le nombre de variables égales à 1 est impair
vaut 0 si le nombre de variables égales à 1 est pair ou nul
Générateur d’imparité logique (parité impaire)Obtenu en complémentant la sortie du générateur deObtenu en complémentant la sortie du générateur de parité
vaut 0 si le nombre de variables égales à 1 est impairvaut 0 si le nombre de variables égales à 1 est impair
vaut 1 si le nombre de variables égales à 1 est pair ou nul
T.EA
146
Générateur et contrôleur de parité
ExempleGé é t d ité iGénérateur de parité paire
x3xxxxP ⊕⊕⊕=x2x1x0
(1 si nbr de 1 impair, sinon 0)
x0
0123 xxxxP ⊕⊕⊕=
Contrôleur de parité pairex3x2x1x0
Vers le récepteur
Contrôleur de parité paire
x0
P
x3
x2
x10
(1 =erreur, 0 pas d’erreur)
0123 xxxxPE ⊕⊕⊕⊕=
T.EA
147
Transcodeur
Définitionf ti tt t d d’ d A à d Bfonction permettant de passer d’un code A à un code B
p entrées → k sorties
Décodeur : n entrées → 2n sorties max dont une seule est validée
(En)codeur : 2n entrées→ n sorties
Caractéristiques générales C t ôlVCaractéristiques générales ContrôleV
x0 Code 1 y0x1
xn 2 yyp-
T.EA
148Code 2xn-2xn-1
yp-
1
2
Décodeur
Pour chaque combinaison des variables d’entrées, une seule variable de sortie est activéeune seule variable de sortie est activée
n entrées, m entrées de contrôle, p sorties (2n max)
décodeur complet : n entrées et 2n sorties
Exemple :Exemple : contrôleV
y0
3 vers 8x0x
y1
y0
y2y3
(bin/oct)x1x2
y4y5y6y
T.EA
149
y7
Décodeur
Table de véritéV c b a y0 y1 y2 y3 y4 y5 y6 y7y y y y y y y y0 X X X 0 0 0 0 0 0 0 01 0 0 0 1 0 0 0 0 0 0 01 0 0 1 0 1 0 0 0 0 0 01 0 1 0 0 0 1 0 0 0 0 01 0 1 0 0 0 1 0 0 0 0 01 0 1 1 0 0 0 1 0 0 0 01 1 0 0 0 0 0 0 1 0 0 01 1 0 1 0 0 0 0 0 1 0 01 1 0 1 0 0 0 0 0 1 0 01 1 1 0 0 0 0 0 0 0 1 01 1 1 1 0 0 0 0 0 0 0 1
Equations logiques des yiabcVy = abcVy = abVcy = aVcby =
abcVy
abcVy
=
=
1
0
bacVy
abcVy
=
=
3
2
abVcy
abVcy
=
=
5
4
Vcbay
aVcby
==
7
6
T.EA
150
Décodeur
Schéma logique
a
b
c
V
y0 y1 y2 y3 y4 y5 y6 y7
T.EA
151
Décodeur - Générateur de fonction
Table de vérité de la fonction majorité Sortie égale 1 ou 0 selon qu ’il y a plus de 1 ou de 0Sortie égale 1 ou 0 selon qu il y a plus de 1 ou de 0
cbabacabcacbabcf +++=),,(N c b a f(c,b,a) y0 0 0 0 0 y01 0 0 1 0 y12 0 1 0 0 y2 c
y1
y0
y2222 0 1 0 0 y23 0 1 1 1 y34 1 0 0 0 y45 1 0 1 1 y5
3 vers 8cba
y3y4y5y
21
20
≥1 f(c,b,a)
Souvent assimilé à un démultiplexeur
5 1 0 1 1 y56 1 1 0 1 y67 1 1 1 1 y7
y6y7
≥1 f(c,b,a)
Souvent assimilé à un démultiplexeurdécodeur/démultiplexeur
T.EA
152
Adressage mémoire
Mémoire == tableau d’éléments binaires
Envoi d’un numéro de ligne (adresse) => lecture d’un motEnvoi d un numéro de ligne (adresse) => lecture d un mot en mémoire
Une mémoire de 1024 lignes nécessite 10 bits d’adresseUne mémoire de 1024 lignes, nécessite 10 bits d’adresse
Le décodeur permet la sélection d ’une seule ligne à un i t t d éinstant donné
Ligne 0
mémoire
01101000
décodeur
Ligne i10Adresse i
Ligne 1023
T.EA
153Chip Select (CS)
Autorisation accès mém.
01101000 Sortie ligne i
Décodeur 7 segments
Afficher un chiffre décimal sur un afficheur 7 segmentssegments
a
bfAnode
cd
e
g
dcathode
Vanode > Vcathode
Afficheurs à cathodes ou anodes communesdp
a b c d e f g dp
a b c d e f g dp
pour la suite on ne tient pas compte du dp (decimal i )
a b c d e f g dp
T.EA
154point)
Décodeur 7 segmentsChiff è ffi héChiffres et caractères affichés
Remarque : 6 9 ê é é6, 7, 9, c, e peuvent être représentés par
les circuits commerciaux génèrent après 9 d’autres
T.EA
155
g psymboles
Décodeur 7 segments
Pour la suite, on ne tient pas compte des valeurs supérieures à 9 asupérieures à 9
Décodeur 7 segments bin/7segBC
A bcd
a
Table de vérité bin/7segC
Dfg
e
N D C B A a b c d e f g0 0 0 0 0 1 1 1 1 1 1 01 0 0 0 1 0 1 1 0 0 0 02 0 0 1 0 1 1 0 1 1 0 13 0 0 1 1 1 1 1 1 0 0 14 0 1 0 0 0 1 1 0 0 1 15 0 1 0 1 1 0 1 1 0 1 16 0 1 1 0 1 0 1 1 1 1 17 0 1 1 1 1 1 1 0 0 0 08 1 0 0 0 1 1 1 1 1 1 1
T.EA
156
8 1 0 0 0 1 1 1 1 1 1 19 1 0 0 1 1 1 1 1 0 1 1
Décodeur 7 segmentsOb i d é i è i lifi iObtention des équations après simplification
Segment a Segment bdc\ba 00 01 11 10
00 1 1 1 1
01 1 0 1 0
dc\ba 00 01 11 10
00 1 0 1 1
01 0 1 1 1
ACCADBa +++= ABBACb ++=
11 X X X X
10 1 1 X X
11 X X X X
10 1 1 X X
ACCADBa +++= ABBACb ++=
d \b 00 01 11 10
Segment c Segment ddc\ba 00 01 11 10
00 1 1 1 0
01 1 1 1 1
11 X X X X
dc\ba 00 01 11 10
00 1 0 1 1
01 0 1 0 1
11 X X X X
10 1 1 X X
ABCDc +++= ABCCBABACDd ++++=
11 X X X X
10 1 1 X X
T.EA
157
ABCDc +++ ABCCBABACDd ++++
Décodeur 7 segments
Segment e Segment fdc\ba 00 01 11 10
00 1 0 0 1
01 0 0 0 1
dc\ba 00 01 11 10
00 1 0 0 0
01 1 1 0 1
11 X X X X
10 1 0 X X
ACABe +=
11 X X X X
10 1 1 X X
ACABBCDf +++=
Segment g
ACABe += ACABBCDf +++=
dc\ba 00 01 11 10
00 0 0 1 1
01 1 1 0 1
11 X X X X
10 1 1 X X
BCABBCDg +++=
T.EA
158
BCABBCDg +++=
Encodeur
Opérateur inverse du décodeur
2n entrées,
m entrées de contrôlecontrôleG
x0m entrées de contrôle
n sorties encodeur
0
X n-1
y0
yn-1
Permet de réduire le nombre d’informations
X2n 1 yn 1
Permet de réduire le nombre d informations véhiculées
d d t h d’ l i d tècodage des touches d’un clavier : passage du système décimal au système binaire
T.EA
159
EncodeurlExemple
x3 x2 x1 x0 y1 y00 0 0 1 0 0
Une seule entrée active à la fois0 0 0 1 0 00 0 1 0 0 10 1 0 0 1 01 0 0 0 1 1
Pour tous les autres cas, y1=y0=0 (par défaut)
Eq. Logiques
1 0 0 0 1 1 y1 y0 0 (par défaut)
)(
)(
23011
1302012301230
xxxxy
xxxxxxxxxxxxy
⊕=
⊕=+=
x0
Schéma logiquex2
x1y0
x3
y1
T.EA
160
Encodeur prioritaire
Problème de l’encodeuri dét i ti i l i bi i d’ t éindétermination si plusieurs combinaisons d’entrées sont actives en même temps
i 1 2 1 0 3 0 l 1 0 0 ( déf )si x1=x2=1 et x0=x3=0 alors y1=y0=0 (par défaut) sur l’exemple précédent
Solution : ordre de priorité pour les sortiesla sortie représente l’entrée active de plus fort poidsp p p
T.EA
161
Encodeur prioritaire
Exemple : clavier avec 9 touches
1 2 34 5 6
ABCclavier avec 9 touches
table de codagee A B C D
4 5 67 8 9
CD
e A B C D1 0 0 0 12 0 0 1 03 0 0 1 1
e9 e8 e7 e6 e5 e4 e3 e2 e1 A B C D1 X X X X X X X X 1 0 0 1
Table de vérité en tenant compte des
4 0 1 0 05 0 1 0 16 0 1 1 07 0 1 1 1
0 1 X X X X X X X 1 0 0 00 0 1 X X X X X X 0 1 1 10 0 0 1 X X X X X 0 1 1 00 0 0 0 1 X X X X 0 1 0 10 0 0 0 0 1 X X X 0 1 0 0
tenant compte des priorités
7 0 1 1 18 1 0 0 09 1 0 0 1
0 0 0 0 0 1 X X X 0 1 0 00 0 0 0 0 0 1 X X 0 0 1 10 0 0 0 0 0 0 1 X 0 0 1 00 0 0 0 0 0 0 0 1 0 0 0 1
T.EA
162
Encodeur prioritairei l iEquation logique
89899 eeeeeA +=+=
)4567(89
456789567896789789
eeeeee
eeeeeeeeeeeeeeeeeeB
+++
+++=
2345678934567896789789
)4567(89
eeeeeeeeeeeeeeeeeeeeeeC
eeeeee
+++=
+++=
1234567893456789567897899
))23(4567(89
eeeeeeeeeeeeeeeeeeeeeeeeeD
eeeeeeee
++++=
+++=
)))123(45(67(8e9
1234567893456789567897899
eeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeD
++++=
++++
T.EA
163
Encodeur prioritaireS hé l iSchéma logique
e1e2e3e4e5e6e7e8e9
≥1
&&&& &&&&& &&& & &&&& &&&&& &&& &
≥1≥1≥1≥1
DCBA
T.EA
164
DCBA
Chapitre V : Comparateur - Arithmétique bi i 1binaire 1
T.EA
165
Comparateur binaire
Comparaison entre 2 mots binaires
2 d i2 types de comparaisoncomparaison logique : bit à bit
comparaison arithmétique
Comparateur logique monobitComparateur logique monobit
a > bbEaS ba =>
E
Comparateura > ba = ba < b
a
b baES
baES ba
=
⊕==
E est une entrée d ’autorisation mais sert de détecteur d’é lité d élé t bi i d id é i
b baES ba =<
T.EA
166d’égalité des éléments binaires de poids supérieurs
Comparateur de 2 mots binaires
Montage cascadeA=A3A2A1A0 et B=B3B2B1B0A A3A2A1A0 et B B3B2B1B0
COMPa > b
a = ba
E
≥11
A3 A>BCOMPa < bb
a > bE
≥13B3
COMPa > b
a = b
a < b
a
b
E
A2B2
≥1 A<B
COMPa > b
a = ba
E
A1
a < bb
a > bE
B1
A
T.EA
167COMP a = b
a < b
a
b
A0B0
A=B
Comparateur de 2 mots binairesC l i d 2 d 4 biComparateur logique de 2 mots de 4 bits
Entrée A
A>BA’>B’ A A A A
Comparateur 4 bits
A>B
A=B
A’>B’
A’=B’
A0 A1 A2 A3
Entrée E Sortie S
A<BA’<B’ B0 B1 B2 B3
Entrée E permet des montages en cascadeEntrée B
Entrée E permet des montages en cascadeextension à des comparaisons de plus de 4 bits
T.EA
168
Comparateur de 2 mots binaires
Table de véritéEntrées A, B Entrées E Sorties S
A, B A3 B3 A2 B2 A1 B1 A0 B0 A'>B' A'=B' A'<B' A>B A=B A<BA, B A3, B3 A2, B2 A1, B1 A0, B0 A >B A B A <B A>B A B A<BA3>B3 X X X X X X
A>B A3=B3 A2>B2 X X X X X 1 0 0A3=B3 A2=B2 A1>B1 X X X XA3=B3 A2=B2 A1=B1 A0>B0 X X XA3<B3 X X X X X X
A<B A3=B3 A2<B2 X X X X X 0 0 1A3=B3 A2=B2 A1<B1 X X X XA3=B3 A2=B2 A1<B1 X X X XA3=B3 A2=B2 A1=B1 A0<B0 X X X
1 0 0 1 0 0A=B A3=B3 A2=B2 A1=B1 A0=B0 0 1 0 0 1 03 3 0 0 0 0 0 0
0 0 1 0 0 1
''0011223300112233112233223333 BABABABABABABABABABABABABABABABA EEEEEEEEEEEEEEES >====>===>==>=>> ++++=
''
''
00112233
0011223300112233112233223333
BABABABABABA
BABABABABABABABABABABABABABABABA
EEEEES
EEEEEEEEEEEEEEES
======
<====<===<==<=<<
=
++++=
T.EA
169
Comparateur de 2 mots binaires
Montage cascade : comparaison sur 8 bitsX X X X X X X X X t Y Y Y Y Y Y Y Y YX=X7X6X5X4X3X2X1X0 et Y=Y7Y6Y5Y4Y3Y2Y1Y0
X4 X5 X6 X7X0 X1 X2 X3
A>BA’>B’ A0 A1 A2 A3 A>BA’>B’ A0 A1 A2 A3
1
0
Comparateur 4 bits A=B
A<B
A’=B’
A’<B’ B0 B1 B2 B3
Comparateur 4 bits A=B
A<B
A’=B’
A’<B’ B0 B1 B2 B30
1
Y4 Y5 Y6 Y7Y0 Y1 Y2 Y3
T.EA
170
Additionneur binaire
Opérateur important dans les systèmes numériquesOpération de soustraction, multiplication et division sont des variantes de l’opération d ’addition
Etude des additionneurs sur 2 mots binaires
Addition logique (OU) et addition binaireAddition logique (OU) et addition binaire1+1=1 1+1=0 +report de 1
1+1+1=1 1+1+1=1 + report de 1
T.EA
171
Demi-additionneur (HA)
Demi additionneur monobit
iii
bac
bas
=⊕=
Génération d’une retenue
ii1i bac =+
bi
ai si
ci+1
T.EA
172
Additionneur complet (FA)
Table de vérité
)b(b
cbas iiii ⊕⊕=)b(acbac iiiii1i ++=+
ou
)b(acbac iiiii1i ⊕+=+Génération d’une retenue
Propagation d’une retenuePropagation d’une retenueGénération/Propagation d’une retenuePropagation d une retenue
HAai
b
siai siHA
ai
b
si
bi
ci
ci+1bi ci+1 bi ci+1
T.EA
173
Additionneur parallèle n bits
Propagation de retenue sériebn-1 an 1 b1 a1 b0 a0
FA
n-1 n-1
cn FA
1 1
FA
0 0
(co=0)FA
sn-1
n cn-1FA
s1
c2c1 (HA)
s0
( o )
Temps de calcul critique
0
Tpfa : temps mis pour réaliser une addition monobit
Temps de calcul pour n bits : n.Tpfa
T.EA
174
Additionneur parallèle n bitsi i éRetenue anticipée
Idée : • prévoir la valeurs des retenues ci au lieu d ’attendre qu’elles se soient
propagées
l l l t d’ dditi tt d ll d• calculer la retenue par groupe d’additionneurs sans attendre celle de l’étage précédent
Posons Gi=aibi terme de générationPosons Gi aibi terme de génération
Pi=ai+bi terme de propagationsi a =b =0 ∀ c c =0 : pas de retenuesi ai=bi=0, ∀ ci, ci+1=0 : pas de retenue
si ai ou bien bi = 1, ci+1= ci : propagation de la retenue (Pi)
si a =b =1 ∀ c c =1 : génération d’une retenue (G )si ai=bi=1, ∀ ci, ci+1=1 : génération d une retenue (Gi)
la retenue ci+1 est générée au rang i ou propagée par le rang i avec la retenue entrante c : c =G +P c
T.EA
175
avec la retenue entrante ci : ci+1=Gi+Pi.ci
Additionneur : retenue anticipéeAddi i l d bl 4 biAdditionneur complet cascadable sur 4 bits
i=0 : c1= G0+P0c01 0 0 0
i=1 : c2= G1+P1c1= G1+P1 (G0+P0c0)= G1+P1G0+P1P0c0
= G+ Pc0 G+ Pc0
i=2 : c3= G2+P2c2 = G2+P2(G1+P1G0+P1P0c0)
G +P G +P P G +P P P= G2+P2G1+P2P1G0+P2P1P0c0
i=3 : c4= G3+P3c3 = G3+P3(G2+P2G1+P2P1G0+P2P1P0c0)
= G3+P3G2+ P3P2G1+ P3P2P1G0+ P3P2P1P0c0
Dernière retenue (retenue anticipée) calculée avecDernière retenue (retenue anticipée) calculée avec seulement les termes de génération, de propagation et la retenue entrante c
T.EA
176
et la retenue entrante c0
Additionneur : retenue anticipée
Schéma logiqueG
G2 c3
P0
G0 c1
G1
P2
Pc0P1
G0
P0G2
G3 c4
G0
G1 c2
P0
c0P3
P2
GG0
P1
P
G1
P1P0c0
G0
P
T.EA
177c0
P0
Additionneur : retenue anticipée
Schéma synoptique b3 a3 b2 a2 b1 a1 b0 a0 c0
Calcul des termes P et G
G0 P0G1 P1G2 P2G3 P3
Calcul des retenuesanticipées
c1c2c3 =1=1=1 =1p c4
111 1
S S S S
T.EA
178
c4 S3 S2 S1 S0
Carry Select Adder
Accélérer le calcul → Introduction du parallélismep
é bl 3
FA FA FA FA FA FA FA FA FACO
Découpage en blocs : 3 TpFA
FA FA FA FA FA FA FA FA FACO
Parallélisation FA FA FACO
5 TFA FA FA
FA FA FA
CO FA FA FA
FA FA FA
0
1
5 TPFA
FA FA FA
FA FA FA
FA FA FA
1
0
T.EA
179FA FA FA1
Carry Select Adder
Optimisation : cas de N=15 bitsp3, 4, 4, 4 blocs et 3 multiplexeurs : 7 TpFA
3 3 4 5 blocs et 3 multiplexeurs : 6 T3, 3, 4, 5 blocs et 3 multiplexeurs : 6 TpFA
T.EA
180
Demi-soustracteur (HS)
Table de vérité
iii
b
bas ⊕=
ii1i bac =+
bai si
ci+1
bii
T.EA
181
Soustracteur binaire
si=ai - bi - ci
Table de véritéTable de vérité
Soustracteur
ai
bi
sii
ci
ci+1
b ⊕⊕
iiiiii1i
iiii
cbcabac
cbas
++=
⊕⊕=
+
Remarque : en pratique, le soustracteur n’est pas réalisé à partir de cesen pratique, le soustracteur n est pas réalisé à partir de ces équations
choix d’un code adéquat pour A B et R
T.EA
182
choix d un code adéquat pour An, Bn et Rn-1
utilisation de l’additionneur en tant que soustracteur
Soustracteur parallèle n bits
Propagation de retenue sériebn-1 an 1 b1 a1 b0 a0
FS
n-1 n-1
cn FS
1 1
FS
0 0
(co=0)FS
sn-1
n cn-1FS
s1
c2c1 (HS)
s0
( o )
De même que l’additionneur, il existe un
0
soustracteur à propagation de retenue anticipée
T.EA
183
Additionneur/soustracteur binaireSi ili d l’ ddi i lSimilitude entre l’additionneur et le soustracteur
différence : calcul de la retenue
ajout d’une entrée de commande, , pour choisir entre additionneur et soustracteur,
/subadd,
iiiiii1i
iiii
cbc)a/subadd(b)a/subadd(c
cbas
+⊕+⊕=
⊕⊕=
+ iiiiii1i cbc)a/subadd(b)a/subadd(c +⊕+⊕+ai
bi sici
/subadd
ci+1
T.EA
184
Ecriture des nombres signés: signe valeurEcriture des nombres signés: signe-valeur absolue
Ajout d’un bit de signe
Code signe valeur absolueCode signe-valeur absolue
0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1
arithmétique sous jacente et circuits réalisés complexes
0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1
+83 -83arithmétique sous-jacente et circuits réalisés complexes
additionneur et soustracteur en signe et module
utilisation pour les nombres flottantsutilisation pour les nombres flottants
préférence pour la notation en complément à 2 ( lé t i)(complément vrai)
T.EA
185
Exemple
Addition directeSur 8 bits : 4 + (-7)
4 → 00000100 et 7 →100001114 → 00000100 et -7 →10000111
4 + (-7) → 10001011 → -13!!! FAUX
Traitement séparé signe & valeur absolue|-7| > |4| → signe –| | | | g
|-7| - |4| → 7 – 4 → 0000111 – 0000100 = 0000011
D’où 4 + ( 7) = 3D où 4 + (-7) = -3
T.EA
186
Additionneur/soustracteurAdditionneur/soustracteur en signe et valeur absolueg
Opérationdemandée
Comparaisondes signes
SA SB Comparaison dela valeur absolue
Opération effective Signe durésultat
Rem.
SA= SB BA + SR =SA= SB
BA = AB ou BA −− 0 R=0
0 1 BA < AB − SR = SB=1
Add(=0) SA≠ SB BA > BA − SR = SA=0( ) A B BA > BA
BA = AB ou BA −− 0 R=0
1 0 BA < AB − SR = SB=0
BA BA S = S =1BA > BA − SR = SA=1
SA≠ SB BA + SR = SA
BA = AB ou BA −− 0 R=0
0 0 BA < AB − 1
Sub (=1) SA= SB BA > BA − SR =SA= SB=1
BA = ABouBA −− 0 R=0
1 1 BA < AB − 0
BA > BA − SR =SA= SB=1
T.EA
187
Ecriture des nombres signés: compl. à 2
Complément à 2 : astuce de calculé t ti d’ b é tif ( A)représentation d’un nombre négatif (-A) par son
complément vrai (complément à la base 2)
b i id d l’ é d’ bi i Aobtention rapide de l’opposé d’un mot binaire A2n - A= 2n - 1 - A + 1
Nbr dont tous les chiffres binaires sont à 1
Complément de A (0 → 1 et 1 → 0)
Complément à 1 ou complément restreint de A
ou de la droite vers la gauche juqu’au 1er
« 1 » qu’on conserve puis on inverse systématiquement
( )
1AA +=−« 1 » qu on conserve puis on inverse systématiquement
exemple :
0101001183 =+ bit de signe (N) = 0
T.EA
18810101101 1 10101100 83-
0101001183
=+=+
bit de signe (N) = 1
g ( )
Addition : complément à 2
A + BA > 0 B > 0 010019)( →+ A<0 B<0 10111 9)( →−A > 0, B > 0
01101
00100 4)(
01001 9)(
→++→+ A<0, B<0
10011
11100 4)(
)(
→−+
A > 0, B < 0
01101
11100( 4)
01001 9)(
→+→+ A=-B 00100 4)( →+
00101
11100 (-4) →+
00000
11100 4)( →−+
A < 0, B > 0 00100 4)(
10111 (-9)
→++→
11011
T.EA
189
Soustraction : complément à 2
A - Bprendre le complément à 2 de B :prendre le complément à 2 de B : faire A + (-B)La retenue est pris en prenant le complément de laLa retenue est pris en prenant le complément de la retenue obtenueexemple : A=9 et B=4exemple : A=9 et B=4
11100( 4)
01001 9)(
→+→+
Et C 0 ( t(1))
00101
11100 (-4) →+
Et C=0 (car not(1))
Opération de soustraction est réalisée à l’aide de l’opérateur d’addition
T.EA
190
l opérateur d addition
Addition/soustraction en compl. à 2
b b b / bddbn-1 an-1 b1 a1 b0 a0 /subadd
FAcn cn-1FA
c2c1
FA co
sn-1 s1 s0
T.EA
191
Dépassement de capacité
Représentation des nombres sur un nombre fini de positions N → Résultat de l’opération sur N+1 position
Exemple : sur 8 bitspArithmétique non signée
255 + 8 → 1111 1111 + 0000 1000 → 1 0000 0111
9ème bit → bit de carry (CF), retenue de la dernière addition indique qu’il y a un débordement de capacité CF est activé
A ith éti i éArithmétique signée-1 +8 →1111 1111 + 0000 1000 → 1 0000 0111
Ce bit (la retenue) est ignoré et le résultat est correct -> OverflowCe bit (la retenue) est ignoré et le résultat est correct > Overflow
Choix du type signé ou non signé
T.EA
192
Overflow (V)
Arithmétique signéeAddition de deux nombres de même signesAddition de deux nombres de même signesObtention d’un résultat de signe incorrect
E lExemples
01001 9)( →+ 10111 9)( →− 101119)( →− 01001 9)( →+
faux10001
01000 8)(
)(
⇒
→++
faux01111
11000 8)(
)(
⇒
→−+
faux01111
01000 8)(
)(
⇒
→+−
faux10001
11000 8)(
)(
⇒
→−−
Arithmétique non signéeO fl (V) d it êt i éOverflow (V) doit être ignoréExemple : 9 + 8 → 01001 + 01000 = 10001 → 17
T.EA
193
Overflow (V)
Détermination de l’overflow:Comparer le bit de signe des nombres additionnés/soustraits (an-1, bn-1) avec le bit de signe de la somme/soustraction (sn-1)
−−−−−−+ +=
bbV
sbasbaV 1n1n1n1n1n1nan-1 bn-1 sn-1 cn cn-1 V+ cn cn-1 V-
0 0 0 0 0 0 0 0 00 0 1 0 1 1 1 1 0
−−−−−−−
+=
+=
/sub VaddV/subaddV
sbasbaV 1n1n1n1n1n1n0 0 1 0 1 1 1 1 00 1 0 1 1 0 1 1 00 1 1 0 0 0 1 0 11 0 0 1 1 0 0 1 1
ccV ⊕
−+ += /sub.Vadd.V/subaddV1 0 0 1 1 0 0 1 11 0 1 0 0 0 0 0 01 1 0 1 0 1 0 0 0
n1 ccV ⊕= −n1 1 1 1 1 0 1 1 0
T.EA
194
Additionneur en DCB
Chaque chiffre décimal est codé sur 4 bits de 0000 à 1001
Somme ≤ 900113
0101 5
+→+→
Somme > 91000 8
00113 +→+
1001 9
1
→
validenon somme 0001 1 17
1000 8 +→+
0111 1
corrigerpour 6 de addition 0110
T.EA
195
Additionneur en DCB
Additionneur en DCB 4 bitsS est compris entre 00000 et 10010 BBB B
AAAA
0123
0123
+S est compris entre 00000 et 10010
Cas où il faut ajouter 6 (0110) SSSSS 01234
)( 1234 SSSSY ++= )( 1234
T.EA
196
Additionneur en DCB
Schéma logique A0A1A2A3B0B1B2B3
Additionneur4 bits
C0 Report de 4 bits 0
l’additionneur de rang inférieur
S0S1S2S3S4Report appliqué à l’additionneur Y inférieurà l additionneur DCB suivant
Additionneur4 bits
C0=0
T.EA
197Σ0Σ1Σ2Σ3 Somme DCB
Additionneur en DCB
Montage cascade (3 chiffres)
A3A2A1A0B3B2B1B0A7A6A5A4B7B6B5B4A11A10A9A8B11B10B9B8
AdditionneurDCB
0AdditionneurDCB
AdditionneurDCB DCBDCBDCB
Σ3Σ2Σ1Σ 0Σ7Σ6Σ5Σ4Σ11Σ10Σ9Σ8
UnitéDizaineCentaine
T.EA
198
Incrémateur : B+1
Une entrée de l’additionneur à 1 et l’autre à 0
bn-1 0 b1 0 b0 0
FAcn c FA c FA co=1
sn-1
cn-1
s1
c2c1
s0
Cellule élémentaire : HA
bi
ci si
T.EA
199ci+1
Comparateur arithmétique
Utilisation de l’additionneur/soustracteur pour é li d iréaliser des comparaisons
AB
Addi i /Additionneur/soustracteur
Circuit de décision
A>BA=BA<B
T.EA
200
Remarques
Addition vue comme une tableDécodage de 2N bits vers N+1 bits
Considérer chaque bit de sortie comme une fonctionConsidérer chaque bit de sortie comme une fonction logique quelconque des bits d'entrées
Utilisation de porte logiqueUtilisation de porte logique
Utilisation d’une mémoire
La complexité croit exponentiellement avec le nombreLa complexité croit exponentiellement avec le nombre de bit
T.EA
201
Remarques
Addition de plusieurs opérandesN bits
XXXXX
XXXXX
N bits
M O é d
XXXXX
XXXXX
++ M Opérandes
Nbr de bits nécessaire au codage d é l N l M bi
Additionneur série
YYYYYYY du résultat =N+log2M bits
Additionneur sériebi ai
FAD
T.EA
202si
Remarques
Additionneur en arbre M opérandes sur N bitsM opérandes sur N bits
N N N N
N+1 N+1M-1 additionneurs
N+1 N+1
N+2log2M étages
T.EA
203
Remarques
Estimation Vitesse-Surface pour un additionneur N bits
Surface Sfa Vitesse Tpfa
Add Prop Retenue N NAdd. Prop. Retenue N N
Add. Retenue Anticipée 2N (N=4)
pb de fan-in
Indpt de N (th.)
∝log2N
C S l t Add 2N 2√N
Arithmétique saturée
Carry Select Adder 2N 2√N
Add. Arbre Nlog2N 2log2N
qProblème :
A codée sur 3 bitsA codée sur 3 bits
valeur max de A= 7
Si S=A+1=7+1=8 => S=000 +1 reportSi S A+1 7+1 8 > S 000 +1 report
S Problème S
T.EA
204
Chapitre VI : Arithmétique 2M lti li Di iMultiplieur-Diviseur
T.EA
205
Multiplieur binaire
Exemples(7) 0111 (7) 0111 multiplicande
0111
(5) 0101x
( )
0111
(11) 1011x
( ) p
multiplicateur
--0111
-0000
--0000
-0111
1 010001
---0000
1 100110
---0111
produit
Nombre de bits du résultats A écrit sur N bits et B sur M bitsA écrit sur N bits et B sur M bits
résultat de A x B écrit sur N+M bits
T.EA
206
Multiplieur binaire
bbbbx
aaaa 0123
b
pppp
bbbbx
00010203
0123 aj bi
pppp
pppp
20212223
10111213 Génération des produits partiels pij
S S S S S S S S
pppp
01234567
30313233
pij
Succession de décalage et d’addition de
aibi
l’opérande A ou de 0 FAii
cici+1
si
T.EA
207
Multiplieur binaire parallèle 3 x 3a0 b0
a1a2
b1
0
aibiaibiaibi
FA cici+1
si
FA cici+1
si
FA cici+1
si
b2
0
b2
FAaibi
cici+1FAaibi
cici+1FAaibi
cici+1 0
T.EA
208
sisisi
S0S1S2S3S4S5
Multiplieur en signe et module
Traitement séparé des signes et modulesMultiplication binaire pour les modules p p
Signe : ouexclusif entre les signes du multiplicande et multiplicateurmultiplicateur
Nombre de bits du résultats A é i N bi B M biA écrit sur N bits et B sur M bits
|A| écrit sur N-1 bits et |B| écrit sur M-1 bits
résultat |A| x |B| écrit sur N+M-2 bits
résultat de A x B écrit sur N+M-1 bits
Remarque: nombre de bits du résultat est égal à N+M-1 pour une multiplication en complément à 2
T.EA
209pour une multiplication en complément à 2
Multiplication en complément à 2
Problème
(-7) 1001 (7) 0111
1001
(5) 0101x
( )
0111
(5) 0101x
--1001
-0000 --0111
-0000
(45) 0101101
---0000 1 010001
---0000
T.EA
210
Multiplication en complément à 2
Exemple
(5) 0101x
(7) 0111
(5) 0101x
(-7) 1001
(-5) 1011x
(7) 0111
(-5) 1011x
(-7) 1001
-0000
0111
-000000
1111001
-000111
0000111
-111001
1111001
---0000
--0111
---0000
--11001
---1001
--00000
---0111
--00000
1 010001 1011101 1011101 0100011
Extension E t iCV(7) CV(-7)
du signe Extension du signe
CV(7) ( )
T.EA
211
Multiplication en CV
aaa 012b
ppppp
bbbx
0001020202
012
Génération des
aj bi
ppp
pppp
ppppp
202122
10111212
0001020202 Génération des produits partiels avec extension du signe pij pij
S S S S S
ppp
01234
202122 pij
Succession de décalage et d’addition de
pij
Succession de décalage et d addition de l’opérande A ou de 0 avec extension de signe excepté à la fin :signe, excepté à la fin :si b2=0, on ajoute 0 si b2=1 on ajoute -A ou CV(A)
T.EA
212
si b2 1, on ajoute A ou CV(A)
Multiplieur parallèle en CV 3x3 a0 b0
a1a2
b1
aibiaibiaibiaibi aibi
FA cici+1
si
FA cici+1
si
FA cici+1
si
b2
0ciFAci+1
si
FA cici+1
si
b2
FAaibi
cici+1FAaibi
cici+1FAaibi
cici+1
T.EA
213
sisisi
S0S1S2S3S4S5
Remarques
Vitesse d’un multiplieur est conditionnée par la it d dditivitesse des additionneurs
Existence de solutions architecturales permettant d’accélérer les additions : retenue anticipée…
Diminution du nombre d’opérandes à additionnerPlus il y a de zéro dans le multiplicateur, moins il y a d’addition à faire
Recodage de Booth• Algorithme de Booth
• Algorithme de Booth modifié• Algorithme de Booth modifié
• Codage de Booth 3 bits
T.EA
214
Algorithme de Booth
Algorithme de BoothDét t l é ti d 1 d l lti li tDétecter les séquences continues de 1 dans le multiplicateur
Séquence de n « 1 » ⇔ n sommes du multiplicande multiplié 2i ( id d bi d l i li )par 2i (poids du bit du multiplicateur)
Basé sur l’identité suivante :
∑∑=
+++++
=
−==−
−=
k
ij
ikijkiiki
ij
j xx
xxx 222 : 2pour
11
1
Exemple et notation : …011…110…=2i+k+1-2i=...00100...010…
== ijij
p
Remplacer ces n sommes par une soustractionPosition i+k+1 Position iPosition i+k Position i
T.EA
215
Remplacer ces n sommes par une soustraction
Algorithme de Booth
Exemple : séquence de 3 « 1 » successifs, la somme de 3 multiplicandes M se ramène à une simple soustraction
11100
22222 01234
101002222 3012 =−=++ MMMMM11100
1011000101110111 0011011000110011
Remarque: 11110011
1011000101110111 0011011000110011
10101000
T.EA
216
Algorithme de Booth
Algorithmeb-1=0 (Cond. Init.)
à l’étape i de l’algorithme de multiplication, suivant les valeurs du multiplicateur bi-1 et bi , on effectue :
une addition ou
une soustraction ou
rien
bi bi-1 Action à l'étape i Rem arque
0 0 Rien 0 en position i du recodage
0 1 Add 1 en position i du recodage
1 0 Sub 1 en position i du recodage
1 1 ri n 0 n p iti n i d r d
T.EA
217
1 1 rien 0 en position i du recodage
Algorithme de Booth
Exemple :pSoit à multiplier 2 par 7
0001000010
x 001110Init
subOpération
20
Poids Calcul111111110sub
rienrien
20
21
22
111111110
addrien
rien23
22
24000010- - -000001110rien 24 000001110
T.EA
218
Algorithme de BoothblèProblème
22222 01234
01010
22222MMMMMM 123413 222222 −+−=+
4 additions 4 additions et 4 soustractions0101010101 1111111111
Algorithme de Booth ne garantit pas l’accélération de la multiplicationde la multiplication
remèdel i h d h difiéalgorithme de Booth modifié
codage Booth 3 bits
T.EA
219
Algorithme de Booth modifié
Réécriture des chaînes de chiffresFaire apparaître plus de zéro
Jamais deux 1 consécutifs
Un chiffre sur deux au moins est un 0
: 1 isolé0111 ⇔ : 1 isolé
: 0 isolé
E l
0111 ⇔1011 ⇔
Exemple1011000101110111 0011011000110011
Réécriture minimale(Comporte le moins de 1 possible) 0010100001000110
T.EA
220
( p p )Recodage canonique
0010100001000110
Algorithme de Booth modifié
AlgorithmeP l li l 1 t l 0 i lé j tPour localiser les 1 et les 0 isolés, on rajoute une variable supplémentaire ci (c0=0)
ci bi+1 bi Action à l'étape i Remarque ci+1
0 0 0 Rien 0 en position i du recodage 0
0 0 1 Add 1 en position i du recodage 00 0 1 Add 1 en position i du recodage 0
0 1 0 Rien 0 en position i du recodage 0
0 1 1 Sub 1 en position i du recodage 1p g
1 0 0 Add 1 en position i du recodage 0
1 0 1 Rien 0 en position i du recodage 1
1 1 0 Sub 1 en position i du recodage 1
1 1 1 Rien 0 en position i du recodage 1
T.EA
221
Exemple : Algorithme de Booth modifié
1011000101110111i ci bi+1 bi Action à l'étape i Remarque ci+1
0 0 0 0 Rien 0 en position i du recodage 00 0 0 0 Rien 0 en position i du recodage 0
1 0 1 0 Rien 0 en position i du recodage 0
2 0 1 1 Sub 1 en position i du recodage 1
3 1 0 1 Ri 0 i i i d d 13 1 0 1 Rien 0 en position i du recodage 1
4 1 1 0 Sub 1 en position i du recodage 1
5 1 1 1 Rien 0 en position i du recodage 1
6 1 1 1 Rien 0 en position i du recodage 1
7 1 1 1 Rien 0 en position i du recodage 1
8 1 0 1 Rien 0 en position i du recodage 1
9 1 1 0 Sub 1 en position i du recodage 1
10 1 1 1 Rien 0 en position i du recodage 1
11 1 1 1 Rien 0 en position i du recodage 1
12 1 0 1 Rien 0 en position i du recodage 1
13 1 1 0 Sub 1 en position i du recodage 1
14 1 0 1 Rien 0 en position i du recodage 1
T.EA
222001010000100011015 1 0 0 Add 1 en position i du recodage 0
Exemple : Algorithme de Booth modifié
0101010101i ci bi+1 bi Action à l'étape i Remarque ci+1
0 0 0 1 Add 1 en position i du recodage 0
1 0 1 0 Rien 0 en position i du recodage 0
2 0 0 1 Add 1 en position i du recodage 0
3 0 1 0 Rien 0 en position i du recodage 0p g
4 0 0 1 Add 1 en position i du recodage 0
5 0 1 0 Rien 0 en position i du recodage 0
6 0 0 1 Add 1 en position i du recodage 0p g
7 0 1 0 Rien 0 en position i du recodage 0
8 0 0 1 Add 1 en position i du recodage 0
9 0 0 0 Rien 0 en position i du recodage 0
0101010101
Au plus, on fait n/2 additions-soustractions
9 0 0 0 Rien 0 en position i du recodage 0
Au plus, on fait n/2 additions soustractions
T.EA
223
Exemple dans une multiplication
Effectuer 6 x 7 = 0110 x 0111recodage de 7 avec Booth modifié:
faire une soustraction au poids 20 et une addition au
1100
faire une soustraction au poids 20 et une addition au poids 23
(6)0110 (6)0110
0110
(7) 0111x
(6) 0110
modifié) Boothcodage (7 1100x
(6) 0110
00110
000110
0110
)2x (6 0110
)2-x (6 1111010 3
0
0101010
00110 0101010
)(
T.EA
224
Codage de Booth 3 bits
B avec un nombre de bits pairs (n pair)
Si B est impair → extension de signe−− 42 nn
∑∑∑ −−=
++
=
−−
−
=
−− =++−=+−= 1
2
1
1212
2
0
22
11
2
0
11 0 avec 22222
i
ii
i
ii
nn
n
i
ii
nn bbbbbbB
∑∑−
++
−
−− −++−=
2
4
1
22212
2
2
0
22
11 ]2.22[22
n
i
iii
n
i
ii
nn bbb
pair impair
∑ ∑∑−
+
−
++
−
−
−==
−++−=2
4
212
2
4
2212
2
2
22
11
10
22222
n
ii
n
ii
n
ii
n
ii
bbbb ∑ ∑∑−=
+−=
+=
− ++1
121
120
21 22222 i
ii
ii
in bbbb
T.EA
225
Codage de Booth 3 bits
∑ ∑∑−
+
−
−
−
−− −++−=
2
2
212
2
4
212
2
2
22
11 22222
n
ii
n
jj
n
ii
nn bbbbB
∑ ∑∑
∑ ∑∑
−
− −−
= −==
22
2
22
4
22
2
2
0 10
222222 n
n
i
n
j
n
i
ji
ij
iin
bbbb ∑ ∑∑− −−
−−
=+
−=−
=
−−+=
2 22
21
0
212
1
212
0
22 2.22222
n nn
nn
j
ii
i
jj
i
ii bbbb
∑ ∑∑ −=
+=
−=
=−+= 1
2
0
212
2
0
212
2
0
22 )0(car 2222
j
ii
i
jj
i
ii bbbb
∑−
−+ ++−=2
2
0
212212 2]2[
n
i
iiii bbb
=0i
T.EA
226
Codage de Booth 3 bits
∑∑−−
−+ =++−=2
2
22
2
212212 22]2[
n
ii
n
iiii cbbbB
B ⇔ Σ de 3 bits consécutifs de B suivant les
∑∑==
+00
12212i
ii
iii
B ⇔ Σ de 3 bits consécutifs de B suivant les puissances paires de 2
R d d B i t l t bl d é itéRecodage de B suivant la table de vérité :b2i+1 b2i b2i-1 ci
0 0 0 00 0 0 0
0 0 1 1
0 1 0 1
0 1 1 2
1 0 0 -2
1 0 1 -1
T.EA
2271 1 0 -1
1 1 1 0
Exemple : Codage de Booth 3 bits
(24044)0011011110111010b-1=0
(24044) 00110111101110 1 0
012121 10
2.12.12.22.12.21.2 248101214 −−+−+240444165121024819216384 =−−+−+=
T.EA
228
Multiplication : Codage de Booth 3 bits
(A) aaaa 0123
bbb
bits 3 Boothde recodage (B) bbbbx
c0 2A/0-A/2A/-A/ 1-01
0123
←←
bbb
x B A
c1 2A/0-A/2A/-A/ 123←←
Multiplication → suite d’addition de l’opérande
A, -A, 2A, -2A ou 0 et de décalage par 22i
Encodage simpleEncodage simple
au plus N/2 additions N bits
T.EA
229
Multiplication : codage de Booth 3 bits
2)(B1110x
6)(A 0110 =
2
1010 100 -2c0 2x 2A- 1110100
-2)(B 1110x
bbb=←=←
=
−
1232 111 0 c1 2x 0 bbb=←=←
6)(A0110 =
1002c01x2A1110100
-6)(B 1010x
6)(A 0110
bbb←←
==
( 36)1011100
101 -1 c1 2x A- 1010 1
100-2c01x 2A- 1110100
1232
101
bbb
bbb
=←=←
=←=← −
(-36) 1011100
T.EA
230
Architecture Booth 3 bitsAB
0b déc +/- x2 0
x22
b0b1
déc
x22
+/- x2 0 Σb1b2 déc / x2 0
x22
Σ2b3
déc +/- x2 0b3b4b5b5
Décodage des bits bi Additionneur N/2
T.EA
231
g i
Encodage des opérandes opérandes
Remarques
Codage de Booth 3 bits ⇔ algo. de Booth en g gprenant les bits 2 à 2
ExempleExemple 01101110 01100110 )1102222( 1457 =−+−
2012 )110222.2( 146 =−−
T.EA
232
Remarques
Regrouper les bits 2 à 2 dans l’algo de BoothRegrouper les bits 2 à 2 dans l algo de Booth modifié n’apporte rien de plus (même nbr d’ dditi )d’addition)
246
Exemple 01011101 (93) 11110011
1121
)93122222( 2567 ++
)93122.22( 246 =+−+
01011101 (93) 11110011 )93122222( 2567 =−+−+−
)93122222( 24601100110 )93122.22.2( 246 =+−−01100110
12 2 1
T.EA
233
12 2 1
Division
La plus complexes des 4 opérations arithmétiques
E dé i lEn décimal :Dividende >? diviseur
Nombre de fois que le diviseur va dans le dividende?
Essais successifsEssais successifs
En base 2l i lPlus simple
Nbr de fois que le diviseur entre dans le dividende0 ou 1
T.EA
234
Division binaire
Rappel : a3a2a1a0,a-1a-2a-3a-4
Ex : 13,375=1101,011
Exemple: 13/4=3,25p ,13
12
4
3 25
1101
100
100
11 0112
10
- 3,25 100
101
- 11,01
8
20
- 100
100
-
20
0
-
100
100
000
-
T.EA
2350 000
Division binaire
Principe généralsoustraction successive du diviseursoustraction successive du diviseur
soit A et B deux nombres binaires
Q l i d l di i i A BQ le quotient de la division A par B
R les restes partiels
Si R ≥ B alors Q=1 et R-B sinon Q=0 et RQ Q
T.EA
236
Division binaire
Exemple : A/B=1101/01001101
010011
0100
-0
0
R=1<B ⇒ Q=0 et R=1
R=11<B ⇒ Q=0 et R=11 0100110
0100
-
-
0
1
R=11<B ⇒ Q=0 et R=11
R=110 ≥ B ⇒ Q=1 et R-B=10
1010100
010-1
,R=101 ≥ B ⇒ Q=1 et R-B=1
0100100
100-0
,
R=10<B ⇒ Q=0 et R=10
0100000
-1R=100≥B ⇒ Q=1 et R-B=0
Q
T.EA
237
Q
Division binaire
Exemple : A/B=1011/1001 10111001
101001
101
0
0
R=1<B ⇒ Q=0 et R=1
R=10<B ⇒ Q=0 et R=10 1011001
1011
0
0
R=10<B ⇒ Q=0 et R=10
R=101<B ⇒ Q=0 et R=101
1001001001001
1,
R=1011 ≥ B ⇒ Q=1 et R-B=10
100110001001
0
,
R=100<B ⇒ Q=0 et R=100
100001001 0111
0R=1000<B ⇒ Q=0 et R=1000
1R=10000≥B ⇒ Q=1 et R-B=111
Opération sur 5 bits
T.EA
238
0111
Q
1Q
Division binaireResultat
Exemple : A/B=1011/1001 0000101101001
Resultat. Soustraction
111000000100100100101
0
0
R=1<B ⇒ Q=0 et R=1
R=10<B ⇒ Q=0 et R=10111001
0010101001
01011
0
0
R=10<B ⇒ Q=0 et R=10
R=101<B ⇒ Q=0 et R=101111100
010010010001001
1,
R=1011 ≥ B ⇒ Q=1 et R-B=10000010
111011010010100001001
0
,
R=100<B ⇒ Q=0 et R=100
111011
1111111000001001 0111
0R=1000<B ⇒ Q=0 et R=1000
1R=10000≥B ⇒ Q=1 et R-B=111000111
T.EA
239
0111
Q
1Q
complémenté
Division binaireA3 B00 B10 B20 B30 0
A B -1 0
-1 0
-1 0
-1 0
-1 0
A3 B00 B10 B20 B30 0
A2
0Q3
-cici+1 -
1 0
-1 0
-1 0
-1 0
-1 0 A1
0Q2
1 0contrôle -1 0
-1 0
-1 0
-1 0
-1 0 A0
0Q1
A ou A-B
-1 0
-1 0
-1 0
-1 0
-1 0 0
0Q0
A B
c
-1 0
-1 0
-1 0
-1 0
-1 0 0
0Q-1
cici+1 -1 0contrôle
-1 0
-1 0
-1 0
-1 0
-1 0 0
0Q-2
T.EA
240-1 0
-1 0
-1 0
-1 0
-1 0
0Q-3
Autres opérateurs
Exponentielle
Logarithme
Fonctions trigonométriquesFonctions trigonométriques
Racine carré
Transformée de Fourier
….
T.EA
241