• Aucun résultat trouvé

Démarrer avec Quartus II

N/A
N/A
Protected

Academic year: 2022

Partager "Démarrer avec Quartus II"

Copied!
25
0
0

Texte intégral

(1)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 1/25 Quartus II permet la description d'un projet, sa compilation, sa simulation logique et temporelle, son analyse temporelle et la programmation d'un circuit CPLD ou FPGA, dit circuit cible. Quartus II est le successeur de Max+plus II chez Altera.

Description graphique ou textuelle

Simulation fonctionnelle

Choix du circuit cible,

simulation temporelle

Programmation

Attention : ce didacticiel a été écrit pour Quartus II 7.2 ; on trouvera quelques différence si des versions antérieures sont utilisées.

1 Configurer Quartus et vérifier la validité de la licence

Avant d’utiliser le logiciel, il faut le configurer et vérifier la validité de la licence. On se reportera pour cela aux annexes 1 et 2 ;

2 Fonctions de bases

Dans cette partie, nous verrons comment décrire un projet, effectuer une simulation fonctionnelle, affecter les entrées sorties et programmer notre circuit cible.

2.1 Ouvrir un nouveau projet

Nous allons dans un premier temps, décrire un simple diviseur de fréquence en VHDL, qui à partir de l’horloge à 25,175 MHz de la carte de développement, va faire clignoter la DEL d’un afficheur à 1 Hz.

oscillateur à quartz 25,175 MHz

CPLD diviseur

de fréquence

Pour une description plus précise de la carte de développement, on se réfèrera aux annexes.

L’ouverture de Quartus affiche la fenêtre suivante, comprenant 4 zones ou fenêtres principales :

(2)

- une zone « navigateur de projet » permettant de gérer les différents fichiers d’un projet ; - une zone de travail permettant la synthèse du projet ;

- une zone d’état (Status) permettant de voir l’avancement de la tâche en cours ; - une zone de messages

Si ces fenêtres n’apparaissent pas, on peut les activer par :

Après l’ouverture du logiciel, un assistant vous permet, après une fenêtre d’introduction, de commencer à configurer vos projets :

(3)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 3/25 Définir un nouveau dossier à l’aide de l’explorateur qui s’ouvre (CLIGNOTANT par exemple) et attribuer un nom à votre projet (qui peut être aussi CLIGNOTANT par faire simple).

Attention : ne pas utiliser de caractères accentués pour les noms de projet et fichiers.

Les écrans suivants permettent éventuellement d’associer des fichiers au projet et divers outils qui ne seraient pas intégrés dans Quartus.

Dans un premier temps, nous associerons une description VHDL d’un diviseur de fréquence, nommée div.vhd, qui se trouve dans le répertoire « RESSOURCES ».

On choisit ensuite le circuit cible (notre carte de développement UP1 ou UP2 contient un EPM7128SSLC84-7 de la famille MAX7000S des CPLD Altera). Noter que cette étape permet également de définir le circuit cible par des critères tels que famille, brochage etc… ou de laisser libre choix au logiciel de choisir le circuit le mieux approprié au projet dans une famille donnée.

L’assistant permet également de sélectionner d’autres outils EDA (Electronic Design Automotion tools) autres que Quartus pour la synthèse, la simulation ou l’analyse temporelle. Nous nous contenterons des outils fournis par Quartus. Enfin, la dernière fenêtre résume les choix opérés.

Remarques : si on travaille avec la carte de développement DE2 , le circuit à sélectionner est un EP2C35F672C6 de la famille Cyclone II, et pour une carte DE2-70 il s’agit d’un Cyclone II EP2C70F896C6.

(4)

Lorsque l’on souhaitera ouvrir de nouveau ce projet, on procèdera comme suit :

Dans Quartus, un fichier n’est rien s’il n’est pas intégré -et ouvert- dans un projet.

2.2 Description en VHDL

Par un double clic sur le fichier div.vhd dans la fenêtre « navigateur de projet » ouvrir le fichier VHDL sur lequel nous allons travailler.

Afin d’éviter de modifier le fichier ressource, sauvegarder ensuite ce fichier dans votre répertoire de travaille par « File -> Save As » sous le même nom que l’entité de la description VHDL (c’est important comme nous le verrons par la suite).

