Vous êtes sur la page 1sur 12

Tutoriel du logiciel Quartus dAltera

Version 10 fvrier 2011 Lenvironnement de dveloppement permettant de programmer les composants reconfigurables dAltera se nomme Quartus. Il permet de raliser lintgralit des tapes permettant de configurer un composant programmable. Ce tutoriel est crit pour la version 9.0 de Quartus avec laquelle fonctionne la carte de dveloppement DE0.

1. Cration dun projet


1.1. Cration dun dossier Windows spcifique votre projet Pour chacun des projets ou des versions de projets sur lesquelles vous allez travailler, il est trs fortement conseill de crer un dossier Windows spcifique, dans lequel seront sauvegards le projet et les diffrents fichiers crs. On veillera donc changer de dossier ds quon change de projet ou de version de projet. 1.2. Lancer le logiciel Quartus Lancez le logiciel Quartus II 9.0 Web Edition 1.3. Crer un projet sous Quartus avec lassistant de cration Quartus fonctionnant par projet il est ncessaire de commencer par crer un projet chaque dbut de conception. Pour crer un nouveau projet Pour ouvrir un projet existant

Entrer ensuite dans le Project Wizard le nom choisi pour votre projet : Cliquer 2 fois sur

Choisir le FPGA prsent sur votre carte en slectionnant : La famille de FPGA : Cyclone III Le modle : EP3C16484C6

Cliquer 2 fois sur

puis sur

. Le projet est cr. Passer la partie 2.

2. Crer le ou les fichiers dcrivant votre projet


Un projet est gnralement constitu de plusieurs fichiers dcrivant chacun une ou plusieurs fonctions numriques. Parmi les possibilits proposes par Quartus pour crer des fichiers, nous allons en voir deux : Cration sous forme schmatique : on parle alors de Block Diagramm/Schematic File (extension .bdf des fichiers) : voir partie 2.1. Cration sous forme textuelle en utilisant un langage de programmation de circuits : Langage Vhdl (extension .vhd) ou bien Langage Verilog (extension .v, Langage non enseign lIogs) : voir partie 2.2. 2.1. Cration de fichier sous forme

schmatique

File>New (ou Ctrl N) ou icne puis slectionner le type de fichier :

, Fichier Verilog

Fichier schmatique Fichier VHDL

Dans le fentre qui souvre, slectionner loutil de slection de composants puis, dans la fentre Symbol, pour accder par exemple, une porte ET 2 entres, il faut descendre ensuite dans le menu de slection de composants en choisissant : C:/altera/quartus/ librairies/primitives/logic. Slectionner le composant, puis cliquer sur Ok :

On bascule alors sur le schma ; chaque clic souris dessine une nouvelle porte ; on sort de ce mode par la touche Echap (ou Esc). Pour tracer des connexions, on slectionne loutil (Orthogonal Node Tool), et on relie les 2 terminaisons concernes entre elles :

Il faut maintenant dessiner les entres/sorties de la fonction logique (les IN ou les OUT de la description Vhdl). Pour cela slectionner nouveau loutil puis, dans la fentre Symbol, choisir le chemin C:/altera/quartus/librairies/primitives/pin et choisir input pour les entres ou output pour les sorties. Reprendre les mmes oprations que pour les portes pour la fin de ce schma. On obtient alors :

A ce niveau, soit vous souhaitez utiliser cette fonction dans dautres fichiers (voir la commande COMPONENT en Vhdl, et la notion dinstanciation), soit vous voulez relier votre fonction numrique des broches physiques de la carte DE0. Dans le 1er cas, voir dabord la partie 3. Pour le 2me (par exemple pour votre 1er projet) poursuivre cette partie. Il faut maintenant nommer les entres/sorties avec des noms qui correspondent des broches physiques de la carte. Pour cela, il existe un fichier descriptif de la carte, qui se nomme pour la DE0 DE0_Pins_Assignments . Ce fichier est dans DE0 pour TPELEC que vous devez recopier partir de documents partags dans vos documents. Ce fichier dcrit les 484 broches du composant (do son nom) et nous permet de slectionner facilement les broches de la carte. Par exemple pour relier la 1re entre du schma au bouton poussoir n0, on double-clique sur le pin name du connecteur dInput, puis dans la fentre apparaissant on renseigne le nom en indiquant ORG_BUTTON[0] . Puis on valide :

Pour relier la 1re entre du schma au Switch n8, on renseigne le nom en indiquant SW[8] , et on valide. Pour relier la sortie du schma la Led verte n3 on, renseigne le nom du connecteur Output en indiquant LEDG[3] , puis on valide. Le tableau suivant indique un certain nombre de correspondances :

Exemples de noms de broches prsentes sur la DE0


