Éléments de logique combinatoire

Transcription

Éléments de logique combinatoire
ELE1300 – CIRCUITS LOGIQUES
TRAVAIL PRATIQUE # 2
ÉLÉMENTS DE LOGIQUE COMBINATOIRE
Objectifs
Réaliser des circuits décrits par des expressions logiques booléennes et concevoir un circuit
simple de conversion hexadécimale.
1ère partie : Algèbre de Boole
Les théorèmes de l’algèbre de Boole permettent de produire des équations comme, par
exemple :
ABAC=AB C
Votre travail consiste à valider expérimentalement et théoriquement les équations logiques qui
vous seront remises au début de la séance au laboratoire.
Théorie
Avant tout, il vous sera demandé de vérifier que les deux équations sont égales d'une façon
théorique, en utilisant les règles de la logique booléenne. Ces démonstrations devront être
remises à la fin du laboratoire.
Réalisation avec CircuitMaker
Pour vérifier expérimentalement si deux expressions sont égales, on réalisera les deux circuits
correspondants; si les deux circuits produisent des sorties identiques pour toutes les
combinaisons d’entrée, alors l’égalité est vérifiée. Par exemple, pour l’équation donnée ci­
dessus, le circuit de vérification sera celui de la figure 1. Page 1 sur 5
ELE1300 – CIRCUITS LOGIQUES / TRAVAIL PRATIQUE # 2
ABAC
ABC
Figure 1 ­ Exemple de circuit de vérification
Afin de produire toutes les combinaisons d’entrée possibles, on utilisera un compteur (7493)
activé par un générateur d’impulsions (« pulser »), comme montré à la figure 2.
Le compteur 7493 est un compteur multi­fonctions, c'est­à­dire qu'il peut compter selon des
schémas pré­définis. La configuration ci­dessous, comportant un retour de Q0 à CP1, permet
de l'utiliser en tant que compteur à 4 bits avec un incrément de 1. Ses autres usages sont
montrés dans sa datasheet.
Figure 2 ­ Production des signaux d’entrée
Enfin, pour évaluer si les deux équations sont équivalentes, une lumière devra s'allumer si les
résultats des deux circuits donnent un résultat différent. Des oscilloscopes numériques devront
aussi être utilisés afin de visualiser les signaux important.
Voici les répertoires de CircuitMaker contenant les principaux composants utiles pour cette
partie du travail :

Générateur d’horloge : Digital / Instruments / Pulser

Scope numérique : Instruments / Digital / Scope

Portes logiques : Digital Basics / Gates

Inverseurs : Digital Basics / Buffers and Inverters / Inverter

Lumière (indicateur logique) : Digital Animated / Displays / Logic Display
Page 2 sur 5
ELE1300 – CIRCUITS LOGIQUES / TRAVAIL PRATIQUE # 2
2e partie : Circuit de conversion hexadécimale
Figure 3 ­ Circuit de conversion hexadécimale
Votre travail consiste à compléter et réaliser le circuit de conversion hexadécimale dont les
spécifications vous seront données au début de la séance.
Exemple de spécifications :
Soient e(16) et s(16), respectivement les valeurs hexadécimales affichées à l’entrée et à la
sortie du convertisseur.
La conversion doit être telle que s( 16) = F( 16) − e( 16) , où F( 16) = 15( 10) ou 1111( 2) .
(Solution : Il suffit d’inverser chaque bit de e(16); seuls quatre inverseurs sont requis.)
Voici les répertoires de CircuitMaker contenant les principaux composants utiles pour cette
partie du travail :

Clavier Hexadécimal : Switches / Digital / Hex Key

Afficheur hexadécimal : Digital Animated / Displays / Logic Display

Portes logiques : Digital Basics / Gates

Inverseurs : Digital Basics / Buffers and Inverters / Inverter
Page 3 sur 5
ELE1300 – CIRCUITS LOGIQUES / TRAVAIL PRATIQUE # 2
Astuces et règles de design
Utiliser les compléments des entrées
Vous aurez sans nul doute à utiliser les compléments des entrées dans votre circuit. Par
exemple, A B C utilise le complément de l'entrée B. Plutôt que d'insérer des inverseurs
juste avant les portes, ce qui peut alourdir le schéma, placez les inverseur directement à
l'entrée du circuit, de manière à disposer des entrée et de leurs compléments. La figure 4
illustre ceci.
Figure 4 – Utilisation des compléments des entrées Visualisation à l'oscilloscope numérique
Lorsque vous regardez plusieurs signaux, il est impératif de placer les signaux dans un ordre
logique. L'ordre de causalité des portes est fortement suggéré, comme le montre la figure 5.
Autrement dit, si le signal A a une influence sur le signal B, le signal A doit se retrouver au­
dessus du signal B sur l'oscilloscope. Ceci permet de visualiser beaucoup plus facilement les
délais de propagation dans les portes, et aide à déboguer le système.
Pour ce faire, cliquez sur le nom du signal que vous voulez déplacer sur l'oscilloscope, et sans
relâcher la souris, déplacez­le en haut ou en bas. Relâchez la souris pour terminer le tout.
De plus, lorsqu'on visualise plusieurs signaux, il est intéressant de renommer la sonde afin de
lui donner un nom plus significatif (par exemple, les bits Q3, Q2 Q1 et Q0 du compteur). Pour
Page 4 sur 5
ELE1300 – CIRCUITS LOGIQUES / TRAVAIL PRATIQUE # 2
ce faire, double­cliquez sur la sonde sur le schéma et écrivez son nouveau nom dans la boîte
de dialogue.
Figure 5 – Visualisation à l'oscilloscope numérique
Inverseur conditionnel
Pour créer un inverseur conditionnel (inverse ou n'inverse pas le signal selon un bit de
condition), vous pouvez utiliser une porte XOR, comme le montre la figure 6.
Figure 6 – Inverseur conditionnel
On peut montrer son effet à l'aide de la table de vérité de la porte XOR :
Entrée
Condition
0
1
0
0
1
1
1
0
On voit que la sortie est inversée lorsque la condition est à 1, et qu'elle n'est pas inversée si la
condition est à 0. D'autres circuits de ce genre peuvent être réalisés avec d'autres portes
logiques. Il suffit de tracer la table de vérité pour vérifier leur fonction, ce que nous vous
encourageons à faire.
Page 5 sur 5