Vous êtes sur la page 1sur 22

TP N°1 : Prise en main du Quartus II – CPLD/FPGA

TP N°1 : Prise en main du Quartus II – CPLD/FPGA

1. Objectif :
Comprendre et mettre en oeuvre la programmation de CPLD/FPGA de basse densité sous Quartus II à
de la compagnie Altera Dans ce TP vous allez:
 éditer un bloc schématique ou un code VHDL pour réaliser un circuit numérique avec une
cible programmable de basse densité CPLD/FPGA.
 compiler le code saisi afin de corriger les erreurs et les avertissements « warning ».
 faire la synthèse e le placement/routage.
 simuler le bloc schématique ou le code VHDL pour vérifier
 assignation des broches de CPLD/FPGA aux entrées/sorties de
 charger et programmer un design sur un circuit CPLD/FPGA

Dans ce TP, on va implémenter un circuit numérique sur un le circuit programmable,


EPF10K30ATC144-3 et de la famille FLEX10KA, en procédant comme suit :

 Étape 1 : Editer le code du circuit numérique (New Design)


 Étape 2 : Convertir le code en portes logiques. C’est la phase de synthèse
 Étape 3 : Après la synthèse, Quartus enchaine avec le placement/routage des portes logiques
sur le circuit CPLD/FPGA. Ca va aider à déterminer le délai de façon plus précise.
 Étape 4 : Créer le stimulus pour simuler votre circuit.
 Étape 5 : Rouler la simulation et regarder les résultats.
 Étape 6 : Assignation des broches de CPLD/FPGA aux entrées/sorties du design.
 Étape 7 : Charger et programmer le circuit numérique sur un circuit CPLD/FPGA

Dans notre cas, nous choisirons un FPGA de la famille FLEX10KA à savoir le EPF10K30ATC144-3 qui se
trouve être celui de la carte de TP.

Par M. JAROU 1|Page


TP N°1 : Prise en main du Quartus II – CPLD/FPGA

2. Présentation
Quartus est un logiciel développé par la société Altera, permettant la gestion complète d'un flot de
conception CPLD ou FPGA. Ce logiciel permet de faire une saisie graphique ou une description HDL
(VHDL ou verilog) d'architecture numérique, d'en réaliser une simulation, une synthèse et une
implémentation sur cible reprogrammable.

Il comprend une suite de fonctions de conception au niveau système, permettant d’accéder à la large
bibliothèque d’IP d’Altera et un moteur de placement-routage intégrant la technologie d’optimisation
de la synthèse physique et des solutions de vérification. De manière générale, un flot de conception ayant
pour but la configuration de composants programmables se déroulent de la manière suivante :

Quartus est un logiciel qui travaille sous forme de projets c'est à dire qu'il gère un design sous forme
d'entités hiérarchiques. Un projet est l'ensemble des fichiers d'un design que ce soit des saisies
graphiques, des fichiers VHDL ou bien encore des configurations de composants (affectation de pins
par exemple).

Pour lancer le logiciel, on cliquera sur :

Démarrer —Programmes —>Altera —>Quartus II 8.0

Par M. JAROU 2|Page


TP N°1 : Prise en main du Quartus II – CPLD/FPGA

3. Activités pratiques

Lancez Quartus II version 8.

Puis, appuyez sur File > New Project Wizard dans la barre de menu

Commentaires :
Puis se laisser guider, une nouvelle fenêtre permettant de configurer le projet apparaît. Dans cette dernière trois
champs sont à renseigner :
- L'emplacement du répertoire où seront stockés tous les fichiers. Il est conseillé de créer un répertoire propre afin
d'assurer la sauvegarde des données d'une séance sur l'autre,
- Le nom du projet,
- Le nom de l'entité maître du projet étant le design qui correspond à la couche hiérarchique la plus haute.

Par exemple s'il on conçoit un schéma nommé additionneur dans lequel il y aura plusieurs composants graphiques ou
décrit en VHDL, alors additionneur sera l'entité maître. En d'autres termes, additionneur ne dépend pas d'autres
fichiers, c'est le niveau le plus haut dans le design.

Par M. JAROU 3|Page


TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Là, vous choisissez l’emplacement dont le quel vous voulez enregistrer votre projet ainsi que le nom que vous allez lui
donner. Appuyez sur Next.

Si l’emplacement que vous avez spécifié n’existe pas, une fenêtre vous le signale en vous demandant si vous voulez
créer le répertoire du projet. Appuyez sur Oui puis sur Next.

Si vous avez des fichiers pré-créés que vous souhaitez ajouter à votre projet, vous pouvez le faire à travers cette
fenêtre. Dans notre cas nous n’en avons pas. Appuyez sur Next.

