Sunteți pe pagina 1din 26

Programmer un FPGA avec Quartus II

Comme nous lavons vu, la conception de cartes lectroniques est aujourdhui fortement assiste par
ordinateur.
Le logiciel Quartus II est ddi la programmation des CPLD et FPGA du fabricant Altera ; il permet
la description d'un projet, sa compilation, sa simulation logique et temporelle, son analyse temporelle
et la programmation d'un circuit cible.

Description
graphique
ou textuelle

Simulation
fonctionnelle

Choix du
circuit cible,
simulation
temporelle

Programmation

Le composant que nous programmerons, un FPGA de type EP2C35F672C6 de la famille Cyclone


II se trouve sur une carte de dveloppement, associ des composants annexes.

1 Configurer Quartus et vrifier la validit de la licence


Avant dutiliser le logiciel, il faut le configurer et vrifier la validit de la licence. Cette opration est
normalement dj ralise. On se reportera ventuellement aux annexes 1 et 2 ;

2 Fonctions de bases
Dans cette partie, nous verrons comment dcrire un projet, effectuer une simulation fonctionnelle,
affecter les entres sorties et programmer notre circuit cible.
Dans un premier temps, nous nous contenterons dimplanter des fonctions logiques de base au sein
de notre FPGA. Quelle que soit la simplicit de notre conception, il est ncessaire douvrir un nouveau
projet

2.1

Ouvrir un nouveau projet

Ouvrir Quartus II comme nimporte quel logiciel, il prsente alors linterface suivant, comprenant 4
zones ou fentres principales :

Denis Rabast

IUFM Aix-Marseille

1/26

Programmer un FPGA avec Quartus II

Zone
navigateur
de projet

Zone de travail

Zone
dtat

Zone de messages

une zone navigateur de projet permettant de grer les diffrents fichiers dun projet ;
une zone de travail permettant la synthse du projet ;
une zone dtat (Status) permettant de voir lavancement de la tche en cours ;
une zone de messages.

Si ces fentres napparaissent pas, on peut les activer par :

Aprs louverture du logiciel, un assistant vous permet, aprs une fentre dintroduction, de
commencer configurer vos projets :

Denis Rabast

IUFM Aix-Marseille

2/26

Programmer un FPGA avec Quartus II

Choisir un rpertoire de travail

(mmoriser son emplacement) et dfinir un nouveau dossier

laide de lexplorateur qui souvre


(FL_base par exemple) et attribuer un nom votre
projet (qui peut tre aussi FL_base pour faire simple).
Attention : ne pas utiliser de caractres accentus pour les noms de projet et fichiers.
Lcran suivant permet ventuellement dassocier des fichiers au projet ; nous najouterons rien de
particulier.
On choisit ensuite le circuit cible un EP2C35F672C6 de la famille Cyclone II . Noter que cette
tape permet galement de dfinir le circuit cible par des critres tels que famille, brochage etc ou
de laisser libre choix au logiciel de choisir le circuit le mieux appropri au projet dans une famille
donne.

Lassistant permet galement de slectionner des outils EDA (Electronic Design Automotion tools)
autres que Quartus pour la synthse, la simulation ou lanalyse temporelle. Nous nous contenterons
des outils fournis par Quartus. Enfin, la dernire fentre rsume les choix oprs.

Denis Rabast

IUFM Aix-Marseille

3/26

Programmer un FPGA avec Quartus II

Lorsque lon souhaitera ouvrir de nouveau ce projet ou un autre, on procdera comme suit :

Dans Quartus, un fichier nest rien sil nest pas intgr - et ouvert- dans un projet.

2.2

Description graphique dun projet

Dcrivons une simple fonction ET pour notre projet


Pour cela, au sein de notre projet FL_base, ouvrons une feuille graphique ( Block diagram /
Schmatic File ).

Dans la feuille qui vient de souvrir, par un clic droit au milieu, insrer le symbole dune
fonction ET deux entres, and2 que lon trouvera dans la bibliothque
primitives / logic

Denis Rabast

IUFM Aix-Marseille

4/26

Programmer un FPGA avec Quartus II

