Cours 5 - Polytechnique Montréal

Transcription

Cours 5 - Polytechnique Montréal
Cours (0101)2
On pourrait appeler ce cours :
«Variables inscrites»
Cette semaine on apprendra :
comment réduire la taille d'une table de vérité / table de Karnaugh
en se servant des variables inscrites
comment trouver l'équation simplifié à partir de ces tables de
Karnaugh à variables inscrites
comment utiliser des multiplexeurs pour implémenter des tables de
vérité à variables inscrites
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Pourquoi on apprend ça ?
Honnêtement, même si l'utilisation de variables inscrites peut réduire
la taille des tables à simplifier, (selon moi) ça peut facilement ajouter
tant de complexité que ça perd son avantage. Je n'ai jamais appris
comment utiliser les variables inscrites durant mon bac à Waterloo, je
ne l'ai pas enseigné dans le cours Systèmes Logiques I, et je ne les
utilise pas où je travaille. Par contre, je trouve que l'idée d'utiliser
effectivement des variables inscrites pour simplifier des fonctions avec
des multiplexeurs peut être très utile. Je présente ceci dans les
derniers quelques acétates, afin d'avoir couvert tout sur les variables
inscrites, comme dictée par le curriculum.
J'espère quand-même vous présenter une semaine de cours
intéressante et agréable !
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Un exemple motivant
Imagine qu'on peut réduire la taille d'une table de vérité tout
simplement en inscrivant une variable dans la sortie :
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
S
1
0
1
1
0
1
0
0
A
0
0
1
1
B
0
1
0
1
S
C
1
C
0
0 1
0 C C
1 1 0
A
B
S = ABC + ABC + AB
AB
C
1
C
0
S
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Qu'est-ce-qu'on vient de faire ?
La première étape est facile. On choisit une variable pour inscrire à la
sortie, et on écrit la sortie en fonction de cette variable dans des
groupes où toutes les autres variables sont pareils :
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
S
1
0
1
1
0
1
0
0
A
0
0
1
1
B
0
1
0
1
S
C
1
C
0
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Et si ce n'est pas la dernière ?
Attention : si ce n'est pas la dernière variable qu'on veut inscrire, c'est
un peu plus dur à percevoir les groupes :
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
S
1
0
1
1
0
1
0
0
A
0
0
1
1
C
0
1
0
1
S
1
B
0
B
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Table de vérité à ???
Dès qu'on a une table de vérité à variables inscrites, on a deux
options :
l'inscrire dans une table de Karnaugh et simplifier
dessiner directement le circuit en utilisant un multiplexeur
A
0
0
1
1
C
0
1
0
1
S
1
B
0
B
0 1
0 1 0
1 B B
A
C
AC
1
B
0
B
S
Mais on n'a pas vraiment touché aux MUX à date, alors on n'examine
que le premier cas pour l'instant.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Comment encercler
On encercle comme d'habitude sauf que maintenant on peut encercler
aussi des groupes de X et X en addition aux '1' :
0 1
B
0 0 C
1 0 C
A
S = AC
0 1
B
0 0 C
1 C 0
0 1
0 0 0
1 C C
A
B
S = BC
S = ABC + ABC
0 1
0 0 1
1 C 0
A
A
B
S = ABC + AB
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Encore, comment encercler
Si on utilise la théorème X + X = 1, on peut encercler encore plus :
0 1
B
0 C 1
1 0 C
A
0 1
B
0 1 1
1 0 C
B
A
0 1
0 1 1
1 1 C
0 1
0 1 C+C
1 0
C
S = BC + AC
A
B
A
B
0 1
0 C C+C
1 0
C
A
0 1
0 1 1
1 1 C
S = B + AC
A
B
S=A+B+C
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Et tu, Conjonctive ?
C'est la même idée pour la forme conjonctive, sauf qu'on utilise la
théorème X · X = 0 :
0 1
B
0 C 1
1 0 C
A
0 1
B
0 1 1
1 0 C
B
A
0 1
0 0 1
1 1 C
0 1
0 1 1
1 CC C
S = (A + C)(B + C)
A
B
A
B
0 1
0 C 1
1 CC C
A
0 1
0 0 1
1 1 C
S = (A + B)(B + C)
A
B
S = (A + B)(A + B + C)
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Essayez-le vous même
Faites-le à la disjonctive et à la conjonctive :
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
S
0
1
0
1
1
0
0
0
A
0
0
1
1
B S
0
1
0
1
A
B
0 1
0
1
S=
A
B
0 1
0
1
S=
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Cas facultatifs
S'il-y-a des cas facultatifs, on a l'option d'utiliser soit la variable inscrite
ou simplement 0 ou 1 (selon le cas) :
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
S
0
1
0
1
-
A
0
0
1
1
B
0
1
0
1
S
C ou 0
C ou 1
C ou 0
C ou 1
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Cas facultatifs : encerclement
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C D S
0 0 0
0 1 1
1 0 0
1 1 0
0 0 1
0 1 1
1 0 1
1 1 0
0 0 1
0 1 1
1 0 1 1 0 0 0
0 1 1 0 0
1 1 0
C
C
AB
00
0 D
1 0
01 11 10
1 D ou 0 1
D
0
-
AB
01 11 10
1 D ou 0 1
D
0
-
00
0 D
1 0
S = CD + ABD + ABD
Ou même encore plus réduite si on utilise un OUX !
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Deux variables inscrites
A
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
B
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
C
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
D
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
...
E
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
S
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
S=E
S=D
S=D+E
S = DE
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Encerclement doublement inscrite
AB
C
00 01 11 10
0 D+E 0 1 D
1 E
0 D DE
AB
C
00 01 11 10
0 D+E 0 1 D
1 E
0 D DE
S = BCD + ABE + ADE + ABD + ABC
Préférez-vous ça ou les tables de Karnaugh à cinq variables ?
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Alternative : les multiplexeurs
On a vu tantôt qu'on peut utiliser un MUX pour implémenter une
table de vérité. Mais on n'a pas expliqué que fait le MUX. Alors
voilà que fait un MUX :
Entrées
Sortie
0
X
Y
1
X
X
Y
Y
L'entrée en haut décide laquelle des autres entrées va passer par la
sortie. C'est tout simplement ça un multiplexeur !
Il-y-a des MUX 2x1 (comme ci-haut), et des MUX 4x1, 8x1, etc...
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
MUX pour les variables inscrites
Si on a une table de vérité avec des variables inscrites, c'est simple
d'utiliser un MUX pour l'implémenter : pas de table de Karnaugh
réquis !
A
0
0
1
1
B
0
1
0
1
AB
S
C
1
C
1
C
1
C
1
S
Notez qu'on aurait pu inscrire la variable A pour encore simplifier :
B
C
0
S
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Multiplexez vous même
Implémentez la table de vérité suivante avec un multiplexeur. Estce-qu'on peut le faire avec un MUX 2x1 ?
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
S
1
1
0
1
0
0
0
1
MUX 4x1
MUX 2x1
S
S
0
0
1
1
0
1
0
1
0
1
Circuit :
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Sommaire (par Monsieur T)
Jeunes ingénieurs, on vient de voir deux
autres techniques pour simplifier. La
semaine prochaine on présente une autre :
Quine-McCluskey. Il va falloir tous les
apprendre, mais apprenez super-bien la
méthode que vous trouvez la plus intuitive.
Vous allez devoir simplifier souvent dans ce
cours, dans d'autres cours et peut-être
pendant vos carrières. Ça vaut la peine
d'apprendre une méthode pour vie !
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005
Lecture et devoirs
Lecture recommandé :
4.14
Et, si vous n'avez rien d'autre à faire :
5.6, 4.8
Problèmes pertinents :
4.34bc, 4.35ad, 4.36b, 4.37bc
I pity the fool who don't do his devoirs!
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Automne 2005