(5)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 5/25 Par le menu contextuel (clic droit sur le nom du fichier dans le navigateur), enlever le fichier ressource du projet, puis toujours par le menu contextuel, placer le fichier div.vhd qui se trouve dans notre répertoire de travail au niveau le plus élevé de la hiérarchie (nous verrons ces notions en détail en temps utiles). C’est maintenant sur ce fichier que nous allons travailler.

Pour réaliser cette opération, il est aussi possible d’utiliser le raccourci clavier « Ctrl Shift J» ou encore « Project -> Set as top Level Entity ».

On notera que dans l’onglet « Hierarchy » de la fenêtre du navigateur de projet, c’est le fichier div.vhd qui est maintenant affiché.

Etudier le fichier VHDL afin de comprendre son fonctionnement (voir aussi la reproduction commentée du programme en annexe 4).

Il aurait été également possible de partir d’un fichier vierge et de saisir au clavier notre description VHDL par la méthode suivante :

(6)

2.3 Analyse et synthèse

On peut ensuite lancer une première analyse du projet, soit par « Ctrl k » , soit par l’icône appropriée :

Cette première étape nous permettra d’effectuer une simulation fonctionnelle de notre description, ainsi que de déclarer les entrées sorties au logiciel pour une affectation ultérieure.

Normalement cette étape se déroule sans erreurs (sinon voir la fin de cette première partie) :

(7)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 7/25 On notera l’évolution de cette étape dans la fenêtre Status, ainsi que la présence d’un avertissement dans la fenêtre Message, signalant que des sorties sont maintenues à VCC quel que soit l’état des entrées, ce qui peut être effectivement une erreur dans certains cas.

2.4 Simuler

Cette étape va nous permettre de valider le fonctionnement de notre description, d’un point de vue logique uniquement (sans prendre en compte les retards que va introduire le circuit cible). Avant de simuler, il est nécessaire de préciser les sorties que l’on souhaite observer, ainsi que les entrées que l’on applique.

Depuis la version 11, Altera n’inclut plus le simulateur dans la suite Quartus, préconisant d’utiliser ModelSim. Plus performant que le simulateur de Quartus, ModelSim reste cependant beaucoup moins convivial. Le simulateur d’origine reste disponible en téléchargement à l’adresse :

http://www.altera.com/education/univ/software/qsim/unv-qsim.html

2.4.1 Créer et décrire le fichier de simulation

C’est un fichier graphique où sont décrits, sous forme de chronogrammes, les signaux d’entrée, ainsi que les signaux de sortie que l’on souhaite visualiser.

Préciser ensuite la durée de simulation (1 µs par exemple), ainsi que le pas de la grille (10 ns par exemple).

(8)

On insère ensuite les différentes entrées sorties par un clic droit dans la colonne « Name » et

« IInsert » :

Dans la fenêtre qui s’ouvre, cliquer sur « Node Finder… », puis valider « Pin all » dans le filtre, et cliquer sur « List » : Sélectionner ensuite les signaux H et S (le bus SEG reste toujours à 1) et les faire passer dans la fenêtre de droite.

Pour comprendre le fonctionnement de notre diviseur, nous aurons également besoin de voir l’évolution du signal X qui n’apparaît pas dans les entrées sorties, mais qui fait partie des registres de pré-synthèse ; on le fait apparaître en appliquant l’option « Register :pre-synthesis » au filtre.

On valide ensuite dans la dernière fenêtre, où on peut, si nécessaire, changer le format (radix) des bus.

Il est possible de changer ultérieurement ce format d’affichage, cliquant sur le nom du bus (qui est alors sélectionné) et en accédant à «Properties » par le menu contextuel (clic droit).

(9)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 9/25 On impose ensuite l’allure des entrées (ici l’horloge H) en cliquant sur le nom du signal, puis en utilisant les icônes à gauche (ici « Overwrite Clock »).

Remarque : il serait également possible de définir un temps à l’état 1 ou 0 en sélectionnant la zone du chronogramme concernée par un « glissé » de la souris bouton gauche enfonce, puis en validant avec l’icône appropriée.

On sauve ensuite le fichier avec un nom évocateur (TEST_CLIGNOTANT par exemple) avec une extension « .vwf » pour «Vector Waveform File ».

2.4.2 Lancer une simulation fonctionnelle Ouvrir pour cela le simulateur :