Placer ensuite deux entres et une sortie avec les composants input et output qui se trouve
dans le rpertoire primitives / pin , ainsi que les fils de liaisons laide de licne Orthogonal
, puis donner un nom aux entrs et sortie en cliquant
Node Tool gauche de la feuille
sur le nom par dfaut, pour obtenir le schma suivant :
A laide de loutil loupe par clic droit ou clic gauche on peut agrandir ou compresser la zone
daffichage.

Sauvegarder ensuite le schma, sous le nom par exemple de fct_ET ; votre schma sera alors
sauvegard sous le nom fct_ET.bdf (pour Block Description File) au sein du projet FL_base qui peut
ventuellement contenir plusieurs schmas ou descriptions diverses, correspondant soit plusieurs
versions dun mme systme, soit des descriptions interdpendantes les unes des autres.
On vrifie alors en slectionnant
longlet Files de la zone
navigateur de projet que
notre fichier est apparu :

Denis Rabast

IUFM Aix-Marseille

5/26

Programmer un FPGA avec Quartus II

Un projet au sein de Quartus II pouvant grer plusieurs descriptions, il est important de placer celle
sur laquelle on va travailler au niveau le plus lev de la hirarchie du projet, ce qui peut se faire :
- Soit avec Set as Top Level Entity du menu contextuel du fichier concern dans la zone
de navigation ;
- Soit en cliquant dans la page correspondant au schma puis Project > Set as top Level Entity de la barre de menu :
- Soit cliquant dans la page correspondant au schma puis le raccourci clavier Ctrl Shift J.

Avant dentreprendre lanalyse dune description ou sa compilation, toujours


vrifier que celle-ci est bien au niveau de hirarchie le plus leve ; il est
fortement conseill de faire un Ctrl Shift J aprs avoir cliqu dans la page
correspondant la description pour lactiver.
On vrifie ensuite, dans la zone de navigation, avec longlet Hierarchy que notre fichier se trouve
bien au niveau le plus lev (pour linstant, cest le seul fichier, ce donc pas trs compliqu)

2.3

Analyse et synthse

On peut ensuite lancer une premire analyse du projet par licne approprie :

Cette premire tape nous permettra entre autres :


- deffectuer une simulation fonctionnelle de notre description ;
- de dclarer les entres sorties au logiciel pour une affectation ultrieure.
Normalement cette tape se droule sans erreurs (sinon voir la fin de cette premire partie) :

Denis Rabast

IUFM Aix-Marseille

6/26

Programmer un FPGA avec Quartus II

En cas derreur, ouvrir longlet Error dans la fentre de message, faire un double clic sur la
premire erreur, ce qui aura pour effet dafficher en bleu la zone du schma posant problme.

2.4

Simuler

Cette tape va nous permettre de valider le fonctionnement de notre description, dun point de vue
logique uniquement (sans prendre en compte les retards que va introduire le circuit cible). Avant de
simuler, il est ncessaire de prciser les sorties (ici il ny en a quune) que lon souhaite observer, ainsi
que les entres que lon applique.
2.4.1

Crer et dcrire le fichier de simulation

Cest un fichier graphique o sont dcrits, sous forme de chronogrammes, les signaux dentre, ainsi
que les signaux de sortie que lon souhaite visualiser.

Prciser ensuite la dure de simulation (1 s par exemple), ainsi que le pas de la grille (10 ns par
exemple).

Denis Rabast

IUFM Aix-Marseille

7/26

Programmer un FPGA avec Quartus II

On insre ensuite les diffrentes entres sorties par un clic droit dans la colonne Name et
Insert :

Dans la fentre qui souvre, cliquer sur Node Finder , puis valider Pin all dans le filtre, et
cliquer sur List : Slectionner ensuite les signaux E1, E2 et S et les faire passer dans la fentre de
droite.

On valide ensuite dans la dernire fentre.

Denis Rabast

IUFM Aix-Marseille

8/26

Programmer un FPGA avec Quartus II