Nom Mode Commentaires Broches du GPIO n 0 : connecteur d'extension n 0 (GPIO = General Purpose Input Output) Entre Entre n 1 d'un signal d'horloge Entre Entre n 0 d'un signal d'horloge Sortie Sortien 1 d'un signal d'horloge Sortie Sortie n 0 d'un signal d'horloge Bidirectionnelle Donnes d'entre ou de sortie n i (i varie de 31) exemple : GPIO0_D[0] pour le bit n 0 de donne Broches du GPIO n 1 : connecteur d'extension n 1 Entre Entre n 1 d'un signal d'horloge Entre Entre n 0 d'un signal d'horloge Sortie Sortien 1 d'un signal d'horloge Sortie Sortie n 0 d'un signal d'horloge Bidirectionnelle Donnes d'entre ou de sortie n i (i varie de 31) exemple : GPIO1_D[7] pour le bit n 7 de donne Afficheurs 7 segments (de 0 3) 7 Leds (de 0 6) par afficheur 1 DP (dot point) par afficheur Sortie Led n i de l'afficheur 7 segments n j exemple : HEX0_D[6] : Led 6 de l'afficheur n 0 exemple : HEX3_D[6] : Led 6 de l'afficheur n 3 Sortie Led de Dot Point de l'afficheur segments n j exemple : HEX4_DP : Led DP de l'afficheur n 4 Entre Switchs (de 0 9) Switch n i (i variant de 0 9) exemple : SW[6] pour le switch n 6

GPIO0_CLKIN[1] GPIO0_CLKIN[0] GPIO0_CLKOUT[1] GPIO0_CLKOUT[0] GPIO0_D[i]

GPIO1_CLKIN[1] GPIO1_CLKIN[1] GPIO1_CLKOUT[1] GPIO1_CLKOUT[0] GPIO0_D[i]

HEXj_D[i]

HEXj_DP

SW[i]

ORG_BUTTON[i]

Boutons poussoirs (de 0 2) Entre Bouton poussoir n i (i variant de 0 2) exemple : ORG_BUTTON[2]pour le switch n 2 Sortie Leds Vertes (de 0 9) LED verte n i (i variant de 0 2) exemple : LEDG[6] pour la LED n6

LEDG[i]

A ce niveau, il faut permettre au logiciel de faire la correspondance entre les noms des broches de la carte, et les broches du composant. Cela se fait en important le fichier DE0_Pins_Assignments dans le projet. Pour cela, choisir Assignments < Import Assignments : puis aller slectionner le fichier inclure DE0_Pins_Assignments (nb : ce fichier est situ dans DE0 pour TPELEC qui a du tre recopi dans vos documents)

La conception de votre 1er circuit sous forme graphique se termine ici. Reste compiler le projet puis la tlcharger sur la carte. Vous pouvez donc, pour ce 1er circuit, passer directement la partie 5.

2.2. Cration de fichier sous forme de fichier VHDL File>New (ou Ctrl N) ou icne , puis slectionner le type de fichier : VHDL File. Tapez le code Vhdl. Pour associer les Entres /sorties de votre code VHDL des broches physiques du composant, le plus simple est de crer un schma bloc associ votre code VHDL (voir paragraphe 3), puis de relier les broches de ce schma bloc aux broches physique comme indiqu dans le paragraphe 2.1. Il vous faut donc dabord passer la partie 3.

3. Crer un schma associ une fonction


Quartus proposant une interface graphique, il est utile de pouvoir associer nimporte quelle fonction un schma ; cela sapplique indiffremment aux fonctions dcrites sous forme de schma, ou sous forme de code Vhdl. On peut ensuite associer entre elles les nouvelles fonctions dcrites sous formes de schmas, et ainsi de suite. On voit donc apparatre la notion de conception hirarchique. 3.1. Cration de schma associ une fonction sous forme de fichier VHDL Ouvrir le fichier (schma ou code Vhdl) Slectionner Create / Update > Create Symbol File for current File ; voir la figure ci-dessous (nb : pour pouvoir crer un schma associ un fichier, le fichier doit avoir t sauvegard) Sauvegarder le schma (fichier .bdf) ainsi cre dans le dossier du projet en lui donnant un nom explicite.

3.2. Utilisation du schma associ une fonction Crer un nouveau fichier Block Diagramm/Schematic (ou ouvrir un fichier existant) Slectionner loutil Symbol Tool Ouvrir le dossier Project et slectionner le composant par son nom

Composants crs

Se servir ensuite de ce composant comme dun composant standard dans des Block Diagramm/Schematic de plus haut niveau. On peut par exemple associer les broches physiques de la carte au Entres/sorties dun code crit en Vhdl. Pour votre 1re conception en Vhdl, une fois cette association effectue, vous pouvez passer la partie 5.

4.

Comment travailler avec plusieurs fichiers

Cette partie ne concerne pas vos tous premiers dveloppements. 4.1. Travail avec plusieurs fichiers Pour le dveloppement dun projet, on est trs rapidement amen avoir plusieurs fichiers. Quartus nous permet dutiliser des fichiers de tous types (graphiques ou textuels). Pour les associer entre eux, le plus simple est dassocier chaque fichier textuel un schma puis dassocier les schmas entre eux, et enfin de nommer les entres-physiques sur le schma global avec les noms adquats (voir tableau Exemples de noms de broches prsentes sur la DE0 ci-dessus). Le mode opratoire est donc : Crer les diffrents fichiers Associer chaque fichier un schma Associer les schmas entre eux Dsigner le fichier de plus haut niveau de la faon suivante / Slectionner dans le Project Navigator le fichier de plus haut niveau ; faire un clic droit et choisir Set as Top-Level Entity :

