TPN°1: 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 démarrer, effectuez l’étape suivante : • dans Microsoft Windows, appuyez sur le bouton Start ModelSim SE 6.5 ModelSim Programs

Création d’un nouveau projet dans ModelSim
Dans le logiciel ModelSim : • Allez dans le menu File New Project. Vous devriez obtenir une nouvelle fenêtre telle que présentée ci-dessous. Dans l’exemple donné, le nom de projet est « exemple_tp2 ». Vous devez aussi spécifier où vous désirez enregistrer le projet; utiliser votre compte réseau (U:) et spécifiez un répertoire unique.

Le logiciel vous demandera si vous désirez créer un répertoire. Acceptez.

Création d’un nouveau fichier
• Suite à la création du projet, une fenêtre « Add Items to the Project » s’affiche. Cliquez sur « Create New File ».

Copiez-le dans le fichier msa1. elles servent lors de l’étape de programmation du GAL. Vous devez maintenant écrire le code décrivant votre machine à états finis. Vous pouvez maintenant fermer la fenêtre « Add Items to the Project ». doublecliquez sur le fichier correspondant dans la liste de fichier du projet. Donnez un nom au fichier à créer (dans notre cas « msa1 »). • doivent être mises en commentaire. • • Allez dans le menu Compile Compile All.vhd.attributes. À cette étape.vhd. Ou cliquez avec le bouton de droite sur le fichier msa1.vhd et allez à Compile Compile All. le fichier VHDL se nomme msa1.• Une boîte contextuelle demande alors les informations sur le fichier à créer.all.vhd). la seconde à cliquer à l’aide du bouton de droite sur un fichier dans la liste des fichiers du projet. Édition d’un fichier VHDL  Un fichier VHDL vide a été ajouté au projet (msa1. Compilation du Projet  Deux méthodes sont disponibles pour compiler des fichiers : la première consiste à utiliser la barre de menu. les lignes : library synplify. . • Appuyez sur OK pour ajouter le fichier au projet. Remarquez que dans notre cas. Vous devriez obtenir le résultat ci-dessous. Pour éditer le fichier msa1. Éléments importants  • Le nom de l’entité VHDL (entity) doit toujours avoir le même nom que le fichier VHDL. L’annexe 1 présente le code utilisé dans l’exemple.vhd et que le nom de l’entité est msa1. use synplify.

Il est possible de créer un module de vérification qui affiche des messages d’erreurs et effectue des tests sur la valeur des signaux dans le temps. Tous les fichiers seront ainsi compilés dans l’ordre indiqué par les numéros dans la colonne Order. Il ne s’agit pas d’une description matérielle synthétisable. Ils sont tous convertis en signaux internes. Création d’un banc d’essai (testbench)  Notes sur le banc d’essai  • • • Facile à générer à l’aide d’un « template » (voir plus loin) Il n’y a aucun signal « out. Nécessite une recompilation à chaque modification du fichier source. in. Une autre façon de compiler tous les fichiers est d’utiliser le raccourci « Alt+C+A ». Interaction possible avec l’usager. • Vous pouvez également vérifier dans l’espace de travail « Workspace » que la librairie « work » contient l’entité msa1. • .Si le projet comporte plusieurs fichiers. il est préférable de cliquer sur la commande « Compile All ». inout ou buffer ». Le dernier fichier doit toujours être celui qui possède le niveau hiérarchique le plus élevé. L’option « Compile Order… » permet de choisir l’ordre dans lequel les fichiers sont compilés.

Création de la structure du banc d’essai  La structure du banc d’essai peut être générée automatiquement à partir du fichier que vous désirez simuler. • Un menu devrait apparaître à coté du code. • Pour ce faire. à partir de l’onglet Library. choisissez « Create Testbench ». ouvrez le fichier vhdl à simuler en mode « edit ». . • Dans work. Dans l’exemple en annexe. il faut choisir l’entité à simuler : il s’agit en fait du nom que vous avez donné à votre fichier vhdl et à l’entité qui lui est attachée. le nom serait msa1. voir ci-dessous. • Appuyez sur l’icône qui apparaît dans la barre d’outils. Il faut se servir des « templates » de ModelSim.

Pour cet exemple.• Laissez intacts les noms de fichiers ainsi que les options cochées donnés par défaut. d’initialisation (rstN) et l’entrée x. il est conseillé de regarder la syntaxe des fonctions telles que : • • • while… loop… end loop. Création des signaux de simulation  Les signaux à définir sont ceux qui sont créés comme des entrées dans les ports de l’entité (« in » ou « inout »). Le code écrit pour le banc d’essai n’a pas à être synthétisable. Des commentaires ont été ajoutés aux endroits importants. o wait for…. Il s’agit de recréer les conditions que vous souhaitez tester. il s’agit des signaux d’horloge (clk). il faut ajouter les signaux de simulations au banc d’essai pour tenter de recréer le mode d’utilisation normal. Modification du fichier de banc d’essai  La structure a été générée. Le code complet du banc d’essai est donné à l’annexe 2. o wait. wait…. Simulations  Simulation à l’aide du banc d’essai  • D’abord. lancez la simulation en allant à Simulate Simulate. assert… report… severity. . Le fichier de banc d’essai devrait avoir été ajouté à votre projet. o wait on…. o wait until….

retournez à la fenêtre principale et entrez le pas de simulation comme montré ci-dessous. Pour ce faire. • Par défaut. puisque nous avons une horloge de période de 100 µs. il faudrait environ 8000 pas de simulation pour compléter la simulation. . Dans notre cas. ici « msa1_tp » et appuyez sur ok. Vous allez donc modifier le pas de simulation. le pas de simulation est fixé à 100 ns.• Choisissez sous « work » le banc d’essai correspondant. Cliquez à l’aide du bouton droit de la souris sur l’objet « dut » et allez à Add Add to Wave. • Il faut maintenant ajouter les signaux au « waveform ».

• Faites une mise à l’échelle à l’aide de « Zoom Full ». Faites avancer la simulation d’un pas en appuyant sur le bouton « Run ». qui devrait déjà être ouverte. Programmation du GAL  Le logiciel utilisé est ispLEVER. Démarrez le Project Navigator : dans le menu Start Semiconductor ispLEVER. et allez dans le répertoire que vous venez de créer (dans cet exemple. Sélectionnez Schematic/VHDL pour le champ Project type. sinon une erreur sera générée lors de la synthèse avec Synplify. et mettez-y une copie du fichier VHDL décrivant votre entité. IMPORTANT: Ce répertoire doit être différent de «U:\». Création d’un nouveau projet  • Créez un nouveau dossier dans votre compte. l’autre champ reste inchangé. . Cliquez sur Save.• Retournez à la fenêtre « wave ». par exemple «U:\GAL». Programs Lattice • • • Choisissez un nom de projet sous Project name (dans cet exemple. «gal»). Vous avez votre simulation. «U:\GAL»). Créez un nouveau projet : File New Project.

. choisissez Synplify puis appuyez sur OK. double-cliquez sur l’élément ispLSI5256VE-165LF256 dans la fenêtre de gauche.• Si la fenêtre suivante apparaît. • De retour dans la fenêtre Project Navigator.

Ajout du fichier VHDL  • La première étape est de décommenter les deux lignes que vous aviez commentées plus haut. Changez le Package type pour 24PDIP. sélectionnez GAL Device et GAL22V10B sous Device. • Confirmez le changement en appuyant sur Yes.• Sous la fenêtre Family. • Appuyez sur Yes pour enlever les anciennes contraintes. cliquer sur OK. .

En double-cliquant sur l’erreur. Double-cliquez sur JEDEC File. pour l’exemple. il s’agit du fichier msa1. GAL22V10B-10LP.• • Dans ispLEVER. • • Le programme Synplify s’exécute automatiquement S’il y a des erreurs lors de la compilation. elles apparaîtront dans la fenêtre du bas.JED. Choisissez ensuite le type de fichier source. un crochet vert apparaît et vous pouvez amorcer la génération du fichier de programmation. Génération du fichier de programmation  • • Sélectionnez le composant dans la fenêtre de gauche. Compilation du fichier   • Dans la fenêtre Project Navigator. Le fichier se crée automatiquement et il est sauvegardé dans le même répertoire que votre projet.vhd. Lorsqu’il n’y a plus d’erreur. Le fichier porte le même nom que votre projet avec l’extension *. Allez alors où vous avez enregistré le fichier VHDL décrivant votre système (pas le banc d’essai) et sélectionnez-le. 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 fenêtre en cliquant sur Close. sélectionnez le fichier dans la section de gauche et ensuite appuyez sur Synplify Synthesis VHDL File dans la section de droite. allez au menu Source Import. le curseur vous mène directement à la ligne indiquée dans votre description VHDL. soit « VHDL Module » et cliquez sur OK. • • .

• Accédez au Chip Report pour avoir toute l’information concernant les équations implémentées dans la matrice du GAL ainsi que l’assignation des broches. • Le fichier JEDEC peut maintenant être utilisé pour programmer le GAL avec le logiciel ChipLab au laboratoire L-5654.RPT. Ces informations peuvent aussi être trouvées dans le fichier portant le même nom que votre projet avec l'extension *. .

Sign up to vote on this title
UsefulNot useful