Conception d un conteur sur FPGA «Xilinx SPARTAN 6» en VHDL Le but de ce mini-projet est d apprendre un nouveau langage HDL tel que le très populaire «VHDL». Pour ce faire, nous allons utiliser un outil de développement complet de «Xilinx ISE Design suite 14.7». Le but ici, n est pas de faire une implémentation concrète d un FPGA sur une carte électronique, mais plutôt d utiliser entr autre un mode de simulation de test de l outil de développement afin de valider le comportement du code VHDL. Ainsi, comme bien souvent en industrie, le matériel électronique n est pas toujours prêt et le développement logiciel doit alors poursuivre. La simulation électronique nous permet donc d assurer le bon fonctionnement. Le mini-projet consistera alors simplement à concevoir un conteur de 4 bits qui sera alors incrémenté avec l aide d un signal d horloge en entré. Il sera alors très facile de simuler le bon fonctionnement de comportement et de vérifier les bonnes contraintes de temps d exécution. Il n y aura alors pas de différences entre la simulation logicielle et la réalité matérielle. Imaginons que nous devrions faire ce circuit logique. Nous devrions alors avoir ceci : Création d un projet avec Xilinx ISE On doit démarrer le logiciel de développement comme suit :
Vous devez alors cliquer sur File New Project et une fenêtre va alors apparaître comme suit : Vous devez tout simplement donner un nom de projet «LaboConteur» et signifier l emplacement où sera situé tout le contenu de votre projet. Par la suite, cliquer sur «Next» et prenez soin alors de configurer votre projet comme suit :
Cliquer sur «Next» et sur «Finish».
Ajout des librairies nécessaires Cliquer sur «xc6slx9-3tqg144», dans le menu contextuel par un clic droit, sélectionner «New Source», une fenêtre apparaîtra et sélectionner alors «VHDL Module» et donner le nom «conteur», cliquer sur «Next» et «FINISH». Le squelette de votre code VHDL suivant devrait apparaître : Afin de bien développer votre projet du conteur, vous devez ajouter les librairies au niveau du code source:
use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; Vous devriez alors avoir ceci: Ajouter votre code VHDL Le code VHDL que vous devez concevoir doit avoir les caractéristiques suivantes : Un signal d entré «clk» qui va alors permettre de faire incrémenter le conteur; Un signal d entré «reset» qui va alors permettre de mettre à zéro le conteur; Un signal «count_out» qui va permettre de générer un signal de sortie sur 4 bits correspondant alors à la valeur du conteur sur 4 bits. Voici donc ce que vous devez ajouter à votre code VHDL : 1. Vous devez donc ajouter le contenu de la section «entity» afin de décrire un port( clk,reset, count_out) sur le FPGA. 2. Ajouter le code décrivant le comportement du conteur dans la section «Behavioral» a. Ajouter un signal temporaire pour le traitement du conteur comme suit : architecture Behavioral of conteur is signal temp_count : std_logic_vector(3 downto 0) := x"0"; begin b. Ajouter un processus qui va permettre de prendre en charge les signaux (clk, reset et temp_count). Vous devriez donc déclarer votre processus en VHDL comme ceci : counting : process(clk, reset, temp_count) begin
end Ce processus doit alors vérifier le diagramme de flot de données suivant : clk event and clk= 1' then reset = 1 Temp_count <= 0000 temp_count <9 Temp_count <= 0000 Temp_count <= temp_count + 1; Count_out <=temp_count Vous devez donc ajouter le code VHDL nécessaire pour votre conteur au niveau du processus et pouvoir par la suite le compiler.
Compiler Lorsque le code VHDL n est pas compilé, vous devriez alors avoir des points d interrogation sur la partie «Synthesize» «Implement Design». et Afin de pouvoir compiler votre code VHDL, vous devez tout d abord sélectionner le module VHDL en question et sélectionner «Implement Top Module». Après un certain temps, si votre code a été compilé correctement, vous devriez alors retrouver une image comme ceci : Ajout de test pour simulation
Le but ici est d ajouter un test afin de simuler le comportement du conteur qui a été développé. Pour ce faire cliquer sur «xc6slx9-3tqg144» comme auparavant, et au niveau du menu Project, sélectionner «New Source». Une fenêtre va alors apparaître. Sélectionner alors «VHDL Test Bench» donner un nom tel que «ConteurTestBench». Cliquer sur «Next». Une fenêtre va alors apparaître et vous devez alors choisir la source «conteur». Cliquer sur «Next» et «Finish». Exécution de la simulation avec ISIM Pour faire une simulation, cliquer alors sur Simulation tel que: Votre code ConteurTestBench.vhd qui a alors été généré est quelquechose comme :
Cliquer sur le fichier «ConteurTestBench.vhd» Au niveau de la fenêtre des «Process» cliquer sur «Behavioral Check Syntax» et right-click et «RUN» Au niveau de la fenêtre des «Process» cliquer sur «Simulate Behavioral Model» et right-click et «RUN» Une nouvelle fenêtre va alors apparaître avec votre simulation temporelle logique de votre conteur. Cependant, afin de valider le bon fonctionnement, vous devez configurer les bon paramêtres d affichage : Aller dans le menu «View» et cliquer sur «Zoom» «Full View». Par la suite, utiliser la loupe (+) ou appuyer sur F8 afin de voir l exactitude de votre diagramme de temps. Vous devriez alors avoir ceci qui démontre le bon fonctionnement de votre conteur: Pondération Conception du composant en VHDL (4 points) Exécution du logiciel embarqué, captures d'écrans, tests (5 points)
Réponses aux questions individuelles (1 point) Pondération négative: Qualité du français -10% Style au niveau de la programmation (commentaires, noms significatifs, etc) -20% Respect des consignes (noms imposés, etc) -30,00% Respect de la structure du projet. Les fonctionnalitées doivent être dans les bons fichiers Plagiat Retard -40,00% - 100% + note au dossier -30%/jour