Td corrigé Guide de l'utilisateur pour Quartus II - UQO pdf

Guide de l'utilisateur pour Quartus II - UQO

Le FPGA perd sa programmation quand on enlève l'alimentation mais on peut le programmer ... des éléments de base du langage VHDL seront fournit si nécessaire pour la réalisation de .... Il faut à ce moment corriger les erreurs s'il y a lieu.




part of the document




Laboratoire 3 : Synthèse logique : présentation du logiciel de synthèse Quartus.


Objectifs

Général

Initiation aux outils de conception assistée par ordinateur (CAO)

Spécifiques

Familiarisation avec la carte UP2
Familiarisation avec Quartus II

Préalables

Connaissance des circuits combinatoires de base et de décodeurs
Consultation d’un document de référence de carte UP2 d’Altera


Équipement

Le logiciel Quartus II d’Altera
Carte UP2 d’Altera


Introduction

La carte d’Altera UP2 contient deux circuits programmables soit un CPLD et un FPGA. Un CPLD conserve sa programmation quand on enlève l’alimentation, par contre il y a une limite sur le nombre de fois que l’on peut le programmer. De plus il est de petite taille, soit de 128 cellules macro, l’équivalent de 2500 portes logiques.

Le FPGA perd sa programmation quand on enlève l’alimentation mais on peut le programmer autant de fois qu’on le désire et elle contient 14 fois plus de portes, soit environ 70,000 portes logiques.

On va utiliser le FPGA dans le cadre de ce cours ainsi que le logiciel Quartus II d’Altera qui va nous permettre de télécharger la programmation des circuits sur la carte.

Le logiciel Quartus II permet la programmation sous forme graphique ou sous forme de description HDL. Dans le cadre de ce cours seul l’aspect de programmation graphique est abordé, des éléments de base du langage VHDL seront fournit si nécessaire pour la réalisation de certains travaux pratiques.

Manipulations

Partie A : Réalisation d’une porte logique

Dans cette partie on va réaliser la conception d’une porte logique élémentaire.

Réaliser la démarche telle que décrite dans l’annexe A, Partie I, Étapes I-V.

Partie B : Simulation d’un circuit simple

Dans cette partie on va réaliser la simulation d’un additionneur à 1 bit.

Réaliser la démarche telle que décrite dans l’annexe A, Partie II, Étape I.

Partie C : Conception hiérarchique
Dans cette partie on va réaliser la conception hiérarchique d’un additionneur soustracteur à 4 bits.

Étape I : Mise en place de l’environnement du projet
Créer un nouveau projet dans un nouveau répertoire sur le disque dur où vous avez accès d’écriture.
Étape II : Symbole
Si vous n’avez pas déjà créé un symbole, faites comme dans la partie I pour créer un symbole avec l’additionneur à 1 bit.
Étape III : Schéma
Créer un nouveau fichier graphique et réalisez le circuit.
Étape IV : Simulation
Simuler le circuit.
Étape V : Téléchargement
Télécharger ce circuit sur la carte et vérifier son fonctionnement.

Rapport

Avant la fin de la séance, vous devrez remettre un journal de bord. Vous pouvez, si vous le souhaitez, apporter des précisions, des contributions au présent document.

Vous devrez compléter tout le travail demandé dans les parties de ce laboratoire et tirer vos propres conclusions des résultats.


Annexe


Guide de l’utilisateur pour Quartus II

Introduction

Cette documentation a été produite afin de permettre à des étudiants de l'UQO de faire la synthèse de circuits numériques dans le cadre des travaux pratiques et de projets qu'ils doivent réaliser durant leur formation.

Historique

Le tableau suivant présente l’historique des modifications faites à ce document.

Historique des révisions de ce documentDateDescriptionAuteur (par ordre alphabétique)2006-06-12L'apparence de QuartusShaneen, Antoine2005-07-12Quartus II version 5.0Shaneen, Antoine2005-04-20Première versionMcGirr, Stéphane et Shaneen, Antoine
Préalables

Il va de soit, si l'étudiant désire concrètement réaliser les exercices proposés, qu'une bonne connaissance des circuits logiques est requise pour aborder ce tutorial. La disposition d'un environnement de conception de circuits digitaux est aussi souhaitable. Enfin, les notions de vérification et de simulation sont abondamment utilisées. Une bonne connaissance de ces notions est donc requise.

