Académique Documents
Professionnel Documents
Culture Documents
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Pourquoi on apprend ça ?
Bon, la matière de ce cours est important parce-que :
les circuits usuels présentés dans ce cours sont très repandus et
existent souvent physiquement dans des puces ou moins
physiquement dans des macros pour les logiciels de conception de
circuits logiques (comme CircuitMaker)
c'est fortement probable que vous allez rencontrer ces
composantes lors de vos carrières (si vous faites toujours du
génie) et c'est important de les reconnaître
la conception par itération peut être très utile non-seulement pour
les circuits logiques, mais pour d'autres sortes de machines aussi
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Questions ? L'intra approche vite
Remember, there are no stupid
questions, just stupid people.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Démultiplexeur
On a déjà vu à plusieurs reprises des multiplexeurs. L'inverse d'un
MUX est un démultiplexeur :
s 1 s f f f f
2 0 1 2 3
0 0 w 0 0 0
0 1 0 w 0 0
1 0 0 0 w 0
1 1 0 0 0 w
Les bits «s» dictent par quelle sortie passera l'entrée. Toutes les
autres sorties sont des zéros.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Encodeur binaire
Un encodeur binaire transforme 2n-bits de format «one-hot» en code
binaire de n-bits :
w 3 w w
2 1 w y
0 1 y 0
0 0 0 1 0 0
0 0 1 0 0 1
0 1 0 0 1 0
1 0 0 0 1 1
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Encodeur de priorité
Un encodeur de priorité n'a pas besoin d'une entrée de format «one-
hot». Seulement le bit le plus significatif à l'entrée détermine la
sortie :
w w3 2 w w y y z
1 0 1 0
0 0 0 0 x x 0
0 0 0 1 0 0 1
0 0 1 x 0 1 1
0 1 x x 1 0 1
1 x x x 1 1 1
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Décodeur binaire
Ce n'est pas difficile à deviner qu'un décodeur binaire transforme un
code binaire de n-bits en 2n-bits de format «one-hot».
w 1 w 0 y y
3 2 y y
1 0
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Addition de deux bits
On a appris comment faire l'addition binaire lors du premier cours
Maintenant on a les outils pour concevoir un circuit qui fait justement
ça :
x + y = ...
x y s c (somme)
0 0 0 0
0 1 1 0
1 0 1 0
(retenue)
1 1 0 1 (“carry” en anglais)
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Addition itérative de deux bits
Si on espère faire itérativement l'addition de deux bits, il faut inclure
une entrée de retenue à notre circuit :
cin x y s c out
C
XY
00 01 11 10
0 0 0 0 0 0 0 1 0 1 s=
0 0 1 1 0 1 1 0 1 0
0 1 0 1 0
0 1 1 0 1
XY
1 0 0 1 0 C 00 01 11 10
1 0 1 0 1 0 0 0 1 0 c =
out
1 1 0 0 1 1 0 1 1 1
1 1 1 1 1
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Addition binaire complet
Voici le circuit d'un additionneur binaire complet :
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
«Ripple-Carry Adder»
Pour faire l'addition de n-bits, on regroupe des additionneurs binaires
complets comme ainsi :
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Anticipation de retenue
Il faudrait alors minimiser le nombre de portes que doivent franchir les
retenues. Notez que la i+1ième retenue est égale à :
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
«Carry Lookahead Adder»
On vient de voir que c'est possible de calculer chaque retenue avec
deux couches de portes. Alors notre additionneur devient :
Sigma Block
Anticipation cin
cout
de retenues xyc
p
x1 y1 c1 x0 y0 c0 g
etc...
p1 g1 Sigma p0 g0 Sigma
Block Block
s1 s0 s
Peu importe «n», dans le pire cas, il-n'y-a que 4 portes entre une
entrée et une sortie !
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Additionneurs en général
On a vu le «ripple-carry adder» et le «carry-lookahead adder». Peu
importe leur structure interne, les additionneurs utilisent le symbole
suivant :
(+1)
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Dépassement
N'oubliez pas que dans l'addition et soustraction en format
complément à deux, il-y-a dépassement quand :
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Comparateur
On peut appliquer l'idée d'itération à la conception d'un comparateur
aussi. Voici un comparateur à un bit :
xi yi
Gi+1 Gi
Comparateur
Ei+1 Ei
à un bit
Li+1 Li
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Comparateur itératif
On peut faire un comparateur à n-bits avec n comparateurs à un bit :
xn yn x0 y0
Gn 0
Comparateur Comparateur
En ... 1
à un bit à un bit
Ln 0
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Table de vérité du comparateur
Remplissez vous-même la table de vérité :
0 1 0 1 0 Pourquoi ?
0 1 0 0 1
Parce-que EGL est «one-hot».
1 0 1 0 0
1 0 0 1 0 Les cas qui ne sont pas dans la
table sont tous facultatifs.
1 0 0 0 1
1 1 1 0 0
1 1 0 1 0
1 1 0 0 1
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Circuit du comparateur
Je sais que vous êtes maintenant tous maîtres de simplification, alors
on saute directement au circuit :
xi yi
Ei Ei+1
Gi Gi+1
Li
Li+1
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Multiplication itérative
La multiplication itérative ne fait pas partie de la matière du cours,
mais je le vous présente vite pour le fun :
q1 q0
x m1m0
p3p2p1p0
Tout ça pour dire que l'itération peut être très utile pour la conception
de toutes sortes de grands circuits.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Sommaire (par Monsieur T)
Étudiez fort pour l'intra.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Lecture et devoirs
Lecture recommandé :
5.1, 5.3 – 5.6
Problèmes pertinents :
5.5, 5.9, 5.10c, 5.11c, 5.12c, 5.13c, 5.19,
5.21d, 5.22d, 5.24
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006