Introduction à Quartus II et ModelSim 1 Introduction Ce laboratoire a pour but de vous initier aux logiciels Quartus II et ModelSim. Après l avoir suivi, vous serez capable de modéliser un schéma logique avec Quartus II et de le simuler à l aide de ModelSim. Avant toute chose, nous allons nous assurer que votre disque réseau MyFiles a correctement été connecté : pour ce faire, veuillez suivre le tutoriel sur http://wiki.epfl.ch/myfiles-windows. Vous devez commencer par créer le répertoire qui va accueillir tous les fichiers de notre projet. Si, par exemple, le fichier est créé avec le nom Z :/lab01, vous devez organiser les fichiers selon la hiérarchie suivante : Z :/lab01/ quartus/ modelsim/ Le système modélisé et simulé sera un additionneur complet. Cependant, vous n aurez pas à vous soucier dans ce laboratoire de la synthèse : elle a été faite pour vous et sera étudiée plus tard dans le cours. 2 Quartus II 12.0sp2 Altera Quartus II 1 est un logiciel d aide à la conception, permettant de faire l analyse et la synthèse des systèmes numériques. Bref aperçu de l interface de Quartus II 1. Liste des fichiers contenus dans le projet 2. Tâches en cours (progression de la compilation) 3. Messages lors de la compilation 4. Barre d outils principale FIGURE 1 Quartus II 1. Ce logiciel est gratuit dans sa version Web Edition sur http://www.altera.com EPFL - IC - Version 1.5 1 sur 8
2.1 Création d un projet Il est possible de créer un nouveau projet de deux manières : À l ouverture du logiciel, en cliquant sur le bouton Create a new project de la fenêtre Getting Started. En passant par le menu : File New... New Quartus II Project. FIGURE 2 Quartus II - Getting Started Une fois l assistant de création de projet ouvert, entrez les informations suivantes : 1. Directory, Name, Top-Level Entity Working Directory : Z :/lab01/quartus/ Project Name : lab01 Top-Level Entity : lab01 (celle-ci pourra être modifiée par la suite, si souhaitée, dans les préférences du projet) 2. Add Files Ajouter au projet des fichiers pré-existants. Pour ce laboratoire, il n y en a pas. 3. Family & Device Settings Family : Cyclone IV E Device : EP4CE22F17C6 4. EDA Tool Settings Design Entry/Synthesis : Precision Synthesis Simulation : ModelSim-Altera VHDL 5. Summary Etape qui résume la configuration du projet. 2.2 Création d un schéma Quartus II propose plusieurs méthodes de conception. Pendant cette première partie du cours, nous allons nous concentrer sur la conception à l aide des schémas réalisés avec le Block Editor. Pendant la deuxième partie du cours, nous verrons comment modéliser ces schémas à l aide du langage VHDL. Pour lancer l éditeur de schémas, allez dans File New... Design Files Block Diagram / Schematic File. Si vous voulez travailler en plein écran, cliquez sur 2.2.1 Bibliothèque (Detach Window) pour extraire la fenêtre. Pour insérer des composants, ouvrez la bibliothèque à l aide du bouton (Symbol) : la fenêtre de la figure 3 permet d insérer des composants, qui pourront être reliés entre eux pour former un schéma. Vous trouverez les portes logiques de base dans le dossier primitives/logic. Vous pouvez également entrer le nom de la porte dans le champ name : si, par exemple, vous écrivez or2, ceci aura pour effet de vous afficher une porte logique OU à deux entrées dans le cadre de droite. Cliquez sur OK, puis cliquez dans l éditeur de bloc pour placer le composant à l intérieur de celui-ci. EPFL - IC - Version 1.5 2 sur 8
FIGURE 3 Symbol 2.2.2 Connexions entre composants Pour connecter deux composants entre eux, il suffit d aller sur l une des entrées/sorties (pins) du composant. C est alors que le curseur se transformera en croix, ce qui signifie que vous pouvez interconnecter les composants entre eux. Créez le diagramme comme présenté sur la figure 4, en passant par les étapes suivantes : FIGURE 4 Block Editor (FullAdder) 1. Ajoutez les portes logiques suivantes : Deux portes ET à deux entrées AND2 (bibliothèque primitives/logic) Deux portes OU-Exclusif XOR (bibliothèque primitives/logic) Une porte OU à deux entrées OR2 (bibliothèque primitives/logic) 2. Ajoutez trois entrées Input (bibliothèque primitives/pin) 3. Ajoutez deux sorties Output (bibliothèque primitives/pin) 4. Renommez les entrées/sorties. 5. Reliez les composants. Pour finir, enregistrez le schéma dans le répertoire du projet, sous le nom FullAdder.bdf. 2.3 Création d un composant A l instar de la programmation orientée objet, il est utile de pouvoir créer de nouveaux composants afin de les réutiliser de façon modulaire. Il est maintenant question de créer notre composant à partir du schéma créé EPFL - IC - Version 1.5 3 sur 8
précédemment. Pour ce faire, File Create / Update Create Symbol Files for Current File et enregistrez le fichier sous le nom FullAdder.bsf dans le répertoire du projet. Notre composant sera automatiquement ajouté à la bibliothèque. Nous allons en avoir besoin pour finir la création de notre schéma principal. Pour ce faire, créez un nouveau schéma comme vu à la section 2.2 et enregistrez-le sous le nom Lab01.bdf ; puis, ajoutez-y le composant FullAdder qui se trouve dans la bibliothèque, comme le montre la figure 5. FIGURE 5 Symbol with Lab01 Il est possible de modifier la représentation d un composant à l aide du Symbol Editor. Faites un clic droit sur le composant et sélectionnez Edit Selected Symbol. Après avoir enregistré vos modifications, selon la partie droite de la figure 6, faites un clic droit dans le Block Editor et sélectionnez Update Symbol or Block, ce qui aura pour effet de mettre à jour la représentation de tous les composants. Pour finir, ajoutez trois entrées et deux sorties, renommez-les et reliez-les comme sur la partie gauche de la figure 6. FIGURE 6 Block & Symbol Editor 2.4 Compilation du projet Une fois les schémas créés, il ne nous reste plus qu à compiler le projet afin de le synthétiser. Pour ce faire, cliquez sur (Start Compilation) : une fenêtre de rapport s ouvrira. En cas d erreurs, Quartus II vous les affichera dans la zone Messages. EPFL - IC - Version 1.5 4 sur 8
3 ModelSim 10.1b Altera ModelSim 2 est un logiciel de simulation de systèmes logiques modélisés à l aide d un langage de description de matériel (HDL : Hardware Description Language). 3.1 Lancement de la simulation depuis Quartus II Pour effectuer la simulation sous ModelSim, il faut commencer, bien entendu, par ouvrir l application. Quartus propose un raccourci pour ouvrir ModelSim et compiler le projet. Sous Quartus II, allez dans Tools Run Simulation Tool Gate Level Simulation... Il faut ensuite prendre le modèle "Slow Model" et cliquer sur Run, ce qui aura pour effet d ouvrir ModelSim et de compiler le projet. FIGURE 7 EDA Gate Level Simulation Toutefois, il est possible d effectuer ces étapes à la main, tel qui est expliqué à la section 3.3. Pour avoir la même interface que sur l image ci-dessous, il vous faut tout d abord passer l interface en mode simulation (Layout Simulate) et ensuite ouvrir le cadre des signaux (View Wave). 1. Library : Liste des librairies pouvant être utilisées par notre projet Project : Liste des fichiers faisant partie du projet ModelSim 2. Objets pouvant être simulés 3. Processus (liés à VHDL, le HDL qui sera étudié et utilisé plus tard dans le cours) 4. Signaux de la simulation en cours 5. Console permettant de contrôler la simulation en cours FIGURE 8 ModelSim 3.2 Simulation Cliquez sur (Simulate) et choisissez le projet en cours work lab01 (voir figure 9). 2. Ce logiciel est gratuit dans sa version Starter Edition sur http://www.altera.com. EPFL - IC - Version 1.5 5 sur 8
3.2.1 Ajout des objets à la liste des signaux visibles FIGURE 9 Start Simulation Lorsque la simulation est lancée, tous les signaux faisant partie du projet se retrouvent dans le cadre Objects. Pour les ajouter à la liste des signaux visibles, sélectionnez-les et glissez-les à l intérieur du cadre Wave. Il est possible de modifier la base d affichage (binaire, décimal, hexadécimal,...) à l aide de la fenêtre de dialogue Objects Global Signal Radix. 3.2.2 Configuration des signaux en entrée Pour configurer les signaux, il faut indiquer quel sera leur comportement lors de la simulation. Ceci s effectue dans la console à l aide de la commande : 1 force <object > <state0 > <time0 > [,... [, <staten > <timen >]] [-repeat p] Listing 1 Commande de simulation object : Signal à définir state : Etat sous forme binaire (0 ou 1) ou hexadecimal (16#1, 16#2,..., 16#f,... ) time : Temps pendant lequel l état sera activé -repeat : Permet de définir un signal périodique de période p Si aucune unité de temps n est indiquée, les temps sont donnés en picosecondes (ps) par défaut. Autrement, il est possible de spécifier le temps en picoseconde (ps), nanoseconde (ns) ou milliseconde (ms). C est au moment de la simulation (commande run) que le signal affiché prendra ces valeurs. Par exemple, si l on veut que le signal a effectue les variations de la figure 10 et que l on veut répéter ces variations toutes les 40ps, il faudra écrire la commande suivante : 1 force a 0 0, 1 10, 0 20, 1 25, 0 30, 1 35 -repeat 40 Listing 2 Commande de simulation EPFL - IC - Version 1.5 6 sur 8
a 1 period 0 0 10 20 30 40 50 FIGURE 10 Chronogramme de a 3.2.3 Simuler Il faut maintenant exécuter la commande run n pour lancer la simulation pendant un temps n. 3.2.4 Script de simulation Il est possible de configurer et de lancer la simulation à l aide d un script. Pour ce faire, il suffit d écrire les commandes dans un fichier texte stocké à la base du répertoire du projet et d exécuter la commande : 1 do ScriptFileName Listing 3 Exécution du script de simulation Il faut que le script se trouve dans le même dossier que ModelSim : exécutez la commande pwd dans ModelSim afin de voir dans quel dossier vous êtes. Le plus simple, c est d éditer le script dans ModelSim même, à l aide de la commande File New Source Other 3.2.5 Simulation de l additionneur complet Dans notre simulation, le but est de tester toutes les valeurs possibles pour a, b et c_in. Nous allons donc utiliser les commandes suivantes : 1 force a 0 0, 1 20 -repeat 40 2 force b 0 0, 1 40 -repeat 80 3 force c_in 0 0, 1 80 -repeat 160 4 run 160 Listing 4 Script de simulation FIGURE 11 Simulation EPFL - IC - Version 1.5 7 sur 8
3.3 Utilisation de ModelSim sans passer par Quartus 3.3.1 Création d un projet Pour créer un projet : File New Project... Entrez les informations concernant le projet en cours et placez-le dans le répertoire Z :/lab01/modelsim/ créé en début de laboratoire. Une fois le projet créé, une fenêtre vous propose d ajouter ou de créer un fichier dans le projet. Il faut cliquer sur Add Existing File pour y ajouter le fichier qui a été créé lors de la compilation par Quartus II. Prenez le document Z :/lab01/quartus/simulation/modelsim/lab01.vho et sélectionnez la case Copy to project directory pour effectuer une copie dans le répertoire du projet. FIGURE 12 Create Project - Add Items & File 3.3.2 Compilation ModelSim n utilisant pas maintenant Quartus II, nous devons compiler le projet. Pour cela, cliquez sur le bouton (Compile All), ce qui aura pour effet de compiler tous les documents HDL. Si la compilation a réussi, un message sera affiché dans la console. Vous pouvez alors passer à la partie simulation, comme décrit à la section 3.2. EPFL - IC - Version 1.5 8 sur 8