Maintenant, vous allez choisir la puce CPLD que vous allez programmer. Dans la fenêtre suivante intitulée Family &
Device Settings, choisir le circuit logique programmable que l'on souhaite utiliser. Dans notre cas c’est la puce
EPF10K30ATC144-3 de la famille FLEX10KA.

Laissez les autres paramètres dans leurs choix par défaut. Appuyez sur Next.

Par M. JAROU 4|Page


TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Si vous voulez utilisez d’autres outils outre ceux utilisés par défaut par Quartus, vous pouvez le faire dans la fenêtre
suivante. Dans notre application, vous allez laisser les champs vides. Appuyez sur Next.

Quand la fenêtre EDA Tool Settings apparaît cliquer sur Next. Une fenêtre récapitulative apparaît pour rappeller les
choix que vous avez effectués. Validez en appuyant sur Finish.

Par M. JAROU 5|Page


TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Quartus ouvre alors sa fenêtre principale, avec le nom de votre projet et le nom de la puce CPLD.

Cette étape permet de définir et configurer les différentes parties du projet. Quartus accepte plusieurs types de saisie à
savoir :
- une saisie graphique en assemblant des symboles,
- une saisie textuelle à l'aide de différents langages (VHDL, Verilog)

Vous allez d’abord créer un fichier schématique en suivant les étapes suivantes : File > New>Bloc Diagramme
/Schematic File :

La fenêtre de dessin du Bolck Diagram s’ouvre. Appuyer sur l’espace dessin avec le bouton droit de la sourie et
choisir Insert > Symbol :

Par M. JAROU 6|Page


TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Pour dessiner un semi-additionneur, vous allez avoir besoin de deux entrées, A et B, de deux sorties, Som et Ret,
d’une porte logique XOR et d’une porte logique AND.

Pour choisir les entrées dans la fenêtre symbol, allez dans Libraries puis le repertoire « Primitives/ Pin », choisissez
l’option « input » puis appuyez sur OK.

Déposez le composant sur la fenêtre de dessin.

De même, ajoutez une deuxième entrée.

Par M. JAROU 7|Page


TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Pour ajouter les portes logiques allez dans Libraries puis le répertoire « Primitives/ Logic », choisissez le
composant « and2 » puis appuyez sur OK.

Procédez de la même façon pour ajouter le composant « xor » et les sorties, que pour les entrées ; Library >
« Répertoire d’installation »> primitive et sélectionner output.

Pour renommer les pins, il suffit de cliquer deux fois dessus et donner un nom et la valeur par défaut dans la fenêtre
« pin properties ».

Après avoir établie les connections par un cliquer-glisser de la souris, voilà à ce que doit ressembler votre schéma
bloc.

Par M. JAROU 8|Page


TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Enregistrez votre travail avec le même nom que votre projet, puis compilez.

Maintenant il faut compiler le schéma et vérifier qu’il n’y a pas d’erreur. Utiliser le menu Processing → Start
compilation ou cliquer sur le bouton dans la barre des icônes.

La fenêtre suivante apparait. On cliquera sur Start pour la compilation.

On obtient l’écran ci-dessous. Appuyez sur OK. S’il y a des erreurs (une autre valeur que 0 errors), alors
il faut regarder les messages d’erreur et vérifier votre schéma.

Par M. JAROU 9|Page


TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Commentaires :
Cette étape consiste maintenant à compiler le schéma précédemment réalisé. Durant la compilation, Quartus va
réaliser 4 étapes
 La transformation des descriptions graphiques et textuelles en une structure électronique à base de portes et de
registres : C'est la synthèse logique.
 L'étape de Fitting (ajustement) consiste à voir comment les différentes portes et registres (produit par la synthèse
logique) peuvent être placés en fonction des ressources matérielles du circuit cible (FLEX 10KA) : C'est la
synthèse physique.
 L'assemblage consiste à produire les fichiers permettant la programmation du circuit. Ce sont des fichiers au
format Programmer Object Files (.pof), SRAM Object Files (.sof), Hexadecimal (Intel-Format) Output Files
(.hexout), Tabular Text Files (.ttf), and Raw Binary Files (.rbf). Dans notre cas, nous utiliserons toujours le
format SOF pour les FPGA et le format POF pour les CPLD.
L'analyse temporelle permet d'évaluer les temps de propagation entre portes et le long des chemins choisis lors
de l’étape de « fitting ». .....

En cliquant sur Report, on trouve une multitude d'information entre autres le pourcentage d'occupation du schéma
dans le circuit programmable, les temps de propagation, les fréquences maximums d'utilisation etc…

Afin d'illustrer cette partie, on pourra par exemple lancer la commande Tools —>RTL Viewer qui permet de voir
comment le schéma (ALU) contenant le code VHDL a été transformé en portes et bascules. Cela permet de voir
comment la synthèse logique s'est déroulée. Dans notre cas, nous retrouverons bien les 4 portes AND.