Ce tutorial utilisera la carte UP2 d'Altera alors il est nécessaire d'avoir au moins eu une introduction à cette dernière avant de procéder la présentation de la plate-forme de développement  HYPERLINK "http://w3.uqo.ca/d_info/statHTML/labos/laboGenie/travauxPratiques/gen1243/up2.ppt" UP2 (9,15 Mo). La description technique de la carte est disponible dans le fichier :  HYPERLINK "http://w3.uqo.ca/d_info/statHTML/labos/laboGenie/manuels/maxPlus2/upds.pdf" upds.

Distribution

Ce tutorial peut être librement distribué.

Manipulations

Partie I 

Étape I : Démarrage de Quartus II

Note : Il se pourrait que la fenêtre suivante s’affiche au démarrage pour vous demande la licence :



Dans ce cas, cocher Specify valid licence file et cliquer sur OK. Saisir ensuite @metis.uqo.local dans le champ Licence file de la fenêtre qui apparaîtra, comme l’indique la figure ci-dessous, puis cliquer sur OK.




Voici la fenêtre d'application telle qu'elle paraît lors du démarrage.


Ceci est la fenêtre de Quartus les outils sont disponibles dans le menu « Tools » .

Parmi ces outils se trouvent :

Un compilateur pour compiler le(s) unité(s) de conception.
Un simulateur qui permet de simuler l'action de votre code à l'intérieur de la carte (puce) cible en lui fournissant des stimuli externes et des horloges, etc.
Un éditeur de forme d'ondes pour créer les fichiers de stimuli nécessaires à la simulation.
Un programmeur pour télécharger votre code compilé sur la carte cible.
Un afficheur de hiérarchie pour visualiser les modules de votre projet hiérarchiquement.
Un éditeur graphique pour le développement par schémas.
Un éditeur texte pour l'entrée de VHDL, Verilog, etc.
Un éditeur de symbole pour la création de symboles personnifiés.
Nous allons maintenant voir comment utiliser ces outils dans la conception d'un projet en utilisant l'apparence de Quartus.

Étape II : Conception Graphique

QuartusII à la manière de Max+PlusII nous permet de concevoir graphiquement un module de haut niveau (Top level module) qui en contient d'autres de plus bas niveau.

Cliquer sur File - New Project Wizard



Entrer dans cette boite à dialogue le nom de votre projet : combinatoire, ainsi qu'un répertoire auquel vous avez accès d'écriture sur votre ordinateur de travail. Donnez le nom porteEt à l’unité de conception de plus haut niveau (Top-level).

Cliquer sur Next deux fois.


Pour la carte UP2, choisir Flex10K comme Family et EPF10K70RC240-4 comme Device.

Pour la carte UP3, choisir Cyclone comme Family et EP1C6Q240C8 comme Device.

Cliquer sur Next deux fois et ensuite Finish.

Cliquer sur File - New et choisir Block Diagram/Schematic File sous l'onglet Device Design Files.


Vous verrez maintenant une nouvelle fenêtre avec un fond en pointillé. Ce grillage sert à placer les composantes. Les outils de dessin se trouvent à gauche de la fenêtre de QuartusII. Sauvegarder le fichier sous le nom porteEt.bdf.

Maintenant vous devez dire à QuartusII que ce fichier deviendra le fichier de plus haut niveau pour la compilation commence par celui-ci. Cliquer sur Project - Set as Top-Level Entity dans le menu.

Double-cliquer sur le fond de la fenêtre de porteEt.bdf.



Vous verrez apparaître une fenêtre vous offrant, en haut à gauche, les symboles de votre projet sous Project et quelques centaines de symboles prédéfinis sous c:/altera/quartus50/libraries.

Chercher dans c:/altera/quartus50/libraries/primitives/logic et sélectionner le and2. Cliquer sur OK. Vous verrez alors la silhouette du symbole se promener avec votre curseur de souris. Cliquer sur le fond de porteEt.bdf. Une instance de la porte ET sera placée à cet endroit. Si vous n'avez pas décoché Repeat-insert mode dans la fenêtre de sélection de symboles, appuyez sur Esc pour sortir du mode placement multiple. Ce mode sert à placer plusieurs instances à la fois. Continuer le dessin en ajoutant deux broches INPUT et un OUTPUT nommées A, B et C respectivement, comme suit :