- valider l’option « Fonctional » ;

- déclarer le fichier précédent « TEST_CLIGNOTANT » comme entrée de simulation ; - choisir les options comme indiqué ci-après ;

- générer la liste de connexions (netlist) nécessaire à la simulation par « Generate Fonctional Simulation Netlist ».

- lancer la simulation par « Start » ; - afficher le résultat par « Report ».

(10)

Attention : dans certaines versions précédentes de Quartus, le sous menu « Simulateur Tools » se trouve dans le menu « Tools ».

Changer éventuellement le format du bus X en le sélectionnant et en éditant ses propriétés par un clic droit.

Utiliser l’icône « loupe » pour zoomer le chronogramme (clic gauche) ou le compresser (clic droit).

La sortie S reste à 0, elle ne basculera qu’après 25175000 / 2 impulsions, ce qui imposerait un temps de simulation trop long pour voir ce basculement.

Contrairement à Max+plus II, le simulateur de Quartus ne permet pas d’initialiser simplement les registres internes (d’où l’intérêt d’utiliser parfois d’autres simulateurs comme le propose l’assistant au démarrage). On pourra contourner cette limitation en changeant la valeur du modulo M dans la description et en relançant analyse, synthèse, génération de netlist et simulation. Ne pas oublier dans ce cas de remettre la bonne valeur avant la programmation.

Observer les différentes fenêtres qui se sont ouvertes dans l’espace de travail ; noter que le chronogramme résultat de la simulation n’est pas modifiable (pour ajouter une entrée par exemple), seul le fichier .vwf de description l’est.

(11)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 11/25

2.5 Assigner les entrées sorties

Avant de lancer la compilation du circuit, il est nécessaire d’affecter les entrées sorties aux numéros de broches de notre circuit cible de sorte à être compatible avec la carte de développement (consulter l’annexe). Deux méthodes sont alors possibles.

2.5.1 Méthode 1

Ouvrir l’éditeur d’assignement de broche, zoomer la zone qui nous intéresse sur le dessin du circuit cible, sélectionner un nom d’entrée sortie dans la fenêtre du bas (seulement le nom, pas toute la ligne), et le faire glisser, à partir de la case « Node Name » et en sortant par le bord droit de celle-ci, sur le numéro de la broche correspondant. Répéter l’opération pour chaque broche.

Il est aussi possible de faire un double clic dans la case « Location » pour ouvrir une fenêtre permettant de sélectionner le numéro de broche désiré.

On peut vérifier l’affectation des broches soit dans le tableau de la fenêtre du bas, soit en passant la souris sur une broche sur le dessin du circuit.

Pour supprimer une affectation, sélectionner la broche sur le circuit et appuyer sur « Suppr » au clavier.

Remarques : on consultera les annexes et la documentation associées à chaque carte pour connaître le numéro des bornes du circuit affectées aux entrées sorties.

Lorsque l’on souhaite maintenir une sortie au NL1, sélectionner la broche et accéder au sous menu

« Reserve » dans le menu contextuel (clic droit) puis sélectionner l’option « As output driving Vcc ».

2.5.2 Méthode 2

Lors de la synthèse, on impose aux entrées sorties, les noms donnés par le constructeur de la carte DE2, définis dans le fichier DE2_pins_assignments.csv , que l’on trouvera dans les documents ressources (ou sur le CD de la carte DE2). Ce fichier peut s’ouvrir avec un tableur ou avec Quartus par « Open / File… » en précisant « All Files » dans l’onglet « Types de fichiers » du navigateur.

L’assignation se fait alors simplement par « Assignments / Import Assignments » en précisant la localisation de DE2_pins_assignments.csv.

(12)

2.5.3 Broches non utilisées

Les sorties non utilisées du FPGA sont mise par défaut au niveau logique 0, mais cette option peut être modifiée par « Assignements » « Settings… » « Device » « Devices and Pin Options… » puis

« Unused Pins » :

(13)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 13/25

2.6 Compiler le projet

Lors de cette opération, le logiciel va créer les fichiers nécessaires à la programmation en définissant l’emplacement de chaque fonction logique au sein du circuit cible.

Ouvrir le compilateur et lancer la compilation.

Attention : dans certaines versions précédentes 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 fenêtre de travail, il suffit maintenant de cliquer dessus pour les faire réapparaître.