De même, nous pouvons visualiser la synthèse physique en utilisant la commande :


Tools —>Technology Map Viewer
On retrouve les 4 instances placées dans le circuit et repérées par leurs références.

Avant de vérifier le fonctionnement du schéma sur la carte, on va le faire par simulation. Pour simuler, ouvrez un
fichier de simulation dans File> New> Vector Waveform File puis cliquer sur Ok

Enregistrer le fichier de simulation avec le même nom que celui du projet. D’ailleurs Quartus vous propose le nom du
projet que vous avez rentré à la création du projet.

Par M. JAROU 10 | P a g e
TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Il ne reste plus qu'à insérer les différents signaux de simulation c'est à dire les signaux d'entrée et les sorties
de votre schéma bloc. Dans la colonne Name, cliquer avec le bouton DROIT puis cliquer sur Insert Node or Bus
ou bien on fera Edit —>Insert Node or Bus

Insérer les pins dans le simulateur, comme le montre les deux figures ci-dessous. Cliquer sur le bouton « Node
Finder … » de la fenêtre « Insert Node ou Bus », ce qui permet de lancer le navigateur de signaux

Selectionner le projet « Aditionneur » dans la ligne « Look in » puis cliquer sur le bouton « List » de la fenêtre
« Node Finder».

Par M. JAROU 11 | P a g e
TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Les entrées et les sorties de votre schéma bloc apparaissent. Cliquer sur le bouton « >> » puis sur cliquer sur OK
jusqu’ à revenir à la fenêtre de début

Par M. JAROU 12 | P a g e
TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Pour simuler vous allez donner des valeurs de simulations pour les entrées A et B.

Commentaires

Les signaux apparaissent maintenant dans le visualiseur de signal. Si des bus ont été sélectionnés, il est possible de les
"déplier" en bit à bit en cliquant sur le + (Zone 1).

Afin de donner des valeurs de stimuli, on sélectionne à la souris une partie du signal (2) et avec le menu (3) on lui
attribue une valeur. On notera la possibilité d'insérer automatiquement une horloge (clock) ou un compteur.

Cliquer sur le bouton « Zoom », puis dans la fenêtre centrale, cliquer avec le bouton gauche (zoom +) ou le bouton
droit (zoom -) pour avoir au moins 200 ns de visualisation.

On doit configurer A et B de façon à avoir toutes les combinaisons pour vérifier la table de vérité de notre semi-
additionneur. Les entrées doivent rester stables à 0 ou 1, au moins 30 ns pour chaque combinaison à simuler.

Pour cela, vous sélectionnez A et cliquez sur le bouton droit de sourie puis cliquer sur Value > Clock

Sélectionnez la période que vous voulez et le temps de simulation puis cliquer sur OK. De la même façon vous
donnez des valeurs à B.

Par M. JAROU 13 | P a g e
TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Sauvegarder le fichier en acceptant le nom proposé. Ce fichier additionneur.vwf est le fichier des vecteurs de
simulation. Pour le moment ce n’est pas la simulation.

Pour lancer le simulateur cliquer sur l’icône ou le bouton de simulation ou sur le menu Tools->Simulator Tool

Une fenêtre « Simulator Tool » devrait s’ouvrir. Assurez-vous que la ligne « Simulation Mode » est de type
« Timing » et que la ligne « Simulation Input » contient le nom du fichier .wvf que vous venez de créer.

Après le temps d’exécution, on doit avoir les résultats de la simulation dans la fenêtre « Simulation Waveforms »

Par M. JAROU 14 | P a g e
TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Résultats de la simulation
Vérifier les résultats de simulation. On remarquera que le fichier du résultat de simulation est différent du fichier des
vecteurs saisi auparavent.

Pour changer la durée de simulation, on fera Edit —>End Time et pour réaliser des zooms ou voir toute la
simulation, il est possible de cliquer dans la fenêtre avec le bouton de droite et de choisir Zoom dans le menu.

Commentaires :
Il y a 2 grandes méthodes pour simuler :
 avec les fichiers de type Waveform Vector File (.WVF) qui est la façon de base.
 avec les bancs d’essais, il faut créer d’AUTRES fichiers VHDL qui vont être utilisés pour stimuler le fichier
VHDL initial. C’est une technique un peu plus avancée et qui convient pour réaliser des circuits plus avancés.

Dans ce TP, on va se contenter des fichiers .WVF.

Afin de simuler le design réalisé, il convient de lui injecter des stimuli. Lorsque ces stimuli sont générés à partir d'un
fichier (.WVF) on dit que l'on utilise un fichier de Bench.