Sauvegarder votre conception.

Étape III : Compilation

Sélectionner Tools – Compiler Tool dans le menu.



Cliquer sur Start. Une fois la compilation est terminée vous pouvez consulter le rapport en cliquant sur l’icône. Il faut à ce moment corriger les erreurs s’il y a lieu.

Étape IV : Assignation des broches

Faites l’assignation des ces broches aux broches suivantes de la carte :

Pour la carte UP2 :
Entrée / SortieBrocheFonctionnalité sur la carteA28PB1 Bouton poussoirB29PB2 Bouton poussoirC14DEL
Pour la carte UP3 :
Entrée / SortieBrocheFonctionnalité sur la carteA48SW4 Bouton poussoirB49SW5 Bouton poussoirC56D3 DEL
Si vous aviez seulement la puce FPGA à programmer, vous auriez accès à toutes les broches pour les entrées/sorties. Malheureusement, la puce est installée sur une carte et plusieurs de ses broches sont réservés à l'usage de la carte. Ce sacrifice n’est pas sans récompense en retour. Par exemple, des broches peuvent être réservés aux affichages à DEL, aux boutons poussoir, aux commutateurs DIP ou aux autres périphériques.

Pour trouver quelles broches on peut utiliser, on doit regarder la carte des broches à la fin des spécifications pour la carte. Un mappage similaire doit exister pour n'importe quelle carte à puce de ce genre.



Dans cet exemple, on trouve à gauche le numéro du trou du connecteur externe (Hole Number) et dans la deuxième colonne se trouve le nom de la broche et sa disponibilité ou son utilisation. On doit indiquer au logiciel QuartusII quelle broche on veut associer (si elle est disponible) avec les entrées/sorties de notre module. Ceci se fait en cliquant sur Assignements - Pins



Dans le panneau du bas, on voit la liste de broches déjà assignées. Il est important d'en choisir un qui est disponible avant de l'associer, sinon votre module ne fonctionnera pas. Dans le pire des cas, vous pourriez endommager la carte.
Double-cliquer sur la case dans la colonne To et choisir la variable provenant de votre unité de conception. Double-cliquer dans la case correspondante de la colonne Location et choisir la broche. Vous avez créé une assignation.

Une fois les assignations faites, vous devrez recompiler votre module. De cette façon, le compilateur tentera d'effectuer vos assignations et vous indiquera si votre module prend trop de place.

Étape V : Téléchargement

Une fois compilé, votre programme est prêt à être téléchargé. Cliquer sur Tools - Programmer



Vous devriez voir le fichier à télécharger, qui correspond à votre code : porteEt.sof.

Cocher la case sous Program/Configure.



Vous avez maintenant à préparer le câble de téléchargement qui se branche derrière l'ordinateur et sur votre carte. Une fois branchée, mettez la carte sous tension avec l'adaptateur. Faites maintenant une détection du matériel en cliquant sur Hardware Setup...


Vous devriez avoir le câble Byte-Blaster dans Hardware type ainsi que LPT1 dans Port. Corriger s’il le faut. Ensuite cliquer sur OK.



Et cliquer sur Close. Si vous ne pouvez pas compléter ces étapes, c'est que la carte est absente ou mal branchée ou qu'il n'y a pas de tension sur cette dernière.

Cliquer sur Start et le téléchargement commencera. Vous devez télécharger le fichier .sof à chaque fois que vous remettez la tension et à chaque fois que vous modifiez/recompilez votre code. Assurez-vous que votre circuit fonctionne en appuyant les boutons poussoirs.

Étape VI : Création de symbole

Si vous voulez créer un symbole représentant votre unité de conception pour instanciation dans un autre projet (par exemple), sélectionnez File – Create/Update – Create Symbol Files for Current File dans le menu.

La prochaine fois que vous voudrez l’instancier, vous le trouverez sous la rubrique Project comme suit :

Partie II : Simulation

Réaliser le circuit de l’additionneur de 1 bit suivant :



