Vous êtes sur la page 1sur 5

TP : Conception d’un automate avec Quartus II

I. Démarrage (rappel) : le projet


Lancer le logiciel Quartus II
Créez un nouveau projet :
New Project Wizard dans l’onglet File du Menu Principal (MP) (MP > File > New Project Wizard)

Remplacer le répertoire de travail par défaut


(celui de quartus), dans lequel il est interdit
de travailler, par celui souhaité





On obtient un « Navigateur de projet » à trois onglets, dont voici


l’onglet « Hierarchy » (qui indique le nom de l’entité « au Top »).
Vérifier que le circuit cible correspond bien à celui que vous



On peut à tout moment sélectionner le bon circuit


MP > Assignments > Device

On obtient alors l’environnement de travail ci-contre, qui


convient pour un développement


Le Navigateur de Projet de Quartus doit toujours
resterouvert (l’onglet File est la plus utile).

Conception d’un automate avec Quartus II – 20/4/2015 Page 1


II. Phases de développement d’un automate
II.1. Méthode
Une méthode efficace de développement d’une application partielle ou complète à base d’automates sur une carte
PLD consiste à décrire l’application sous la forme d’un diagramme de transition. Puis, après avoir généré et
vérifié le fichier de description VHDL, on en déduit un symbole qu’on insère dans un schéma de niveau supérieur,
avec des ports d’entrée et de sortie.

On veut donc disposer de la conception graphique de l’automate sous forme d’un diagramme de transition.
Par exemple, nous allons créer un automate dont les entrées sont clock, reset (synchrone), start et un bus cpt, et
dont les sorties sont raz_cpt et s. Voici son diagramme d’état dessiné sous Quartus (notez que les sorties n’y sont
pas représentées) :

II.2. Saisie d’un Diagramme d’Etat (State Machine)

Quartus propose un mode de saisie assisté de


diagrammes d’état, dans un fichier State Machine File
(fichier .smf).

La création d’un fichier .smf s’effectue par :


MP > File > New

Choisir State Machine File.

Une feuille de dessin, nommée par défaut SM1.vhd,


s’ouvre dans la fenêtre d’édition. On va y dessiner le
diagramme de transition voulu.

Sauvegarder la feuille de dessin avec un nom bien choisi


(par défaut, elle prend le nom nom_projet.smf). On pourra
la renommer par la suite au moyen de la commande
classique
MP > File > Save A

Conception d’un automate avec Quartus II – 20/0/201 Page 2


Nous allons maintenant dessiner le diagramme de transition dans la feuille de dessin à l’aide de la barre
d’outils à gauche. Suivez les étapes ci-dessous :

1. Placer les états : outil State Tool dans la boîte à outils (commencer par l’état initial).
2. Ajouter les entrées et les sorties : clic droit dans Input ou Output Table > Insert New
Remarque : la syntaxe (Verilog) de création d’un bus est mon_bus[7:0]