Dans le cas présent, nous allons simuler notre schéma en générant les stimuli à partir du Wave Editor. Pour cela,
faites File —>New, aller dans l'onglet Other Files et sélectionnez Vector Waveform File (Fichier de simulation).

Par M. JAROU 15 | P a g e
TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Pour cela on va utiliser 2 switch pour les signaux d’entrées et 2 LEDs pour les signaux de sorties.

Les LEDs ont une anode commune qui doit être active tout le temps. Vous allez la rajouter dans le schéma bloc. Pour
ce faire, vous aurez besoin d’un pin en sortie qui sera toujours en état Haut. Insert > Primitive >Other>VCC.

Recompilez.

Maintenant, vous allez passer à l’assignation des pins. Cliquez sur Assignements > Pins. Une fenêtre apparait vous
montrant les pins de votre puce CPLD.

Par M. JAROU 16 | P a g e
TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Les pins vont être assignés de la manière suivante :

Entrées/Sorties PIN
A 47
B 48
LED_COMM 141
Ret 7
SOM 8

Pour ce faire, sélectionnez un signal d’Entrée/sortie du design dans « Node Namepin », puis dans « Location » tapez
le numéro du pin du composant CPLD.

Une fois vous avez terminé l’assignation, fermer l’utilitaire d’assignation et recompilez le projet.

Par M. JAROU 17 | P a g e
TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Maintenant, vous allez charger votre programme dans le CPLD. Appuyez sur le bouton Programmer.

Selectionnez le fichier d’extension .SOF et appuyez sur le bouton start.

Le programme est alors chargé dans votre carte CPLD.

Pour créer un fichier VHDL, allez dans File > New > VHD file

Editer votre le code VHDL.

library ieee;
use ieee.std_logic_1164.all;

entity Demi_add is

Par M. JAROU 18 | P a g e
TP N°1 : Prise en main du Quartus II – CPLD/FPGA

port( A, B : in std_logic;

Ret,Som,Led_com : out std_logic);


end Demi_add;

architecture rtl of Demi_add is


begin
LED_com <='1' ;
SOM <= A xor B;
Ret<= A and B;
end rtl;

Enregistrer et compiler votre code. Faire l’assignation des pins comme vue précédemment et recompilez votre code.
Envoyez le code vers votre carte de développement CPLD.

Pour visualiser le schéma sunthétisé à partir du code VHDL, il faut cliquer sur Tools  Netlist ViewersRTL
Viewer

Créer un nouveau projet, puis un nouveau fichier Schematic. Dessiner le schéma bloc d’un additionneur complet.

Enregistrez puis compilez votre projet.

Ouvrez un nouveau fichier de simulation et ajouter les pins au fichier.

Par M. JAROU 19 | P a g e
TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Lancez la simulation :

Ajouter un etage pour maintenir l’etat haut de la cathode commune des LEDs dans le fichier Schematic.

Recompilez et ouvrez l’utilitaire d’assignation de pins. L’assignation se fera selon le tableau suivant :

Entrées/Sorties PIN
A 47
B 48
Ret_IN 49
Som 7
Ret 8
LED_COM 141

Maintenant vous pouvez charger votre programme dans votre carte CPLD.

Créer un nouveau projet, puis un nouveau fichier VHDLc d’un additionneur complet.

Editer votre le code VHDL de l’additionneur complet.. Enregistrer et compiler votre code. Faire l’assignation des pins
comme vue précédemment et recompilez votre code. Envoyez le code vers votre carte de développement CPLD.

library ieee;
use ieee.std_logic_1164.all;

Par M. JAROU 20 | P a g e
TP N°1 : Prise en main du Quartus II – CPLD/FPGA

entity add_co is
port ( Ret_in,A,B:in std_logic;
Led_com,Ret_out, Som: out std_logic);
end add_co;

architecture rtl of add_co is


begin
Led_com <='1';
Som<= (A xor B)xor Ret_in;
Ret_out<=(A and B)or((A xor B)and Ret_in);
end rtl;

Allez dans File >


Cretae/Uptate > Create Symbol Files Currrent File

Pour pouvoir réutiliser le nouveau schéma bloc nouvellement crée, créer un nouveau fichier schéma bloc. Allez dans
File > New > Block Diagram/Schematic File. /Libraiie Allez chercher le nouveau bloc sur la bibliothèque de
l’éditeur du schéma Symbol/Librairies/Projetc/add4bits.

Par M. JAROU 21 | P a g e
TP N°1 : Prise en main du Quartus II – CPLD/FPGA

Insérer le bloc Add1bits 4 fois pour réaliser un nouveau design d’un additionneur 4 bits.

Par M. JAROU 22 | P a g e

Vous aimerez peut-être aussi