2.7 Programmer le circuit

Ouvrir la fenêtre du programmateur et vérifier que la liaison ByteBlasterMV sur le port LPT1 est reconnue (sinon se reporter à l’annexe 3) puis sélectionner le fichier « clignotant.pof » par « Add file … » s’il n’est pas déjà présent.

Cocher la case « Program/Config », puis lancer la programmation par « Start » :

(14)

Vérifier sur la carte que l’effet est bien celui attendu.

2.8 Gestion des erreurs

Dans la mise en œuvre précédente, nous avons utilisé une description déjà testée, et il n’y a normalement pas eu d’erreur lors des différentes opérations de synthèse et compilation. C’est cependant rarement le cas.

Pour tester ce qui se passe en cas d’erreur, supprimons le « ; » après le « END div » dans la description VHDL. Lancer ensuite la compilation (Ctrl K) :

Un message d’erreur apparaît alors, sur lequel on cliquera deux fois pour localiser l’erreur au sein du fichier description ; on notera que la localisation se fait souvent à la ligne suivant l’erreur (le compilateur attend un « ; » et trouve « ARCHITECTURE »).

Il est également possible d’obtenir de l’aide concernant cette erreur en sélectionnant l’erreur, puis par le menu contextuel (clic droit), faire « Help ».

(15)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 15/25 Corriger l’erreur et relancer la compilation.

Une erreur classique consiste à vouloir enregistrer le fichier sous un nom différent de l’entité ; faire l’essai avec ce fichier (« File -> Save As »).

3 Quelques fonctionnalités avancées

Le concepteur d’un projet complexe se retrouve souvent confronté à des problèmes de vitesse ou de place (généralement les deux) au sein du circuit cible.

Pour trouver le bon compromis, il va être amené à analyser précisément le chemin parcouru par certains signaux et le temps mis pour parcourir ce chemin, et éventuellement modifier de manière plus ou moins importante sa description initiale pour satisfaire le cahier des charges.

Afin d’aider le concepteur à mener à bien son projet, Quartus propose un certain nombre de fonctionnalités avancées sur l’analyse temporelle des signaux et leur placement au sein du circuit cible.

Nous ne ferons ici qu’approcher quelques unes de ces fonctions.

Remarque : les essais suivants ont été réalisés pour un circuit EPM7128SLC84 (cartes UP) ; les résultats différences seront négligeables avec un EP2C35F672C6 (cartes DE2).

3.1 Optimisation du taux d’occupation du circuit

Il est possible de demander au compilateur d’optimiser le taux d’occupation du circuit en validant l’option « Area » de la fenêtre « Analysis & Synthesis Settings » du sous menu « Settings » du menu « Assignments » ; il s’agit d’ailleurs de l’option par défaut.

ou encore

(16)

Lancer la compilation par « Processing -> Compilateur Tool -> Start » puis ouvrir le rapport de compilation par « Report »

Noter le taux d’occupation du circuit de 46 macrocellules sur 128, soit 36% . Ouvrir maintenant l’analyseur temporel :

- sur l’onglet « Registered Performance », et noter la fréquence maximale d’horloge possible de 68,49 MHz ;

- sur l’onglet « tco » (time clock to ouput), noter les différents temps.

Attention : dans certaines versions précédentes de Quartus, le sous menu « Timing Analyser Tools » se trouve dans le menu « Tools ».

Quartus permet également une analyse au « niveau registres » de la compilation par le

« RTL (Register Transfert Level) Viewver » que l’on ouvre par « Tools -> Netlist Viewvers -

> RTL Viewver » (attention. cette option n’est pas disponible avec la licence web).

(17)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 17/25 On peut alors voir comment Quartus a implanté notre description sur le circuit :

- un additionneur « Add0 » de 25 bits incrémente le signal de l’entrée A (l’entrée B vaut 1 soit 0000001 en hexadécimal) ;

- le signal A de l’entrée de l’additionneur est comparé par le comparateur « Less Than0 » à la valeur hexadécimale 18023D7 soit 24174999 en décimal, c’est à dire M-1 ; dès que le signal A atteint cette valeur, la sortie OUT du comparateur passe à 1 ;

- c’est alors l’entrée B du multiplexeur MUX21 qui se retrouve à la sortie de ce bloc ;