4.2. Ajouter ou liminer des fichiers du projet Pour ajouter (ou dailleurs liminer) des fichiers au projet, on slectionne Project > Add/Remove Files in Project puis on choisit les divers fichiers inclure ou exlure :

Puis :

Pour liminer des fichiers du projet, on peut aussi aller dans la fentre de Project Navigator , slectionner le fichier, puis Remove File from Project :

A noter quun fichier limin du projet nest nullement effac de lordinateur et quon pourra le r-inclure dans ce projet ou dans un autre ultrieurement.

5.

Compiler le projet
La compilation va gnrer la configuration du composant programmable qui permettra la ralisation concrte du projet. Pour cela faire : Soit en slectionnant licne idoine :

Commande de compilation Soit en slectionnant dans la barre de menu Processing > Start Compiation, Soit en tapant Ctrl L.

La compilation peut prendre un certain temps. On peut ne pas lire le rapport de compilation dans la fentre de Messages (en bas de la fentre Quartus) lors des premires programmations (voir remarque ci-dessous). Si la compilation nest pas couronne de succs, il va falloir trouver et corriger les erreurs dans les fichiers sources. Sinon, on peut passer la partie 6 : la programmation du composant.

Remarques sur la fentre de messages et celle de Flow Summary : De faon gnrale, un grand nombre dinformations vous sont donnes sur le bon (ou mauvais droulement de la compilation), mais dans un 1er temps leur lecture nest pas indispensable. Vous y verrez un nombre important de warnings : ils ne sont pas forcment critiques. Enfin la fentre de Flow Summary vous donne un rsum sur les ressources occupes par votre fonction sur votre composant. 6.

Programmer le composant
Pour programmer le composant, il faut imprativement : que la DE0 soit relie au PC par cble USB quelle soit sous tension (bouton rouge). que le commutateur RUN / PROG soit positionn sur RUN Il est de plus prfrable davoir test la validit de la chane de dveloppement :ainsi que celle de la connexion USB, comme il est demand dans le texte du Tp. laide du DEO Control Panel par la programmation de la carte laide dun programme dj ralis et prsent sur DE0 pour TPELEC\New Files : de0_debounce_cnt Pour programmer le composant : slectionner licne de programmation :

Commande de compilation ou bien Slectionner Tools > Programmer comme ci-dessous :

La fentre suivante souvre :

A ce niveau, 2 possibilits : 1) Si licone nest pas accessible (ce qui est le cas sur cette copie dcran), il faut : Cliquer sur Hardware Setup Puis dans la nouvelle fentre slectionner USB-Blaster la place de No Hardware dans le menu Currently Selected Harware

10

Cliquer alors sur ; on revient la fentre principale o le choix Start est dsormais valide ; on passe au point suivant 2) Si licone dcran ci-dessous : est accessible (ou est devenu accessible), comme sur la copie

: 7. Cliquer sur : Votre carte est dsormais programme.

Tester le projet implmenter sur le composant


Pour valider la conception, il faut tester le comportement lectronique et le comparer au cahier des charges. En cas de fonctionnement non-conforme, il faudra (srement) revenir la conception des fonctions du projet.

8. Simulation du projet
Les logiciels de simulation possibles dans Quartus seront traits dans un autre document.

9. Complments
9.1. Projets Lorsquon nest pas directement au dmarrage de Quartus, pour crer un nouveau projet, on peut faire File > New Project Wizard Pour ouvrir un projet existant, on peut faire File > Open Project, ou bien Ctrl J Pour fermer un projet ouvert, faire File > Close Project.

9.2. Commandes de schma Pour dplacer un symbole, cliquer dessus et le dplacer. Pour dplacer lensemble du schma dans la fentre active, faire Ctrl A et dplacer Pour copier un symbole, procder par Ctrl C puis Ctrl V. Pour dtruire un symbole, procder slection puis Suppr. Pour modifier le nom dun signal, double cliquer sur le nom puis modifier

9.3. Notion de bus Les signaux numriques se prsentent souvent sous forme de bus (associations de plusieurs fils par exemple lorsquil reprsentent un mot numrique. Il est aussi parfois judicieux dassocier plusieurs signaux boolens et de crer un bus Sous lditeur de schma de Quartus, on trace les bus avec loutil Pour nommer ces bus on utilisera par exemple : HEX2_D[6..0] pour nommer les 6 fils du bus dentre dun des afficheurs 7 segments (donc de sortie du FPGA) , ou encore SW[2..0] pour le bus associ 3 switchs. On choisit la taille souhaite pour le bus.

11

9.4. Du schma au Vhdl A partir dun schma, Quartus peut gnrer un code Vhdl. Pour cela, dans lditeur de schma, slectionner le menu ci-dessous :

Le code Vhdl sera ensuite gnr automatiquement. ---

12

Vous aimerez peut-être aussi