Vous êtes sur la page 1sur 10

CEG2536: A RCHITECTURE DES O RDINATEURS

Laboratoire 1: Introduction à Quartus II


Automne 2014

Professeur:Miguel A. Garzon

Notes

• Travail individuel seulement.

• Une pénalité de 10 points sera appliquée pour chaque jour de retard. Une heure de retard sera
considéré comme un jour!

• Tous les étudiants devraient être au courant du règlement de l’Université d’Ottawa vis-à-vis de la
fraude scolaire:
http://www.uottawa.ca/academic/info/regist/fraud_f.html

Objectifs

Le but de ce laboratoire est de:

• initier les étudiants qui ne connaissent pas déjà le logiciel

• servir de rappel aux autres étudiants

Ce laboratoire est en fait un tutorial qui introduit toutes les fonctions qui seront utilisées dans les labora-
toires suivants. Il est donc très important de savoir parfaitement faire tout ce qui suit.

Dans les laboratoires de ce cours, vous utiliserez la carte UP2 d’Altera (voir Figure 1), qui contient deux
puces indépendentes: à gauche se trouve une puce de la famille MAX7000, de type EPM7128S, et à droite

1
Figure 1: La carte UP2 d’Altera

se trouve une puce de la famille FLEX10K, de type EPF10K70. Pour les premiers laboratoires, dont celui-
ci, vous utiliserez la MAX7000, et pour les derniers, la FLEX10K. Bien que les puces soient différentes,
la conception d’un projet dans Quartus est la même pour les deux.

A la fin de ce tutorial, le professeur et les assistants considéreront que les étudiants sont capables de:

• comprendre les bases de l’environnement Altera

• concevoir un projet simple avec l’éditeur graphique de Quartus

• compiler, simuler, finaliser et tester ce projet

• charger le projet dans la carte Altera et en vérifier le fonctionnement

Prélab
1. Lisez l’annexe et visitez le site d’Altera pour vous familiariser avec la carte UP2

2. Dressez les tables de vérité des portes NON-ET et NON-OU

3. Dressez la table de vérité du circuit de la Figure 2

4. Dressez la table de vérité du circuit de la Figure 5

Page 2 de 10
Partie I

A. Démarrage du logiciel et configuration de base

Chaque circuit dans Quartus doit faire partie d’un projet pour pouvoir être compilé. Le projet décrit quel
matériel est utilisé, et quels fichiers contiennent les circuits et sous-circuits à considérer.

Nous allons ici créer un projet, et dire à Quartus quelle puce nous utilisons.

1. Démarrez le programme Quartus II

2. Dans File, choisissez New Project Wizard. Note: n’hésitez pas à prendre le temps de lire ce qui
est écrit, plutôt que de suivre à la lettre ce laboratoire sans comprendre ce que vous faites.

3. On vous présente trois champs à remplir. Le premier demande le répertoire où se trouvera le projet.
Dans le deuxième, on vous demande le nom du projet. Vous pouvez choisir un nom arbitraire. Vous
verrez que le troisième champ se remplit automatiquement alors que vous entrez le nom du projet
dans le deuxième champ. Quartus pense en effet, par défaut, que vous choisissez un nom de projet
qui correspondra exactement au nom du fichier principal de votre projet. Ce n’est en effet pas une
mauvaise idée.

4. On vous demande ensuite de nommer les fichiers de design que vous voulez inclure au projet. Vous
n’en avez pas encore à ce point-ci, vous pouvez donc cliquer sur Next. Vous pourrez de toutes
façons ajouter de tes fichiers plus tard. D’ailleurs, si vous avez besoin d’un sous-circuit (représenté
par un de ces fichiers de design) et qu’il est bien référencé dans le fichier principal de votre projet,
Quartus l’incluera automatiquement dans cette liste.

5. On vous demande maintenant précisément sur quelle puce vous allez travailler. Choisissez la famille
MAX7000S pour ce laboratoire, puis assurez-vous de bien sélectionner Specific device selected in
‘Available devices list’. En effet, l’autre option donne à Quartus la liberté de choisir la meilleure
puce possible pour votre projet – nous voulons au contraire une puce spécifique. Celle dont nous
avons besoin est, comme écrit dessus sur la carte, la EPM7128SLC84-7. Cliquez sur Next

6. Ne vous souciez pas des EDA tools, vous n’en aurez pas besoin. Vous pouvez directement cliquer
sur Finish.