- la sortie du multiplexeur attaque un registre parallèle 25 bits, dont l’horloge est notre signal H ; - un comparateur « Less Than1 » compare la sortie du registre avec 0C011EC en hexadécimal,

soit 12587500 en décimal, soit la moitié de notre modulo M=25175000 .

- un multiplexeur 1 bit permet alors d’envoyer 0 ou 1 en sortie suivant le résultat de la comparaison.

On peut remarquer que le logiciel a utilisé un ensemble de fonction prédéfinis dans ces bibliothèques, appelé « megafunction » ou « LPM functions » (Library of Parameterized Modules) que nous utiliserons lors de la prochaine séance.

3.1.1 Simulation

La simulation que nous avons faite précédemment était purement fonctionnelle et ne prenait en compte que la manière dont nous avions décrit le diviseur, sans tenir compte du circuit cible et de ses temps de propagation, ni de la manière dont le compilateur va placer notre description au sein du circuit.

Nous pouvons maintenant lancer une simulation temporelle, mais avant il nous faut préciser quels signaux nous souhaitons observer.

Ouvrir les fichiers de stimulis de la simulation (TEST_CLIGNOTANT.vwf), puis par le menu contextuel de la colonne des noms de signaux, insérer le signal X réellement placé sur le circuit en sélectionnant

« Register : post-fitting » au niveau du filtre, puis « List » ,

de manière à obtenir l’écran suivant :

(18)

Placer le pas de grille à 5 ns et lancer ensuite une simulation temporelle :

Observer le résultat :

On notera en particulier :

