Vous êtes sur la page 1sur 13

TPN1: Didacticiel de programmation de GAL en VHDL

Objectifs:
Concevoir et Simuler des applications laide de : o ModelSim de Mentor Graphics Version 6.5 Programmer des PLD (circuits logiques programmables) GAL22V10B en utilisant les logiciels suivants: o IspLEVER_Classic1_4 de Lattice SemiConductor o Synplify 7.6 de Synplicity.

Conception et Simulations
Le logiciel de simulation utilis est ModelSim de Mentor Graphics. Pour le dmarrer, effectuez ltape suivante : dans Microsoft Windows, appuyez sur le bouton Start ModelSim SE 6.5 ModelSim Programs

Cration dun nouveau projet dans ModelSim


Dans le logiciel ModelSim : Allez dans le menu File New Project. Vous devriez obtenir une nouvelle fentre telle que prsente ci-dessous. Dans lexemple donn, le nom de projet est exemple_tp2 . Vous devez aussi spcifier o vous dsirez enregistrer le projet; utiliser votre compte rseau (U:) et spcifiez un rpertoire unique.

Le logiciel vous demandera si vous dsirez crer un rpertoire. Acceptez.

Cration dun nouveau fichier


Suite la cration du projet, une fentre Add Items to the Project saffiche. Cliquez sur Create New File .

Une bote contextuelle demande alors les informations sur le fichier crer. Donnez un nom au fichier crer (dans notre cas msa1 ). Vous devriez obtenir le rsultat ci-dessous.

Appuyez sur OK pour ajouter le fichier au projet. Vous pouvez maintenant fermer la fentre Add Items to the Project .

ditiondunfichierVHDL
Un fichier VHDL vide a t ajout au projet (msa1.vhd). Vous devez maintenant crire le code dcrivant votre machine tats finis. Pour diter le fichier msa1.vhd, doublecliquez sur le fichier correspondant dans la liste de fichier du projet. Lannexe 1 prsente le code utilis dans lexemple. Copiez-le dans le fichier msa1.vhd. lmentsimportants Le nom de lentit VHDL (entity) doit toujours avoir le mme nom que le fichier VHDL. Remarquez que dans notre cas, le fichier VHDL se nomme msa1.vhd et que le nom de lentit est msa1. cette tape, les lignes :
library synplify; use synplify.attributes.all;

doivent tre mises en commentaire, elles servent lors de ltape de programmation du GAL.

CompilationduProjet
Deux mthodes sont disponibles pour compiler des fichiers : la premire consiste utiliser la barre de menu, la seconde cliquer laide du bouton de droite sur un fichier dans la liste des fichiers du projet. Allez dans le menu Compile Compile All. Ou cliquez avec le bouton de droite sur le fichier msa1.vhd et allez Compile Compile All.

Si le projet comporte plusieurs fichiers, il est prfrable de cliquer sur la commande Compile All . Tous les fichiers seront ainsi compils dans lordre indiqu par les numros dans la colonne Order. Loption Compile Order permet de choisir lordre dans lequel les fichiers sont compils. Le dernier fichier doit toujours tre celui qui possde le niveau hirarchique le plus lev. Une autre faon de compiler tous les fichiers est dutiliser le raccourci Alt+C+A . Vous pouvez galement vrifier dans lespace de travail Workspace que la librairie work contient lentit msa1.

Crationdunbancdessai(testbench)
Notessurlebancdessai Facile gnrer laide dun template (voir plus loin) Il ny a aucun signal out, in, inout ou buffer . Ils sont tous convertis en signaux internes. Il ne sagit pas dune description matrielle synthtisable. Interaction possible avec lusager. Il est possible de crer un module de vrification qui affiche des messages derreurs et effectue des tests sur la valeur des signaux dans le temps. Ncessite une recompilation chaque modification du fichier source.

Crationdelastructuredubancdessai La structure du banc dessai peut tre gnre automatiquement partir du fichier que vous dsirez simuler. Il faut se servir des templates de ModelSim. Pour ce faire, ouvrez le fichier vhdl simuler en mode edit , partir de longlet Library.

Appuyez sur licne qui apparat dans la barre doutils; voir ci-dessous.

Un menu devrait apparatre cot du code, choisissez Create Testbench .

Dans work, il faut choisir lentit simuler : il sagit en fait du nom que vous avez donn votre fichier vhdl et lentit qui lui est attache. Dans lexemple en annexe, le nom serait msa1.

Laissez intacts les noms de fichiers ainsi que les options coches donns par dfaut.

