Notation : P1 = 1 ; P2 = 1 ; P3 = 1
Dans ce TP, vous allez utiliser ISE pour construire des circuits logiques schématiques par assemblage de portes logiques élémentaires. Vous vérifierez par simulation puis par exécution sur la carte que les tables de vérité correspondent effectivement à vos observations. C’est via l’interface interactive d’Isim, l’outil de simulation proposé avec ISE, que vous programmerez la simulation. L’exécution sur la carte réutilisera les concepts introduits lors de la leçon précédente...
La description schématique : par un schéma électronique. Pour cela, Xilinx met à disposition des bibliothèques de composants usuels (mémoires, compteurs…) et bien sûr des portes élémentaires.
La description textuelle : langage de description VHDL (il existe d’autres langages, Verilog).
Portes logiques, algèbre de Boole.
Vous allez instancier deux circuits équivalents ce qui vous permettra de valider les acquis de cette leçon. Un troisième circuit plus simple devra être trouvé par simplification de la fonction logique .
Enfin un mini projet sera complétement réaliser de A à Z .
Je vous propose de tester vos connaissances et vos acquis avec un petit exercice. Vous allez maintenant comparer deux circuits qui, vous le verrez, font la même chose. Je vous guide dans l’exercice.
Créez dans ISE un nouveau projet TP21.
Créez par un new source dans ce projet le circuit1 suivant, de type schematic.
En mode implementation, créez le symbole associé à ce circuit dans le menu design utilities. Avant d'utiliser ce symbole, regardez comment les port sont placés sur le composant, vous devez respecter le nom du port et non la position du port , si vous voulez obtenir le même dessin que celui du sujet vous pouvez éditer votre symbole en suivant les explications ici. Ce n'est pas obligatoire.....
Créez avec un second new source le circuit2 de type schematic.
On peut rapidement créer ce deuxième circuit. On sélectionne tout le circuit dans circuit1. On fait un copier/coller dans circuit2. On supprime les Nand2 et on les remplace par des Nor2. Enfin on change le nom de s en t. Il existe un Check Design Rules dans Design Utilities pour vérifier que le circuit est correct.
Créez le symbole correspondant à circuit2.
Créez un troisième new source de type schematic appelé toplevel.
En plaçant une instance de circuit1 et circuit2, réalisez les connexions sur les même entrées a, b et c. Connectez les deux sorties s et t. Placez vos I/O Marker. Une fois sauvé, toplevel.sch doit être la racine de votre projet. Le symbole devant toplevel doit être positionné. On peut le positionner si besoin via le menu de gauche par un clic sur ce symbole ou dans le menu Source par Set as Top Module.
Vérifiez par simulation, en lançant Isim sur toplevel, que les sorties s et t sont équivalentes pour toutes les combinaisons de a, b et c.
Ajoutez une new source TP21 de type Implementation Constraints File. Il faut dans ce fichier associer a, b et c aux switches 0, 1 et 2, et les sorties s et t aux leds 0 et 1. On peut recopier le fichier TP2.ucf, puis le modifier.
Pensez au JTAG !
Vous pouvez générer le code binaire toplevel.bit et le charger sur la carte pour vérification. Les deux leds doivent s’allumer et s’éteindre en même temps quelques soient les positions des switches 0, 1 et 2.
Faire valider cette première étape
Retrouvez les deux fonctions logiques de ces deux circuits. Transformez ces deux fonctions logiques pour en trouver une commune et la plus simple possible. Instanciez alors un troisième circuit dans toplevel pour vérifier que vos transformations allument de la même façon une troisième Led associée à une troisième sortie w. Il faudra créer un symbol et ajouter le fil w dans le fichier ucf
Faites valider cette seconde partie.
L’entreprise dans laquelle vous effectuez un stage vous demande de résoudre un problème de câblage qui concerne un tableau électrique situé dans l’entrée avec trois interrupteurs qui allument le bureau, le salon 1 et le salon 2. Voici les constatations dans l’ordre :
Les trois interrupteurs non actionnés, rien n’est allumé.
En actionnant l’interrupteur a, rien n’est allumé.
En actionnant l’interrupteur b, le bureau s’allume ainsi que le salon 2.
En actionnant l’interrupteur c, seul le bureau reste allumé.
En actionnant l’interrupteur b, les salons s’éclairent mais le bureau s’éteint.
En basculant l’interrupteur a et b la lumière apparait dans le bureau et les salons s’éteignent.
On allume le salon 2 tout seul en actionnant l’interrupteur c.
En actionnant l’interrupteur b et c le bureau est allumé ainsi que le salon 1. Par contre le salon 2 s’éteint.
Il vous est demandé de fournir un schéma électrique de l’installation afin de reproduire ce problème de fonctionnement. Pour cela produisez le table de vérité , simplifiez éventuellement les fonctions logiques obtenues et implémentez un circuit équivalent sur la carte Nexys en utilisant 3 switches et 3 leds. Vous pouvez créer un nouveau projet TP22.