Dans cette partie nous effectuerons la simulation fonctionnelle de ce circuit. Il faut d’abord compiler en mode fonctionnel pour pouvoir simuler le fonctionnement logique (sans prendre en compte les délais) du circuit.

Sélectionner Processing – Generate Functional Simulation Netlist dans le menu.

Corriger les erreurs s’il y a lieu.

Nous devons maintenant commencer la simulation. Cliquer sur File - New et sélectionnez Vector Waveform File de la boite qui apparaît sous l'onglet Other Files.



Cliquer sur OK. Une fenêtre contenant les stimuli et les résultats de l'application des stimuli sur le module. Comme la simulation n'a pas été faite, il n'y a pas de résultat et comme les stimuli n'ont pas été définis, il n'y a rien d'affiché du tout.


Commençons par définir les entrées et sorties que nous voulons analyser. Cliquer à droite sur le panneau sous Name. Cliquer sur Insert Node or Bus dans le menu contextuel. Une fenêtre d'ajout de noeuds apparaîtra.



Si vous connaissez les noms des noeuds par coeur vous pouvez les inscrire ici dans Name et les ajouter un à la fois. Mais une façon plus rapide est de cliquer sur Node Finder...


Dans Node finder, cliquer sur List (cette option de serait pas disponible si vous n'aviez pas compilé auparavant votre code et ce, sans erreurs). La liste complète des noeuds, interne et externe, de votre module apparaîtra dans le panneau de gauche. Vous pouvez en sélectionner un (ou plusieurs à la fois en gardant le bouton CTRL appuyé) et cliquer sur la flèche vers la droite située au centre. La liste des noeuds à visualiser sera donc à droite. Cliquer maintenant sur OK et ensuite sur OK dans la fenêtre d'ajout de noeuds.

Vous devriez maintenant voir tous les noeuds sélectionnés dans la fenêtre de simulation.
Cliquer à droite sur le nom de la variable pour lui imprimer des valeurs. Une valeur typique pour générer des vecteurs de test est l’horloge.



Comme dans l'image précédente, parcourez le menu contexte pour choisir finalement Clock...



Une boite à dialogue vous offrira de définir l'horloge. Choisir pour l'instant une période de 10 ns et cliquer sur OK. Donner une valeur d’horloge de 10 ns à A, 20 ns à B et 40 ns à Cin de sorte que vous obteniez un vecteur test couvrant toutes les permutations possibles. Vous verrez maintenant les variables telles que définies dans la fenêtre des stimuli.



Avant de faire toute modification non générale (non effective pour toute la durée de la simulation) nous devons faire apparaître la grille de fond qui nous permettra de sélectionner seulement les périodes que nous voulons modifier. Cliquer sur Edit - Grid Size...


Indiquer une période de 10 ns et cliquer sur OK.

Maintenant cliquer sur Tools – Simulator Tool. La fenêtre de simulation s'ouvrira. Sous Simulation Mode, choisir le mode Functional.



Assurez vous que le fichier Waveform que vous venez de créer et sauvegardé est sélectionné comme Simulation input et cliquer sur Start ainsi que l’option « Overwrite simulation inputfile with simulation results ».



Après quelques instants, le simulateur indiquera si la simulation a bien fonctionnée ou non. Si non, il se peut que vous n'ayez pas complètement spécifiée les paramètres dans le fichier des stimuli. Cliquer sur le bouton Open pour voir les résultats. Parcourir les stimuli.



On peut changer la base de numérotation des valeurs affichés en cliquant à droite sur le nom et en sélectionnant Properties.



Une fois satisfait du comportement de votre module par une série de tests en simulation, il vous reste maintenant à télécharger votre code.








Laboratoire # 3 - Architecture des ordinateurs I – inf4023 Page  PAGE 14 /  NUMPAGES 17

 EMBED Word.Picture.8 

Programme de Génie Informatique 7643Cours
Architecture des ordinateurs I

Sigle du Cours
INF4023

Session - Groupe
Automne 2006
01

Professeur
Larbi, Talbi

Assistant
Denis, Auger
Antoine, Shaneen



UQO - Département d’Informatique et d’Ingénierie - Architecture des ordinateurs I – inf4023 Page  PAGE 1 /  NUMPAGES 17