É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 : ABAC=AB 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 ABAC ABC 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 multifonctions, c'estàdire qu'il peut compter selon des schémas prédéfinis. La configuration cidessous, 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éplacezle 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, doublecliquez 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