A laide de loutil loupe par clic droit ou clic gauche on peut agrandir ou compresser la zone
daffichage.
On impose ensuite lallure des entres (ici lhorloge E1 et E2) en cliquant sur le nom du signal, puis en
utilisant les icnes gauche : dfinir des temps ltat 1 ou 0 en slectionnant la zone du
chronogramme concerne par un gliss de la souris bouton gauche enfonc, puis en validant avec
licne approprie, pour obtenir ceci par exemple :

On sauve ensuite le fichier avec un nom vocateur (test_et par exemple) avec une extension .vwf
pour Vector Waveform File .
2.4.2

Lancer une simulation fonctionnelle

Ouvrir pour cela le simulateur :


- valider loption Fonctional ;
- dclarer le fichier prcdent test_ET comme entre de simulation ;
- choisir les options comme indiqu ci-aprs ;
- gnrer la liste de connexions (netlist) ncessaire la simulation par Generate Fonctional
Simulation Netlist .
- lancer la simulation par Start ;
- afficher le rsultat par Report .

Attention : dans certaines versions prcdentes de Quartus, le sous menu Simulateur Tools se
trouve dans le menu Tools .

Denis Rabast

IUFM Aix-Marseille

9/26

Programmer un FPGA avec Quartus II

Vrifier que la simulation correspond bien au rsultat attendu.


Observer les diffrentes fentres qui se sont ouvertes dans lespace de travail ; noter que le
chronogramme rsultat de la simulation nest pas modifiable (pour ajouter une entre par exemple),
seul le fichier .vwf de description lest.

2.5

Assigner les entres sorties

Avant de lancer la compilation du circuit, il est ncessaire daffecter les entres sorties aux numros
de broches de notre circuit cible, de sorte tre compatible avec la carte de dveloppement (consulter
lannexe).
Les deux entres seront affectes aux interrupteurs glissire SW0 et SW2 (bornes PIN_N25,
PIN_P25), et la sortie la Del LEDG8 entre les afficheurs (borne PIN_Y12).
Ouvrir lditeur dassignement de broche, zoomer la zone qui nous intresse sur le dessin du circuit
cible, slectionner un nom dentre sortie dans la fentre du bas, cliquer sur le nom, et faire glisser,
partir de la case Node Name , sur le numro de la broche correspondant. Rpter lopration pour
chaque broche.
Remarque : lopration de glisser dposer tant un peu alatoire, commencer le glisser par
une translation horizontale au sein de la case Node Name (le pointeur de la souris doit prendre la
forme dun cercle barr).

Il est aussi possible de faire un double clic dans la case Location pour ouvrir une fentre
permettant de slectionner le numro de broche dsir.
On peut vrifier laffectation des broches soit dans le tableau de la fentre du bas, soit en passant la
souris sur une broche sur le dessin du circuit.
Pour supprimer une affectation, slectionner la broche sur le circuit et appuyer sur Suppr au
clavier.
Remarques : on consultera les annexes et la documentation associes la carte pour connatre le
numro des bornes du circuit affectes aux entres sorties.

Denis Rabast

IUFM Aix-Marseille

10/26

Programmer un FPGA avec Quartus II

Lorsque lon souhaite maintenir une sortie au NL1, slectionner la broche et accder au sous menu
Reserve dans le menu contextuel (clic droit) puis slectionner loption As output driving
Vcc .
Les sorties non utilises du FPGA sont mise par dfaut au niveau logique 0, mais cette option peut
tre modifie par Assignements Settings Device Devices and Pin Options puis
Unused Pins :

2.6

Compiler le projet