- la disparition du signal X de la simulation temporelle (tout comme le signal lpm_counterX disparaîtrait d’une simulation fonctionnelle ;

- le temps de propagation entre le front d’horloge et le basculement de la sortie de 2,5 ns

3.2 Optimisation de la vitesse

Reprendre les manipulations précédentes en optimisant cette fois la vitesse ; on notera alors une fréquence maximale de 78,13 MHz (68,49 MHz précédemment) et un taux d’occupation du circuit de 49% avec 63 macrocellules.

La simulation temporelle donne un résultat similaire, le gain de vitesse ayant surtout été réalisé autour des parties combinatoires (dont nous n’observons pas ici la sortie S).

(19)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 19/25

Annexe 1 : Obtenir et configurer la licence

Quartus II est disponible gratuitement sur le site d’Altera http://www.altera.com .

Après installation, lors de la première ouverture du logiciel (ou si la licence n’est pas valide), Quartus propose trois options :

- travailler avec une version d’évaluation pendant un mois ; il ne sera alors pas possible de programmer de circuit ;

- effectuer une demande automatique de licence sur le site internet d’Altera ; sous réserve de posséder une connexion, vous serez alors basculé vers la page de demande de licence, où après avoir complété les différents renseignements, vous recevrez un fichier « .dat » par courriel (il faut donc une adresse valide) ; la licence étant reconnue à partir de la carte réseau de votre ordinateur, celui-ci devra en intégré une ;

- spécifier un fichier licence valide (ce qui suppose d’avoir effectué l’étape précédente).

Une fois votre fichier licence reçu par courriel (cas 2), il faut le déclarer au logiciel (cas 3). Pour cela, copier le fichier « .dat » sur votre disque dur et déclarer l’emplacement comme suit :

Remarques :

- pour obtenir la licence de « Quartus II Web Edition », un ordinateur PC équipé d’une carte réseau suffit ; le numéro (NIC ID) de cette carte vous sera demandée en cas d’inscription manuelle ou sera lu lors de la connexion en cas d’inscription automatique. La licence ne sera valable qu’associée à cette carte réseau.

- pour obtenir la licence de la version complète, une clé matérielle (associée à son numéro

« Software Guard ID ») sera nécessaire ; la licence ne sera alors valide que si la clé matérielle est connectée à l’ordinateur ; la première génération de clé matérielle se connecte sur le port parallèle, tandis que la seconde génération se connecte sur un port USB, il faut alors installer un pilote disponible à l’adresse internet suivante : http://www.safenet- inc.com/support_and_downloads/download_drivers/sentinel_drivers.aspx#

- la licence est simplement un fichier texte (ouvrable avec n’importe quel éditeur) avec une extension « .dat » ; lorsque plusieurs licences sont utilisées (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 copiés les textes associés à chaque fichier élémentaire à l’aide du Bloc Note de Windows par exemple ; attention ne pas utiliser Word pour cette opération, ce programme introduisant des caractères spéciaux rendant le fichier illisible pour Quartus.

(20)

Annexe 2 : Configurer l’affichage

Deux interfaces graphiques sont envisageables avec Quartus II : - l’interface « classique » ;

- l’interface rappelant les menus de max+plus II (le logiciel de génération précédente chez Altera).

Nous travaillerons ici avec la première interface, obtenue de la manière suivante :

Quartus ouvre beaucoup de fenêtre, il est possible de choisir ses fenêtres par le menu suivant :

(21)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 21/25

Annexe 3 : Configurer le programmateur

Le logiciel permet la programmation ou la configuration des circuits cibles. On parle de programmation pour les circuits à connexions en technologie non volatile EEPROM (cette opération se fait avec un fichier « .pof » généré par le compilateur) et de configuration pour les circuits à connexions en technologie volatile de type SRAM (cette opération se fait avec un fichier « .sof »).

Il est nécessaire de déclarer l’interface matérielle de programmation au logiciel (dans notre cas un bus JTAG associé à un cordon ByteblasterMV sur le port parallèle LPT1).

Ouvrir pour cela le programmateur puis cliquer sur « Hardware Setup…. »

Cliquer sur « Add Hardware… », sélectionner le matériel utilisé et le port sur lequel il est connecté, valider par « OK » :

Sélectionner ce matériel dans la liste, puis cliquer sur « Select Hardware », fermer la fenêtre par

« Close » et vérifier que le type de matériel apparaît bien en face de « Hardware Setup… » :

(22)

Annexe 4 : Programme VHDL du diviseur

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE ieee.std_logic_unsigned.all;

--les paquetages std_logic_1164 et std_logic_unsigned de la bibliothèque ieee --permettent respectivement l'utilisation du type std_logic et l'addition avec ce type

ENTITY div IS

--H est le signal d'horloge à 25,175 MHz

--S est le résultat de la division de la fréquence de H par 25 175 000

--les 15 bits de SEG seront toujours au NL1 pour éteindre les segments non utilisés

port ( H : IN STD_LOGIC;

SEG : OUT STD_LOGIC_VECTOR (14 downto 0);

S : OUT STD_LOGIC);

END div;

ARCHITECTURE archdiv OF div IS

--pour compter jusqu'à (25 175 000 -1) il faut 25 bits (2^25=33 554 432) SIGNAL X : STD_LOGIC_VECTOR (24 downto 0);

CONSTANT M : INTEGER := 25175000 ; BEGIN

PROCESS (H) BEGIN

--compteur modulo M

IF (H'EVENT AND H = '1') THEN

IF X >= M-1 THEN X <= (others=>'0');--mise à 0 de X ELSE X <= X + 1 ;

END IF;

END IF;

END PROCESS

--à la moitié du comptage on change la valeur de S (rapport cyclique 1/2) S<='1' when X>=M/2 else '0';

-- extinction des 15 segments non utilisés par mise à 1 des bits de SEG SEG<= (others =>'1');

END archdiv;

les commentaires, précédés de deux tirets

l’entité, décrivant une boîte noire avec des entrées sorties d’un type particulier

la direction (ici une sortie)

le type std_logic peut prendre les valeurs « 1 » ,

« 0 » ou « haute impédance ».

le type std_logic_vector est un bus.

l’architecture

des ressources internes :

- un signal pour mémoriser le comptage ;

- une constante pour le modulo le process surveille sa liste de

sensibilité (ici H)

au front montant de H, on incrémente le comptage jusqu’à la valeur maximale

le signal de sortie reste au niveau logique 1 pendant

la moitié du comptage

(23)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 23/25

Annexe 5 : connectique de la carte de développement UP1 et UP2

Alimentation continue

Tension continue de 7 à 9 V, 250 mA minimum, polarité positive au centre du connecteur.

Cavaliers de configuration

Suivant l’utilisation souhaitée de la carte de développement, le cavaliers se trouvant au-dessus du circuit MAX7000 doivent être configurés comme indiqué ci-dessous (les zones grisées représentent les bornes en contact) :

TDI TDO DEVICE BOARD

ALTERA MAX EPM7128SLC84-7

TDI TDO DEVICE BOARD

ALTERA MAX EPM7128SLC84-7

Programmation du Max7000

EPM7128S

Configuration du Flex10K

EPF10K20

TDI TDO DEVICE BOARD

ALTERA MAX EPM7128SLC84-7

TDI TDO DEVICE BOARD

ALTERA MAX EPM7128SLC84-7

Connection de plusieurs cartes

ensembles Programmation

et configuration des 2 circuits

Oscillateur

Fréquence de 25,175 MHz, relié à la borne 83 de l’EPM7128S et à la borne 91 de l’EPF10K20.

Afficheurs

Les deux groupes d’afficheurs sont reliés aux bornes des circuits comme indiqué ci-dessous :

6

12 7 13

14 11 8

17

23 18 24

25 21 19

9 20

58

65 60 67

68 64 61

69

75 70 77

79 76 73

63 74

EPM7128S EPf10K20

(24)

Annexe 5 : Quelques caractéristiques succinctes de la carte de développement DE2

Les informations suivantes donnent quelques éléments d’utilisation de cette carte ; pour plus d’information on consultera la documentation du constructeur ainsi que le document « Première 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 programmée par un câble 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 « Première utilisation de la carte DE2 »).

Mettre la carte sous tension à l’aide du bouton rouge en haut à gauche et la placer en mode « RUN » grâce au commutateur à gauche de l’afficheur LCD (pour plus de détails voir le document « Première 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) reçoit trois signaux d’horloge :

- une horloge à 50 MHz sur la borne PIN_N2 ;

- une horloge externe sur la borne PIN_P26 à envoyer sur le connecteur SMA (coin inférieur droit de la carte) ;

- une horloge à 27 MHz, via le décodeur vidéo, sur la borne PIN_D13. Pour que cette horloge arrive au FPGA, il est impératif que la borne RESET du décodeur vidéo, reliée à la borne PIN_C4 du FPGA, soit au niveau logique 1. Cette dernière peut être activée au NL1 au moment de l’affectation des broches sous Quartus ; pour cela, sélectionner la broche et accéder au sous menu « Reserve » dans le menu contextuel (clic droit) puis sélectionner l’option « As output driving Vcc ».

Afficheurs et Del

La Del LEDG8 (entre les afficheurs) est reliée à la borne Y12.

Les afficheurs de droite (HEX0 à HEX3) sont reliés aux bornes du FPGA comme indiqué ci-dessous :

V20 AA23 V21 AB24

AA24 W21

AF10

V14 AB12

V13

AE11 AC12

Y22 AD11

Y23

U22 AA25 W24

Y25 AA26

AB23 AB25 V22

Y24

AB26 AC25

Y26 AC26

HEX0 HEX1

HEX2 HEX3

(25)

Denis Rabasté Programmation des CPLD et FPGA en VHDL avec Quartus II 25/25

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 d’une description : .sym

Références

Documents relatifs

Exceptions : des pneus, des bleus Les noms terminés par ou ont leur pluriel en

Exceptions : bail, émail, corail, soupirail, travail, vitrail, vantail font leur pluriel en aux. Les noms terminés par x, s ou z ne changent pas au pluriel

Pour définir l'état des entrées, il suffit de sélectionner une portion du chronogramme (un ou plusieurs signaux à la fois) puis de cliquer sur pour mettre à '0' ou sur pour

Pour cela, il faut télécharger les fichiers d’installation sur le site officiel du forum : http://www.punbb.fr/... Extraction

Cela demande des explications, surtout que je n'ai pas fermé l'oeil de la nuit parce que l'inquiétude me rongeait (et que j'avais besoin de me co pour nourrir mes familiers,

UE 6 ANALYSE MONETAIRE 2 La monnaie et les cycles financiers – la conduite de la politique monétaire – l’Union économique et monétaire- le système monétaire

INTITULES HORAIRES (Cours Magistraux et Travaux Dirigés) Unité de Valeur 7 Langue A1 Anglais. Module

Allez ensuite dans le menu NIOS II/Quartus II Programmer, sélectionner le fichier DE2_Web_Server_time_limited.sof et cliquez sur le bouton Start. Ne pas déconnecter la liaison