3. Ajouter les transitions : outil Transition Tool dans la boîte à outils (attention à faire
partir et arriver les flèches à l’intérieur d’une « bulle » d’état et non du bord)
4. Ajouter les conditions des transitions : en mode Selection tool, double-clic sur la transition.
Exemples de syntaxe (Verilog !) de condition :
a ~a a&b a | ~b mon_bus==’b1010 mon_bus>=’b0110
5. Ajouter les actions pour toutes les sorties dans chacun des états : double-clic sur l’état puis
onglet Actions puis clic dans Output Port (attention, les sorties non spécifiées seront à 0
par défaut). Ou (plus rapide) : outil State Machine Wizard (voir note ci-dessous).

) L’outil State Machine Wizard permet d’avoir une vue d’ensemble (moins graphique, mais plus
complète) et de faire toutes les modifications / ajouts voulus.
Il permet aussi de gérer les options cachées : remise à zéro, cas où la condition de transition est fausse.
Remarque : quand les conditions de transition au départ d’un état sont fausses, le maintien dans l’état
courant est assuré de façon explicite dans le code VHDL (il faut décocher l’option "transition to source
state" pour voir disparaître cette instruction else).

6. (optionnel) Renommer les états : double-clic sur le nom > renommer.


7. Lorsque le dessin de la machine d’état est fini, il faut le transformer en une description VHDL :
outil Generate HDL file de la barre d’outils.
N’hésitez jamais à vérifier le code VHDL généré en cas de doute (écriture de condition par exemple).

Il est recommandé de sauvegarder la feuille de dessin assez souvent.

II.3. Analyse (vérification) d’une saisie de Machine d’Etat


Analyser (et non compiler !) à l’aide de la commande
MP > Processing > Analyze Current File
Recommencer jusqu’à ce qu’il n’y ait plus d’erreur de syntaxe
ou de sémantique VHDL.

NB : Ceci n’implique pas pour autant que le circuit décrit


fonctionne comme on le veut !

A partir de là, la démarche est classique :


► création d’un symbole
► dessin d’un schéma de synthèse avec des noms de port bien choisis (attention, le schéma bdf
ne doit pas avoir le même nom que le fichier smf !)
► compilation
► programmation.

 Conception d’un automate avec Quartus II – 20/0/ Page 3


II.4. Création d’un symbole

Créer un symbole pour chaque fichier :


9 sélectionner le fichier voulu ;
9 exécuter la commande :
MP > Fichier > Create / Update >
Create Symbol Files for Current File
Chaque symbole devient un élément disponible dans la
section librairie de l’Editeur de Schéma.

II.5. Création d’un schéma logique, attribution des broches


Créer un schéma logique : MP > Fichier > New (option Block Diagram/Schematic File).
Les composants du projet et les librairies standard de Quartus sont accessibles en cliquant sur le symbole :
Dans l’onglet Project se trouvent les symboles crées par l’utilisateur.
Dans l’autre onglet, on trouve les fonctions Altera, des plus complexes aux plus simples.

Compléter un schéma en ajoutant les symboles voulus, en les reliant avec des connexions simples ou avec des
bus (le passage des uns vers les autres étant possible, cf documentation de la carte iMax2).

On terminera en disposant des ports d’entrée, de sortie et éventuellement bidirectionnels.


Les noms donnés à ces ports sont très importants, car ce sont les noms qui associent les entrées/sorties logiques
aux broches physiques : utiliser le fichier Excel " iMaxII_pin_assign.csv" fourni par l’IUT de Cachan pour la carte
iMaxII.
Importer le fichier de brochage fourni en le sélectionnant par l’opération : Assignments > Import Assignments

Voici par exemple le résultat de la saisie d’un schéma haut niveau avant compilation :

NB : Remplacer « toto » par « clk_bnc »

Sauver le schéma *.bdf en lui attribuant un nom


approprié. Ne jamais donner le même nom au
.bdf et au .smf (erreur à la compilation).

Dans le cas ci-contre, le nom donné est


automate1_top.bdf.
Voici ce qu’on doit voir dans l’onglet Files du
navigateur de projet Project Navigator.

Il faut spécifier que le schéma créé représente le niveau le plus


haut de la conception (clic droit sur le fichier dans le Navigateur de
projet > Set at Top) :

On obtient alors l’entité au top dans l’onglet Hierarchy du


navigateur de projet :

Conception d’un automate avec Quartus II – 20/04/2015 Page 4


II.6. Compiler un schéma logique de niveau supérieur
Compiler : MP > Processing > Start Compilation

Voici le résultat de la compilation réussie d’un schéma avec rétro-annotation du brochage :

Vous remarquerez les points suivants :


1) l’entrée reset est actionnée par un bouton poussoir. Quel est son niveau actif ?
2) ici, l’entrée d’horloge provient d’un signal à régler extérieurement via un générateur branché sur la prise
BNC. Quelle est une valeur raisonnable pour la fréquence de l’horloge ?
3) la sortie sort active une LED. Pour quel niveau de sort la LED s’allume t-elle ?

Apportez les corrections voulues pour un bon fonctionnement.

II.7. Programmation d’une Fonction

Lancer la programmation au moyen du bouton : . Sélectionner, si ce n’est déjà fait, avec le bouton
"Hardware Setup", le matériel de programmation USB-Blaster [USB-0].

On obtient la fenêtre ci-contre.

Déclencher la programmation au moyen du


bouton Start.

La barre de progression se remplit et les


deux LED bleues de la petite carte DE-nano
s’allument ensemble tant que la program-
mation n’est pas achevée.

Ca y est, votre carte est programmée et devrait fonctionner conformément à vos descriptions. Il faut maintenant lui
appliquer les stimulis requis.

Conception d’un automate avec Quartus II – 20/04/2015 Page 5

Vous aimerez peut-être aussi