Lors de cette opration, le logiciel va crer les fichiers ncessaires la programmation en dfinissant
lemplacement de chaque fonction logique au sein du circuit cible.
Ouvrir le compilateur et lancer la compilation (cette opration peut aussi se faire en une fois avec
licne Start Compilation .

Attention : dans certaines versions prcdentes de Quartus, le sous menu Compilateur Tools se
trouve dans le menu Tools .
Remarque : le compilateur et le simulateur ayant t ouverts, ils apparaissent comme onglet dans la
fentre de travail, il suffit maintenant de cliquer dessus pour les faire rapparatre.

2.7

Programmer le circuit

La carte DE2 doit maintenant tre :


- alimente ;
- sous tension (bouton rouge) ;
- en position Run (bouton glissire prs de lafficheur LCD) ;
- relie au port USB du PC par son entre BLASTER ( ct de la borne dalimentation), les
pilotes tant installs (voir annexes).
Ouvrir la fentre du programmateur et vrifier que :
- la liaison USB Blaster est reconnue (sinon se reporter lannexe 3) ;
- le fichier FL_base.sof de notre projet est prsent (sinon lajouter avec Add file ) ;
- la case Program/Config est coche, puis lancer la programmation par Start :

Denis Rabast

IUFM Aix-Marseille

11/26

Programmer un FPGA avec Quartus II

Vrifier sur la carte le fonctionnement sur la carte DE2.

2.8

Autres fonctions de bases

On pourra ventuellement tester dautres fonctions logiques de base (OU, OU exclusif, NAND etc..)
par la mme mthode.
Par soucis de simplicit, on modifiera uniquement la feuille schma en remplaant la porte ET par une
autre porte.
Tester ensuite une bascule R S avec le schma suivant :
INPUT
VCC

not_S

NAND2

PIN_N23
inst
OUTPUT

PIN_Y12
NAND2
INPUT
VCC

not_R

PIN_G26

inst3

On utilisera en entre les boutons poussoirs KEY0, KEY1 (bornes PIN_G26, PIN_P23) qui sont
imposent un niveau logique 0 lorsquon appui dessus, transformant ainsi notre bascule R S en une
bascule RS.
Tester ensuite un diviseur de frquence par 2, ralis laide dune bascule D (composant DFF de la
bibliothque logic
PIN_AE22
OUTPUT

DFF

PIN_G26
H

PRN
Q

INPUT
VCC

s0

NOT

inst9

CLRN
inst

Tester maintenant un dcompteur binaire, commandant les dels LEDG0, LEDG1, LEDG2, LEDG3
(bornes PIN_AE22, PIN_AF22, PIN_W19 et PIN_V18).

Denis Rabast

IUFM Aix-Marseille

12/26

Programmer un FPGA avec Quartus II

PIN_AE22
OUTPUT

DFF

PIN_G26

PRN
Q

INPUT
VCC

PIN_AF22
OUTPUT

s0

DFF

DFF

NOT

inst9

CLRN
inst

PIN_W19
OUTPUT

s1

PRN
Q

NOT

PRN
Q

inst11

NOT

inst13

CLRN
inst12

CLRN
inst10

PIN_V18
OUTPUT

s2

DFF

PRN
Q

NOT

inst15

CLRN
inst14

Quel est le poids binaire de la sortie sx ?


Quel rapport de frquence existe-t-il entre la sortie H et la sortie sx ?

2.9
2.9.1

Synthse dun chronomtre


Structure du projet

Dans un premier temps, laffichage de notre chronomtre se fera sur un seul afficheur, puis nous
ferons voluer notre projet vers un affichage sur deux chiffres:

oscillateur
quartz
50 MHz

diviseur
de
frquence

compteur
BCD

dcodeur
BCD / 7 segments

FPGA

La carte DE2 intgre un oscillateur quartz de frquence 50 MHz (borne PIN_N2). Grace un
diviseur de structure similaire au schma que nous venons dimplanter, nous abaisserons la frquence
1 Hz.
Un compteur BCD (Binaire Cod Dcimal) comptera ensuite le nombre de front du signal issus du
diviseur, puis un dcodeur BCD / 7 segments convertira la sortie BCD du compteur en code 7
segment pour commander lafficheur.
Pour synthtiser ces diffrents blocs, nous utiliserons des descriptions prdfinies et paramtrables
intgres au sein du logiciel Quartus II, dsignes sous le terme megafunctions .
2.9.1.1 Synthse du diviseur
Comme nous lavons vu prcdemment, un diviseur de frquence peut tre ralis partir dun
compteur ou dun dcompteur.
Afin de pouvoir simuler les descriptions, nous supposerons dans un premier temps que la frquence
du signal dhorloge est 5 Hz ; le diviseur devra donc diviser par 5 pour fournir en sortie un signal de
1 Hz, son modulo (nombre dtat de sortie du compteur) est donc de 5, et il faut trois bits pour compter
jusqu 5.
Ouvrir un nouveau projet que lon nommera chronometre par exemple (sans accents), puis ouvrir
dans ce projet une feuille graphique sur laquelle on placera un symbole qui sera notre diviseur.
Pour paramtrer ce dernier, on utilisera lassistant de paramtrage :

Denis Rabast

IUFM Aix-Marseille

13/26

s3

Programmer un FPGA avec Quartus II

Le
compteur
qui
nous
servira
de
diviseur
se
trouve
c:/altera/xx/quartus/librairies/megafunctions/arithmetic/lpm_counter.

dans

la

bibliothque

Configurer alors les 3 bits ncessaire, pour un fonctionnement en compteur uniquement, ainsi quune
sortie de retenue qui passera au niveau logique 1 lorsque le maximum du compteur sera atteint. Il est
possible dafficher les chronogrammes associs aux diffrentes entres sorties choisies, en cliquant
sur Documentation puis Generate Sample Waveforms .

Denis Rabast

IUFM Aix-Marseille

14/26

Programmer un FPGA avec Quartus II

Terminer le paramtrage sans rien ajouter, en demandant dintgrer le composant au projet.

Placer ensuite des entrs et sorties sur la feuille, effectuer une analyse et synthse.

div
INPUT
VCC

up counter

clock modulus 5
q[2..0]
cout

OUTPUT

OUTPUT

Q[2..0]

C_OUT

inst

Nous allons maintenant simuler notre projet :


- ouvrir un Waveform Vector File ;
- placer les entres sorties du projet ;

imposer sur lentre H un signal carr avec loutil Overwrite Clock


sauvegarder le fichier ;
gnrer la netlist ;
lancer la simulation ;
ouvrir le fichier rapport
vrifier que le rsultat est bien celui attendu.

Remarques :
- il est possible de choisir le format daffichage (radix) du bus par un double clic sur la ligne du
bus ;
- il est possible de dplier et replier le bus en cliquant sur la croix devant le nom du bus.

Denis Rabast

IUFM Aix-Marseille

15/26

Programmer un FPGA avec Quartus II

2.9.1.2 Synthse du compteur BCD


Nous utiliserons le mme composant que prcdemment, mais avec 4 bits en sortie et un modulo de
10 (compteur BCD), une entre dautorisation de comptage, une sortie de retenue qui nous permettra
par la suite un affichage sur plusieurs digits :

Insrer le compteur comme indiqu sur la figure suivante :


Remarque : afin de ne pas surcharger le schma, lentre dautorisation de comptage du compteur
BCD est reli un fil appel C_OUT ; le logiciel interprte alors que cette entre est relie tout autre
connexion de mme nom. Pour donner un nom une connexion, il suffit de la slectionner et dcrire
le nom dsir.
lpm_counter0
up counter

clock modulus 10
C_OUT

cnt_en

q[3..0]
cout

inst2

div
H

INPUT
VCC

up counter

clock modulus 5
q[2..0]
cout

OUTPUT

OUTPUT

OUTPUT

BCD[3..0]

OUTPUT

COUT_BCD

Q[2..0]

C_OUT

inst

On peut remarquer que lhorloge est commune aux 2 composants, ce qui permet dviter les alas de
fonctionnement dus aux temps de propagation de cette horloge. On dit alors que le systme est
synchrone, contrairement au dcompteur que nous avions ralis avec des bascules D, qui lui tait
asynchrone.
Denis Rabast

IUFM Aix-Marseille

16/26

Programmer un FPGA avec Quartus II

Llectronique numrique moderne est systmatiquement synchrone, et un logiciel comme Quartus II


produirait rapidement un fonctionnement erron du FPGA avec un systme asynchrone ds que la
complexit augmente.
Modifier le vecteur de simulation pour introduire les nouvelles sorties et simuler le schma.

2.9.1.3 Synthse du dcodeur BCD 7 segments


Cette fonction, purement combinatoire, nexiste pas sous forme de megafonctions, une alternative est
donc de la dcrire avec un langage adapt aux circuits programmables comme le VHDL (Very Hight
scale integrated circuits Description Language). Cette description est dj ralise dans le fichier
decodeur.vhd :
- ajouter ce fichier votre projet par le menu contextuel de longlet Files du navigateur de
projet ;

ouvrir le fichier ;
le sauvegarder au sein de votre rpertoire de travail, sans en changer le nom ;
supprimer du projet la version dorigine

Denis Rabast

IUFM Aix-Marseille

17/26

Programmer un FPGA avec Quartus II

le placer en haut de la hirarchie (Ctrl Shift J la fentre correspondant la description tant


active)
lancer une analyse et synthse ;
crer un symbole graphique pour cette description ;
ouvrir la description gnrale contenant les diviseurs et compteurs ;

insrer dans la description gnrale le dcodeur qui est maintenant un symbole du rpertoire
projet ;

modifier le nombre de bits du diviseur et son modulo afin de ladapter lhorloge de 50 MHz ;
supprimer les sorties inutiles, placer le bus de commande de lafficheur ;
effectuer une analyse et synthse ( avec un Ctrl Shift J dabord pour tre sr que le projet sur
lequel vous travaillez est bien en haut de la hirarchie) ;
affecter le broches correspondant lhorloge et lafficheur (voir annexe) ;
compiler et programmer le circuit

lpm_counter0

up counter

C_OUT

div

INPUT
VCC

clock modulus 10

DECODEUR

q[3..0]
cout

BCD[3..0]

cnt_en
inst2

up counter
clock 49999999
modulus

PIN_N2

inst1

q[25..0]
cout
inst

SEG[6..0]

OUTPUT

SEG[6..0]

PIN_V13
PIN_V14
PIN_AE11
PIN_AD11
PIN_AC12
PIN_AB12
PIN_AF10

Vrifier que le fonctionnement est bien celui attendu.

Denis Rabast

IUFM Aix-Marseille

18/26

Programmer un FPGA avec Quartus II

Modifier maintenant la description pour commander deux afficheurs ; le systme devra tre
synchrone, il faudra donc que tous les compteurs aient la mme horloge, le comptage ntant autoris
par lentre cnt_en que si le compteur de la dcade prcdente a sa sortie cout au niveau
logique 1. On pourra ventuellement faire des simulations (en modifiant le rapport de division du
diviseur).

Denis Rabast

IUFM Aix-Marseille

19/26

Programmer un FPGA avec Quartus II

Annexe 1 : Obtenir et configurer la licence


Quartus II est disponible gratuitement sur le site dAltera http://www.altera.com .
Aprs installation, lors de la premire ouverture du logiciel (ou si la licence nest pas valide), Quartus
propose trois options :
- travailler avec une version dvaluation pendant un mois ; il ne sera alors pas possible de
programmer de circuit ;
- effectuer une demande automatique de licence sur le site internet dAltera ; sous rserve de
possder une connexion, vous serez alors bascul vers la page de demande de licence, o
aprs avoir complt les diffrents renseignements, vous recevrez un fichier .dat par
courriel (il faut donc une adresse valide) ; la licence tant reconnue partir de la carte rseau
de votre ordinateur, celui-ci devra en intgr une ;
- spcifier un fichier licence valide (ce qui suppose davoir effectu ltape prcdente).
Une fois votre fichier licence reu par courriel (cas 2), il faut le dclarer au logiciel (cas 3). Pour cela,
copier le fichier .dat sur votre disque dur et dclarer lemplacement comme suit :

Remarques :
- pour obtenir la licence de Quartus II Web Edition , un ordinateur PC quip dune carte
rseau suffit ; le numro (NIC ID) de cette carte vous sera demande en cas dinscription
manuelle ou sera lu lors de la connexion en cas dinscription automatique. La licence ne sera
valable quassocie cette carte rseau.
- pour obtenir la licence de la version complte, une cl matrielle (associe son numro
Software Guard ID ) sera ncessaire ; la licence ne sera alors valide que si la cl matrielle
est connecte lordinateur ; la premire gnration de cl matrielle se connecte sur le port
parallle, tandis que la seconde gnration se connecte sur un port USB, il faut alors installer
un
pilote
disponible

ladresse
internet
suivante :
http://www.safenetinc.com/support_and_downloads/download_drivers/sentinel_drivers.aspx#
- la licence est simplement un fichier texte (ouvrable avec nimporte quel diteur) avec une
extension .dat ; lorsque plusieurs licences sont utilises (dans le cas o Quartus sera
install sur plusieurs PC par exemple), il est possible de les regrouper tous les fichiers licence
en un seul fichier .dat o seront copis les textes associs chaque fichier lmentaire
laide du Bloc Note de Windows par exemple ; attention ne pas utiliser Word pour cette
opration, ce programme introduisant des caractres spciaux rendant le fichier illisible pour
Quartus.

Denis Rabast

IUFM Aix-Marseille

20/26

Programmer un FPGA avec Quartus II

Annexe 2 : Configurer laffichage


Deux interfaces graphiques sont envisageables avec Quartus II :
- linterface classique ;
- linterface rappelant les menus de max+plus II (le logiciel de gnration prcdente chez
Altera).
Nous travaillerons ici avec la premire interface, obtenue de la manire suivante :

Quartus ouvre beaucoup de fentre, il est possible de choisir ses fentres par le menu suivant :

Denis Rabast

IUFM Aix-Marseille

21/26

Programmer un FPGA avec Quartus II

Annexe 3 : Configurer le programmateur


Ouvrir Quartus et lancer le programmateur puis cliquer sur Hardware Setup.

Slectionner USB Blaster [USB-0] dans Curently selected hardware et fermer la fentre par
Close (le cble USB doit tre connect et la carte sous tension):

Choix du mode de configuration de la carte DE2


Le FPGA tant ralis en technologie SRAM, les donnes programmes disparaissent chaque
coupure dalimentation ; une mmoire srie EEPROM EPCS16 est implante sur la carte DE2 afin de
garder le programme. Deux modes de configuration sont alors possibles partir de Quartus.
Configuration du FPGA en mode JTAG
On configure directement le FPGA sans tenir compte de lEEPROM, les donnes tant alors perdues
chaque coupure dalimentation :

Denis Rabast

IUFM Aix-Marseille

22/26

Programmer un FPGA avec Quartus II

Pour ce mode :
- mettre la carte sous tension, la relier au PC par le cble USB via le port USB blaster ;
- placer le commutateur RUN/PROG (bord gauche de la carte) en position RUN ;
- configurer Quartus en slectionnant dans le programmateur le logiciel .sof souhait et en
vrifiant que le mode JTAG est bien celui choisi ;

cliquer sur Start , le FPGA est configur.

Nous nous limiterons cette utilisation de la carte.

Denis Rabast

IUFM Aix-Marseille

23/26

Programmer un FPGA avec Quartus II

Annexe 5 : Quelques caractristiques succinctes de la carte de


dveloppement DE2
Les informations suivantes donnent quelques lments dutilisation de cette carte ; pour plus
dinformation on consultera la documentation du constructeur ainsi que le document Premire
utilisation de la carte DE2 .
Alimentation continue
Tension continue de 9 V 1,3 A, polarit positive au centre du connecteur.
Configuration
La carte est programme par un cble USB Blaster reliant le PC au connecteur USB Blaster en
haut gauche de la carte. Le pilote logiciel de cette liaison doit tre install (voir Premire utilisation
de la carte DE2 ).
Mettre la carte sous tension laide du bouton rouge en haut gauche et la placer en mode RUN
grce au commutateur gauche de lafficheur LCD (pour plus de dtails voir le document Premire
utilisation de la carte DE2 ).
Le FPGA est alors directement programm avec un fichier .sof
Oscillateurs
Le FPGA (un EP2C35F672C6 de la famille Cyclone II pour une carte DE2 et un EP2C70F896C6 pour
une carte DE2-70) reoit trois signaux dhorloge :
- une horloge 50 MHz sur la borne PIN_N2 ;
- une horloge externe sur la borne PIN_P26 envoyer sur le connecteur SMA (coin infrieur
droit de la carte) ;
- une horloge 27 MHz, via le dcodeur vido, sur la borne PIN_D13. Pour que cette horloge
arrive au FPGA, il est impratif que la borne RESET du dcodeur vido, relie la borne
PIN_C4 du FPGA, soit au niveau logique 1. Cette dernire peut tre active au NL1 au
moment de laffectation des broches sous Quartus ; pour cela, slectionner la broche et
accder au sous menu Reserve dans le menu contextuel (clic droit) puis slectionner
loption As output driving Vcc .
Afficheurs et Del
La Del LEDG8 (entre les afficheurs) est relie a borne PIN_Y12.
Les afficheurs de droite (HEX0 HEX3) sont relis aux bornes du FPGA comme indiqu ci-dessous :

Y23
U22

AA25

W24

Y25

V20

AB23
AB25

V22

Y24

AA26

AB26

AA23

AF10
V21

AB24

AC25

AA24

V14
V13

W21

AE11

Y26

AC26

Y22

AD11

HEX3

HEX2

HEX1

HEX0

Denis Rabast

AB12

IUFM Aix-Marseille

AC12

24/26

Programmer un FPGA avec Quartus II

Interrupteurs et boutons poussoirs


La carte comprend 18 interrupteurs (en bas gauche) glissire, reli directement au FPGA ; lorsque
linterrupteur est en position basse, il impose un niveau logique 0.
Les interrupteurs SW0, SW1 et SW2 sont respectivement relies aux bornes PIN_N25, PIN_N26 et
PIN_P25 du FPGA.
On trouvera galement 4 boutons poussoirs (en bas droite), attaquant le FPGA via un anti-rebond.
Un appui sur le bouton poussoir provoque un niveau logique 0 lentre du FPGA.
Les interrupteurs KEY0, KEY1, KEY2 et KEY3 sont respectivement relies aux bornes PIN_G26,
PIN_P23, PIN_N23 et PIN_W26 du FPGA.

Annexe 5 : principales extensions de fichiers


fichier descriptif du projet : .qpf
Fichiers de description
description graphique : .bdf
description vhdl : .vhd
description par chronogrammes (fichier de simulation) : .wdf
Fichiers de programmation
composants EEPROM : .pof
composants SRAM : .sof
Fichiers divers
rapport de compilation : .rpt
assignation des broches : .acf
symbole graphique dune description : .sym

Denis Rabast

IUFM Aix-Marseille

25/26

Programmer un FPGA avec Quartus II

Annexe 6 : programme VHDL du dcodeur


-- la bibliothque ieee contient les paquetages dont la dclaration suit
Zone dclarant
library ieee;
lutilisation de
--ce paquetage permet l'utilisation des types STD_LOGIC et STD_LOGIC_VECTOR
ressources
externes
use ieee.std_logic_1164.all;
au
programme
-- permet d'utiliser le type STD_LOGIC_VECTOR avec des entiers
use ieee.std_logic_unsigned.all;
les commentaires, prcds de deux tirets

entity DECODEUR is
port
(BCD
SEG
end DECODEUR;

-----------

-------------------l
0
l
l
-------------------l
6
l
l
-------------------3

: in
: out

STD_LOGIC_VECTOR (3 downto 0);


STD_LOGIC_VECTOR ( 6 downto 0) );

l
l1
l

lentit, dcrivant une bote


noire avec des entres
sorties dun type particulier

Zone de commentaire
dcrivant comment doit
tre connect le bus SEG
lafficheur

l
l2
l

larchitecture
architecture ARCH_DEC of DECODEUR is
begin
-- attention les leds s'allument pour une sortie 0
SEG <=
"1000000"
when BCD=0 else
"1111001"
when BCD=1 else
"0100100"
when BCD=2 else
"0110000"
when BCD=3 else
"0011001"
when BCD=4 else
"0010010"
when BCD=5 else
"0000010"
when BCD=6 else
"1111000"
when BCD=7 else
"0000000"
when BCD=8 else
"0010000"
when BCD=9 else
"1111111" ;

Affectation des valeurs au


bus SEG, afin dallumer le
bon segment, en fonction
des valeurs du bus BCD

end ARCH_DEC ;

Denis Rabast

IUFM Aix-Marseille

26/26

S-ar putea să vă placă și