TP Logisim December 2015 1 Introduction Pour ce TP nous utiliserons un simulateur de circuit logique : logisim, disponible à l adresse suivante : http://www.cburch.com/logisim/download.html. En annexe vous trouverez quelques indications pour vous y retrouvez avec le logiciel. 2 Première partie : additionneur complet Dans cette première partie nous allons nous intéresser en premier lieu à des éléments simples de circuiteries. En TD vous avez vu comment construire un demi-additionneur. Un demi-additionneur permet d additionner deux bits et de récupérer en sortie le résultat ainsi que l éventuelle retenue. Nous allons voir ici comment construire un additionneur complet 1 bit et ensuite un additionneur 4 bits. 2.1 Additionneur complet 1 bit Un additionneur complet 1 bit comprend en entrée 3 variables : les deux bits à additionner (A et B) ainsi qu une retenue éventuelle C. En sortie nous récupérons le résultat S ainsi que la retenue issue du calcul. Pour commencer écrivez la table de vérité de l additionneur complet (la table comportera les variables A,B,C,S et R). Une fois la table de vérité remplie, créez un nouveau circuit sous logisim (que vous appelerez add un ) et réalisez votre additionneur dans logisim en spécifiant correctement les variables d entrée et de sortie. 2.2 Additionneur complet 4 bits Une fois l additionneur 1 bit réalisé, réalisez un additionneur 4 bits à l aide de quatre additionneurs 1 bit. 2.3 Travail demandé pour le rapport: Table de vérité de l additionneur 1 bit Circuit logisim correspondant 1
Circuit logisim de l additionneur 4 bits 3 Seconde partie : bascules Nous allons maintenant étudier le comporte des verrous RS, D et des bascules D. 3.1 Verrou R S En TD vous avez vu les verrous RS ou R S. Réalisez le schéma ci-dessous dans logisim et écrivez sa table de vérité. Observe-t-on bien le comportement attendu? 3.2 Verrou D Un verrou D permet de contrôler plus simplement le contenu d un fil. En analysant le schéma de verrou D ci-dessous, pouvez-vous décrire comme fonctionne le verrou D? 3.3 Bascule D Une bascule D peut se réaliser à l aide de deux verrous D : la sortie d un des verrous est branché sur l entrée de l autre. A l aide de logisim, et en branchant correctement l horloge, réaliser une bascule D à l aide de deux verrous D. 3.4 Travail demandé pour le rapport: Table de vérité du verrou R S Explication du fonctionnement du verrou D Circuit logisim de la bascule D 2
4 Troisième partie : automate Il s agit dans cette dernière partie de réaliser un automate à quatre états. On cherchera à modéliser la situation suivante : la commande d un feu tricolore. Le fonctionnement est le suivant. Au départ le feu est rouge. Si le feu est rouge, il peut passer au vert lorsqu une voiture se présente. Si le feu est orange, il passe au rouge. Si le feu est vert : 1) si une voiture se présente, le feu reste vert ; 2) si une voiture est absente deux fois de suite, le feu passe au orange. L état de notre automate est donc donné par les différents états du feu. La présence (ou non) d une voiture sera implémenté par une entrée E. 4.1 Logique de transition Vous allez réaliser la table logique de transition de l automate. De combien d états avez-vous besoin pour représenter votre automate? (attention au vert!). De combien de bascules D avez-vous donc besoin pour réaliser l automate? Remplir la table de vérité suivante : E Q D......... Exprimer la (ou les) variable(s) D en fonction des variables Q et E. 4.2 Automate Dans logisim, réalisez l automate précédemment décrit. Une fois celui-ci réaliser, ajoutez trois éléments LED (les LED sont allumées sur 1 et éteintes sur 0) et connecter correctement au reste du circuit pour afficher l état de votre feu. 4.3 Travail demandé pour le rapport: Table de vérité et nombre de bascule D pour l automate Circuit logisim de l automate Circuit logisim de l automate avec les LED 5 Annexe 5.1 Prise en main de logisim Logisim est un logiciel java simulant le comportant de circuits logiques. Pour lancer logisim, tapez dans votre terminal java -jar logisim...jar. Le programme se présente par une fenêtre contenant deux parties : sur la droite un schéma de votre circuit (composantes, connexions) et sur la gauche une liste des éléments que vous pouvez ajouter à votre schéma. Un circuit se compose par un ensemble de composantes (porte logiques, ou même directement des circuits complexes tels que des bascules ou des opérations 3
arithmétiques) et de fils reliants ces différentes composantes. Pour vous familiariser avec le logiciel, vous pouvez créer par exemple utiliser une des portes logiques de votre choix (dans le menu Gates sur l onglet de gauche). Lorsqu une porte est séléctionnée vous verrez dans la fenêtre en bas à gauche, différentes propriétés que vous pouvez modifier. Parmi les propriétés utiles, vous pouvez modifier : le nombre de connexions entrantes (Number of inputs) la taille du composante (Gate size) Une fois la porte crée, connecter deux fils sur celle-ci. Pour créer un fil, il faut cliquer sur une des entrées ou sorties du composante et faire glisser la souris le long du quadrillage. Afin de faire un circuler un signal dans les fil, utiliser l élément Pin dans votre circuit. Pin permet de faire circuler un signal 0/1 dans un fil. Une fois votre Pin ajouté à votre circuit, vous pouvez changer la valeur d entrée du signal en utilisant l outil main (voir l icone en forme de main dans la barre d outils) et de cliquer sur la composante Pin pour la faire passer de 0 à 1. Vous pouvez observer la valeur d un fil par sa couleur : bleu pour indéfini vert clair pour 1 vert foncé pour 0 Si vous voulez observer le contenu d un signal, vous pouvez également utiliser la composante pin avec le paramètre output mis sur yes. Figure 1: Logisim. 4
5.2 Réutilisation d un composante Dans logisim, vous pouvez créer vos composantes et les réutiliser dans d autres circuits. Par exemple, cliquer-droit sur le titre de votre projet logisim (en général Untitled ) et faites Add circuit et choississez un nom. Cela créera un nouvel élément dans votre liste. Dans ce nouveau circuit, vous pouvez par exemple réalisez un circuit comportant une porte logique AND? une porte logique XOR, et relier deux entrée A,B à chacun de ces portes et récupérer la sortie de chacun des portes. Il faut donc utiliser deux pin pour les signaux A et B, et utiliser deux pin en mode output pour récupérer les sorties. Mettez tous les pins sur la position x. Maintenant, vous pouvez réutilisez ce circuit dans votre circuit main, en le sélectionnant comme un autre élément des circuits possibles. 5