Le fichier de banc dessai devrait avoir t ajout votre projet. Modificationdufichierdebancdessai La structure a t gnre, il faut ajouter les signaux de simulations au banc dessai pour tenter de recrer le mode dutilisation normal. Il sagit de recrer les conditions que vous souhaitez tester. Crationdessignauxdesimulation Les signaux dfinir sont ceux qui sont crs comme des entres dans les ports de lentit ( in ou inout ). Pour cet exemple, il sagit des signaux dhorloge (clk), dinitialisation (rstN) et lentre x. Le code complet du banc dessai est donn lannexe 2. Des commentaires ont t ajouts aux endroits importants. Le code crit pour le banc dessai na pas tre synthtisable, il est conseill de regarder la syntaxe des fonctions telles que : while loop end loop; assert report severity; wait; o wait for; o wait until; o wait on; o wait;

Simulations
Simulationlaidedubancdessai Dabord, lancez la simulation en allant Simulate Simulate.

Choisissez sous work le banc dessai correspondant, ici msa1_tp et appuyez sur ok.

Il faut maintenant ajouter les signaux au waveform . Cliquez laide du bouton droit de la souris sur lobjet dut et allez Add Add to Wave.

Par dfaut, le pas de simulation est fix 100 ns. Dans notre cas, puisque nous avons une horloge de priode de 100 s, il faudrait environ 8000 pas de simulation pour complter la simulation. Vous allez donc modifier le pas de simulation. Pour ce faire, retournez la fentre principale et entrez le pas de simulation comme montr ci-dessous.

Retournez la fentre wave , qui devrait dj tre ouverte. Faites avancer la simulation dun pas en appuyant sur le bouton Run .

Faites une mise lchelle laide de Zoom Full . Vous avez votre simulation.

ProgrammationduGAL
Le logiciel utilis est ispLEVER.

Crationdunnouveauprojet
Crez un nouveau dossier dans votre compte, par exemple U:\GAL, et mettez-y une copie du fichier VHDL dcrivant votre entit. IMPORTANT: Ce rpertoire doit tre diffrent de U:\, sinon une erreur sera gnre lors de la synthse avec Synplify. Dmarrez le Project Navigator : dans le menu Start Semiconductor ispLEVER. Crez un nouveau projet : File New Project. Programs Lattice

Choisissez un nom de projet sous Project name (dans cet exemple, gal). et allez dans le rpertoire que vous venez de crer (dans cet exemple, U:\GAL). Slectionnez Schematic/VHDL pour le champ Project type, lautre champ reste inchang. Cliquez sur Save.

Si la fentre suivante apparat, choisissez Synplify puis appuyez sur OK.

De retour dans la fentre Project Navigator, double-cliquez sur llment ispLSI5256VE-165LF256 dans la fentre de gauche.

Sous la fentre Family, slectionnez GAL Device et GAL22V10B sous Device. Changez le Package type pour 24PDIP, cliquer sur OK.

Confirmez le changement en appuyant sur Yes.

Appuyez sur Yes pour enlever les anciennes contraintes.

AjoutdufichierVHDL
La premire tape est de dcommenter les deux lignes que vous aviez commentes plus haut.

Dans ispLEVER, allez au menu Source Import. Allez alors o vous avez enregistr le fichier VHDL dcrivant votre systme (pas le banc dessai) et slectionnez-le; pour lexemple, il sagit du fichier msa1.vhd. Choisissez ensuite le type de fichier source, soit VHDL Module et cliquez sur OK.

Compilationdufichier
Dans la fentre Project Navigator, slectionnez le fichier dans la section de gauche et ensuite appuyez sur Synplify Synthesis VHDL File dans la section de droite.

Le programme Synplify sexcute automatiquement Sil y a des erreurs lors de la compilation, elles apparatront dans la fentre du bas. En double-cliquant sur lerreur, le curseur vous mne directement la ligne indique dans votre description VHDL.

Lorsquil ny a plus derreur, un crochet vert apparat et vous pouvez amorcer la gnration du fichier de programmation.

Gnrationdufichierdeprogrammation
Slectionnez le composant dans la fentre de gauche, GAL22V10B-10LP. Cliquez avec le bouton de droite sur Fit Design et choisissez Properties. Modifiez la valeur de l'option P-term Limit for Collapse-All 16 pour permettre des quations ayant un maximum de 16 produits. Fermez la fentre en cliquant sur Close. Double-cliquez sur JEDEC File. Le fichier se cre automatiquement et il est sauvegard dans le mme rpertoire que votre projet. Le fichier porte le mme nom que votre projet avec lextension *.JED.

Accdez au Chip Report pour avoir toute linformation concernant les quations implmentes dans la matrice du GAL ainsi que lassignation des broches. Ces informations peuvent aussi tre trouves dans le fichier portant le mme nom que votre projet avec l'extension *.RPT.

Le fichier JEDEC peut maintenant tre utilis pour programmer le GAL avec le logiciel ChipLab au laboratoire L-5654.