Vous verrez que sur la gauche, le nom du fichier principal du projet est apparu à côté d’un petit symbole
de porte1 . Pour créer maintenant le fichier principal du projet, il suffit d’aller dans File puis New. Nous
voulons créer un fichier scématique, donc vous pouvez choisir Block Diagram/Schematic File parmi la
liste. Lorsque vous cliquez sur OK, un fichier dénommé par défaut Block1.bdf est crée. Puisque nous
1
Si vous cliquez tout de suite deux-fois sur ce nom, Quartus va vous retourner une erreur, disant que vous n’avez pas encore
crée de fichier qui correspond à ce nom.

Page 3 de 10
Figure 2: Le premier circuit à tester

voulons que ce fichier soit le fichier principal, il faut le sauvegarder sous le même nom que vous aviez
indiqué au logiciel auparavant. Faites donc, dans File, un Save As..., et entrez le nom du fichier principal –
qui devrait d’ailleurs déjà se trouver là en suggestion! Vous êtes maintenant prêts `! a entrer la schématique.

B. Création de la schématique

Nous voulons entrer ici le circuit de la Figure 2. Il va falloir le faire symbole par symbole.

1. Pour entrer un symbole dans l’éditeur graphique, double-cliquez n’importe où sur la figure vide.
Dans le champ Name qui apparaît, il vous faut entrer le nom de code du symbole dont vous avez
besoin2 . Entrez nand2 et cliquez sur OK. Placez ensuite avec un double-clic le symbole où vous
voulez sur la figure. Notez que vous pouvez déplacer le symbole apr̀es facilement avec la souris.

2. Mettez les trois symboles nécéssaires pour finir le circuit de la Figure 2.

3. Nous avons maintenant besoin de 4 entrées et d’une sortie. Suivez la même procédure que pour les
symboles, mais cette fois-ci dans Name, mettez input ou bien output. Placez à peu près correcte-
ment les symboles.

C. Liaison des symboles

Une fois tous les symboles placés, déplacez la souris près d’une des entrées/sorties (un des ports) des sym-
boles. Vous verrez que quand vous êtes assez proches, la souris change de forme: lorsque la souris est dans
2
Ces codes sont très simples et logique dans Quartus: par exemple pour entrer une porte NON-ET à deux entrées, il faut
entrer nand2. Lorsque le logiciel reconnaît un nom de code, le schéma du symbole correspondant est affiché. Essayez de voir
ce qui se passe quand vous écrivez or2, or4, xor, not, jkff, tff, vcc, gnd (A quoi correspondent ces noms de code?)

Page 4 de 10
cette forme (une sorte de L renversé), appuyez sur le bouton gauche de la souris et maintenez le enfoncé.
Déplacez la souris: vous êtes en train de créer un fil. Lorsque vous vous approchez d’une entrée/sortie
d’une autre porte, le curseur devient un carré: si vous lachez le bouton gauche à ce moment là, une con-
nection sera faite. Si vous lachez le bouton gauche autre part, vous pouvez ensuite reprendre la suite de
ce fil en réappuyant sur le bouton gauche à l’extrémité de ce fil. Faites toutes les connections de la Figure 2.

Notez que vous pouvez déplacer les fils déjà existants, et aussi les effacer en les sélectionnant et en ap-
puyant sur Delete sur votre clavier. Notez aussi que vous pouvez faire des copier/coller de n’importe
quelle sous-sélection de la figure.

D. Edition des noms de pins

Pour donner un nom aux pins d’entrée et de sortie, il y a plusieurs façons. Une façon simple et rapide
est de placer la souris sur le nom déjà existant (par exemple, pin_name). Puis, cliquez une fois sur le
symbole voulu (entrée ou sortie), et enfin une autre fois (ce n’est pas vraiment un double-clic, mais bien
deux clics l’un après l’autre). A ce point-ci, le nom de la pin est encadré de bleu: faites un double-clic et
vous pourrez simplement taper le nom de la pin (A, B, C, D ou Y dans notre cas).

Notez que vous auriez pu double-cliquer directement sur l’entrée ou la sortie désirée. Une boite apparaît
alors, qui contient un champ Pin name.

Il est conseillé de sauvegarder de temps en temps vos projets: maintenant serait probablement un bon
moment.

E. Assignation d’une location physique aux pins

Il faut maintenant indiquer à Quartus à quelle location physique (sur la puce) vous voulez que les entrées
et la sortie de votre figure correspondent. Avant de pouvoir le faire, il vous faut compiler le projet une
première fois. Pour cela, cliquez sur le petit icône . Vous ne devriez pas obtenir d’erreurs – tout au plus
quelques avertissements (allez voir dans la documentation de Quartus ce que veulent dire ces avertisse-
ments!).

Une fois que le projet est compilé, vous pouvez retourner à la fenêtre principale du projet, en double-
cliquant sur son nom en haut à gauche, dans la fenêtre nommée Project Navigator. Nous voulons à
présent assigner les pins suivant la Table 1.

Page 5 de 10
Figure 3: Table d’assignation des pins

Nom de pin Numéro de pin Type de pin Location (sur la carte)


A 12 Entrée P2#12 MAX_EXPAN #22
B 16 Entrée P2#16 MAX_EXPAN #24
C 18 Entrée P2#18 MAX_EXPAN #26
D 21 Entrée P2#21 MAX_EXPAN #28
Y 25 Entrée P2#25 MAX_EXPAN #30
Table 1: Table d’assignation des pins

Il y a ici aussi plusieurs façons, mais la plus rapide (de loin) est la suivante:

1. Dans Assignments, choisissez Pins. Une nouvelle fenêtre apparaît. En haut se trouve un plan de la
puce, et en bas se trouve une liste des entrées et sorties.

2. Cliquez une fois sur la case Location correspondante à la première ligne de la liste, afin de la
surligner comme sur la Figure 3.

3. Ensuite, vous pouvez remplir les cases très simplement en utilisant le clavier. Dans ce cas-ci, entrez
12 puis tapez sur Enter. Avec les flèches vous pouvez vous déplacer sur n’importe quelle case. Faite
cela pour chaque pin.

Une fois que toutes les pins sont assignées, compilez une nouvelle fois le projet.

Page 6 de 10
Partie II

A. Simulation du projet

Avant de charger le projet sur la carte pour le tester, il est prudent de faire une simulation.

1. Dans File, choisissez New puis, dans Other files choisissez Vector waveform file. Une fenêtre inti-
tulée Waveform1.wmf devrait apparaître. C’est ce type de fichier qui va contenir les simulations.

2. Commencez par sauvegarder ce fichier – choisissez le nom proposé par défaut (le nom de votre
fichier principal suivi de .wmf).

3. Notez comme l’éditeur de waveforms est séparé en deux colonnes. Double-cliquez n’importe où
dans la colonne de gauche. Une boîte nommée Insert Node or Bus apparaîtra. Cette boîte sert à
choisir les pins une par une. Mais nous pouvons les inclure toutes d’un seul coup: dans cette boîte,
cliquez sur Node Finder.

4. Le Node Finder sert simplement à sélectionner des groupes de pins. Pour sélectionner toutes les
pins, laissez * dans le champ Named, et dans Filter choisissez Pins: all (bien qu’en fait, vous
pourriez tout aussi bien choisir Pins: assigned car vous avez déjà assigné les pins à ce point).
Cliquez ensuite sur List – les nodes trouvées dans votre projet sont affichées dans la liste à gauche.

5. Cliquez sur le symbole “»” pour envoyer la totalité des pins listées vers la colonne de droite, qui
correspond aux pins sélectionnées3 . Cliquez enfin sur OK.

6. A votre retour dans la boîte Insert Node or Bus, cliquez sur OK. Les noms des pins apparaissent
maintenant sur le fichier .wmf.

7. Dans l’éditeur, vous devez commencer par choisir la résolution de la grille de temps (Grid size) et
le temps de la fin de la simulation (End time). Dans notre cas, nous voulons une simulation dont
les entrées changent toutes les 100ns et qui se termine à 700ns. Une résolution/période de 100ns
est donc suffisante. Dans Edit, vous trouverez Grid size et End time – donnez leur les valeurs
discutées ci-dessus.

8. Avant de continuer, il est important et pratique de savoir zoomer et dézoomer cette fenêtre de wave-
forms. Vous pouvez aller voir dans le menu View, mais il est conseillé de se servir des raccourcis
clavier, control+shift+space ou bien control+space. Vous verrez qu’il est bien plus rapide d’utiliser
le clavier.

9. Dézoomez au maximum la fenêtre, afin de voir toute la plage de 0 à 700ns.


3
Si vous aviez voulu seulement prendre un groupe de pins, vous auriez pu les surligner avec la souris puis cliquer sur “>”

Page 7 de 10
Figure 4: Mise en place de la simulation pour le premier circuit

10. Le but est maintenant de mettre en place une simulation comme sur la Figure 4. Pour chaque entrée
(ou même pour un groupe d’entrées) vous pouvez sélectionner avec la souris des intervalles de
temps. Par exemple, sélectionnez l’intervalle de 200ns à 400ns pour l’entrée B. Ensuite, pour mettre
à 1 cette entrée durant cet intervalle, cliquez sur le symbole . Vous pouvez continuer et mettre
aussi à 1 l’entrée B de 600 à 700ns.

11. Puisque l’entrée A ne fait qu’alterner, on peut considérer qu’elle se comporte comme une horloge.
Cliquez sur le nom A dans la colonne de gauche – toute la ligne est surlignée. Ensuite, cliquez sur
. Dans la boîte qui apparaît, choisissez une période de 200ns, puis cliquez sur OK.

12. Finissez de mettre en place la simulation.

13. Pour démarrer la simulation, cliquez sur . A l’issue de la simulation, il est possible que vous ayez
à dézoomer au maximum encore une fois pour voir quelque chose. Observez bien le rapport de la
simulation.

Partie III
Nous allons maintenant charger le circuit physiquement, dans la carte UP2.

• Assurez-vous que le câble Byteblaster est bien connecté à la carte et au port parallèle du PC

• Vérifiez que la carte est bien alimentée par un transformateur 9V DC

• Vérifiez les “ jumpers ” (demandez à votre AE pour cela).

• Cliquez sur (pour aller au Programmer), puis dans la fenêtre qui apparaît cliquez sur Hardware
setup. Le câble qui relie votre ordinateur à la carte UP2 est un câble de type Byteblaster. Verifiez
d’abord qu’il n’est pas déjà disponible dans la liste des available hardware items. Si ce n’est pas

Page 8 de 10
le cas, alors dans currently selected hardware, choisissez ByteBlasterMV [LPT1], puis cliquez
sur Add hardware. Fnialement, cliquez sur close.

• Cliquez sur Auto Detect pour voir si l’ordinateur détecte bien la présence du device EPM7128S.

• A l’issue de la compilation de vos projets, Quartus génère des fichiers de programmation, ou pro-
gramming files, qui sont l’unique fichier nécessaire pour la programmation de la carte4 Cliquez
sur EPM7128S (surlignant ainsi la ligne) et faites ensuite un clic droit, puis choisissez change file
pour choisir le fichier de programmation correct. Les fichiers de programmation qui correspondent
à la EPM7128S ont une extension .pof5 . Vous devriez trouver ce fichier facilement dans votre
repertoire de travail: sélectionnez-le.

• Finalement, assurez-vous que l’option Program/Configure est bien cochée.

• Une fois que tout ceci est fait, cliquez sur Start – en quelques secondes, la carte sera programmée.

Partie IV
Il s’agit maintenant de connecter des fils des interrupteurs DIP vers les entrées, et de la sortie du projet à
une DEL.

1. Connectez la sortie du circuit sur une LED (localisez le trou correspondant à la sortie et reliez-la à
une DEL avec un fil ; voir la Table 1)

2. Connectez les entrées du circuit sur les interrupteurs DIP (localisez les trous correspondants aux
entrées et reliez-les aux interrupteurs DIP avec des fils ; voir la Table 1)

3. Vérifiez que votre circuit se comporte bien comme dans la simulation. Il faut garder à l’esprit que
la diode s’allume pour indiquer un niveau 0 et s’éteint pour indiquer un niveau 1.

Partie V
Répétez toutes les étapes précédentes avec le circuit de la Figure 5.
4
Il existe d’ailleurs des (très petits) standalone programmers d’Altera dont le but n’est que de prendre les fichiers de pro-
grammation et les envoyer aux cartes.
5
Pour la FLEX, l’extension est .sof

Page 9 de 10
Figure 5: Le deuxième circuit à tester

Rapport de laboratoire
Dans votre rapport de laboratoire doivent figurer:

1. les tables de vérité des circuits

2. les simulations

3. les explications des simulations

4. pour éviter les mauvaises surprises, assurez-vous de bien demander à votre AE ce qu’elle ou il attend
de vous dans le rapport

Page 10 de 10

Vous aimerez peut-être aussi