Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3...

20
Guide pratique ActiveHDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014) École Polytechnique de Montréal page 1 de 20 Département de génie informatique et de génie logiciel Guide pratique d’utilisation d’Active-HDL 8.3 1 Introduction 1.1 Survol Active-HDL, de la compagnie Aldec, est un environnement intégré de développement de systèmes numé- riques décrits : avec un langage de description matérielle (comme VHDL, Verilog et SystemC); par schémas; par diagrammes d'états; ou, avec une combinaison des trois. Active-HDL inclut entre autres : des outils de description de designs; des compilateurs pour plusieurs langages de description matérielle; un simulateur; des outils de débogage; et, des outils de profilage et de vérification. Le logiciel intègre de plus des outils de synthèse et d'implémentation d'autres compagnies, permettant ainsi de travailler avec différentes technologies dans un environnement unifié. Dans ce guide, on suppose que la suite d'outils ISE de Xilinx est installée en conjonction avec Active-HDL. Au département de génie informatique et de génie logiciel, une version complète d’Active -HDL est ins- tallée dans les laboratoires Windows. Une version étudiante peut être téléchargée du site web de la compagnie (www.aldec.com). 1.2 Objectif de ce guide L'objectif de ce guide est d'énumérer et de décrire les étapes pour : créer un espace de travail dans Active-HDL; créer un projet et l'ajouter à un espace de travail; décrire un circuit numérique à l'aide de code VHDL; simuler le circuit numérique en lui appliquant des signaux d'entrée désirés et en observant sa sortie; et, décrire un circuit numérique à l’aide d’une description hiérarchique, basée sur un schéma, et conte- nant plusieurs modules décrits en VHDL dans des fichiers séparés.

Transcript of Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3...

Page 1: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 1 de 20 Département de génie informatique et de génie logiciel

Guide pratique d’utilisation d’Active-HDL 8.3

1 Introduction

1.1 Survol

Active-HDL, de la compagnie Aldec, est un environnement intégré de développement de systèmes numé-

riques décrits :

avec un langage de description matérielle (comme VHDL, Verilog et SystemC);

par schémas;

par diagrammes d'états; ou,

avec une combinaison des trois.

Active-HDL inclut entre autres :

des outils de description de designs;

des compilateurs pour plusieurs langages de description matérielle;

un simulateur;

des outils de débogage; et,

des outils de profilage et de vérification.

Le logiciel intègre de plus des outils de synthèse et d'implémentation d'autres compagnies, permettant

ainsi de travailler avec différentes technologies dans un environnement unifié. Dans ce guide, on suppose

que la suite d'outils ISE de Xilinx est installée en conjonction avec Active-HDL.

Au département de génie informatique et de génie logiciel, une version complète d’Active-HDL est ins-

tallée dans les laboratoires Windows. Une version étudiante peut être téléchargée du site web de la

compagnie (www.aldec.com).

1.2 Objectif de ce guide

L'objectif de ce guide est d'énumérer et de décrire les étapes pour :

créer un espace de travail dans Active-HDL;

créer un projet et l'ajouter à un espace de travail;

décrire un circuit numérique à l'aide de code VHDL;

simuler le circuit numérique en lui appliquant des signaux d'entrée désirés et en observant sa sortie;

et,

décrire un circuit numérique à l’aide d’une description hiérarchique, basée sur un schéma, et conte-

nant plusieurs modules décrits en VHDL dans des fichiers séparés.

Page 2: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 2 de 20 Département de génie informatique et de génie logiciel

1.2.1 Lancement de Active-HDL

Lancez Active-HDL en choisissant la commande

correspondante dans le menu Démarrer.

Si une fenêtre « License Configuration » s’ouvre,

cliquez simplement sur Next.

2 Création d’un espace de travail (workspace)

Un espace de travail (workspace) peut regrouper plusieurs projets (designs) logiquement reliés entre eux.

Par exemple, dans le contexte d'un programme universitaire, on pourrait avoir un espace de travail pour

chaque cours, et un projet pour chaque laboratoire de ce cours. Un espace de travail différent pourrait

regrouper les laboratoires d'un cours différent, d'un projet intégrateur, ou de projets personnels.

La première fois que vous lancez le programme,

une fenêtre apparaît. Choisissez OK pour créer

un nouvel espace de travail. Sinon, choisissez

File > New > Workspace.

Choisissez un nom représentatif pour un premier

espace de travail.

Il faut aussi spécifier un répertoire dans lequel

l'espace de travail sera sauvegardé. Il est impor-

tant que le chemin de ce répertoire ne contienne

pas d'espaces, parce que certains outils invoqués

par Active-HDL ne les supportent pas bien.

Dans les laboratoires du GIGL, il est donc re-

commandé de travailler dans un répertoire

personnel sur C:\temp\votrenom. Une fois le tra-

vail terminé, il est important d'archiver ce

répertoire et d'en emporter une copie avec vous.

Le répertoire C:\temp\ des ordinateurs des labo-

ratoires est régulièrement effacé.

Page 3: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 3 de 20 Département de génie informatique et de génie logiciel

3 Création d’un projet (design)

Un projet permet de regrouper plusieurs fichiers-sources pour un laboratoire ou un module en particulier.

Lors de la création du premier espace de travail,

l'outil vous propose immédiatement de créer un

nouveau projet.

Pour les projets suivant, il suffit de choisir File >

New > Design.

Cliquez sur Next pour invoquer l'assistant.

Vérifiez que les bons outils ont été préalablement

choisis. Si ce n'est pas le cas, informez votre chargé

de laboratoire ou cliquez sur Flow Settings pour

faire les bons choix.

Pour la case Default Family, le choix devrait cor-

respondre à la famille du type de FPGA utilisé dans

votre laboratoire. Le choix indiqué ici correspond

au cours INF3500. Vérifiez avec votre chargé de

laboratoire dans le cas contraire.

Cliquez sur Next.

Page 4: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 4 de 20 Département de génie informatique et de génie logiciel

Choisissez un nom représentatif pour votre projet.

Cliquez sur Next, puis sur Finish.

4 Description d’un circuit numérique en VHDL

4.1 Circuit en exemple

Dans les instructions qui suivent, on construit un circuit arithmétique de base : un additionneur à 3 bits.

Ce circuit accepte 3 bits en entrée et les additionne. Il a deux sorties : une retenue ainsi qu’une somme.

Les sorties possibles sont donc (retenue, sortie) {(0, 0), (0, 1), (1, 0), (1, 1)}, correspondant respective-

ment aux cas où les trois bits d’entrée sont 0, un seul bit est 1, deux bits sont 1, et trois bits sont 1. Ce

circuit indique donc le nombre de bits d’entrée qui valent 1.

Le tableau de vérité de ce circuit est donné ici :

bit0 bit1 bit2 retenue somme

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

Page 5: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 5 de 20 Département de génie informatique et de génie logiciel

On peut dériver les équations pour les sorties retenue et somme grâce à un tableau de Karnaugh. Un

schéma d’un circuit réalisant ces deux fonctions est donné ici :

Le circuit est composé des composantes suivantes :

deux portes OU-exclusif à deux entrées;

deux portes ET à deux entrées;

une porte OU à deux entrées; et,

trois terminaux d’entrée et deux terminaux de sortie.

4.2 Procédure

Lancez Active-HDL. Ouvrez l’espace de travail dans lequel se trouve le design sur lequel vous voulez

travailler. Si votre espace de travail comporte plus d’un design, cliquer sur celui sur lequel vous voulez

travailler avec le bouton de droite, et choisissez Set as Active Design.

Suivez les instructions suivantes:

Dans l’explorateur de projets (Design Brow-

ser), cliquez sur le ‘+’ à gauche de votre

projet, puis deux fois sur Add New File.

Page 6: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 6 de 20 Département de génie informatique et de génie logiciel

Choisissez l’icône VHDL Source Code de

l’onglet Empty Files. Donnez un nom repré-

sentatif au fichier (ici add3bits).

Cliquez sur OK.

Dans l’éditeur de texte, entrez le code VHDL

suivant, et sauvegarder le (soit avec Ctrl+S ou

dans File > Save).

------------------------------------

-- add3bits.vhd

-- additioneur à 3 bits

------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity add3bits is

port (

bit0 : in std_logic;

bit1 : in std_logic;

bit2 : in std_logic;

retenue : out std_logic;

somme : out std_logic

);

end add3bits;

architecture flotdonnees of add3bits is

signal T1 : std_logic;

signal T2 : std_logic;

signal T3 : std_logic;

begin

somme <= T1 xor bit0;

retenue <= T3 or T2;

T1 <= bit1 xor bit2;

T2 <= bit1 and bit2;

T3 <= bit0 and T1;

end flotdonnees;

5 Compilation du projet

Lors de la compilation, le projet est vérifié de façon à confirmer que toutes les règles de syntaxe du lan-

gage sont respectées.

Une compilation correcte ne signifie pas que le circuit fonctionne, mais plutôt que sa description est

conforme à des règles précises.

Choisissez Design > Compile, ou pesez sur la touche F11.

Corrigez toutes les erreurs (si nécessaire).

Page 7: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 7 de 20 Département de génie informatique et de génie logiciel

6 Simulation du projet

La simulation du projet permet de vérifier qu’il fonctionne de la façon prévue par les spécifications.

Tout d'abord, choisissez Tools > Preferences

et vérifiez pour la catégorie Waveform Vie-

wer/Editor que Standard Waveform

Viewer/Editor est bien l'affichage de chrono-

gramme par défaut.

Choisissez Simulation > Initialize Simula-

tion.

Choisissez File > New > List.

Choisissez File > New > Waveform.

Cliquez sur le symbole de l’entité à simuler

(add3bits ici) de la fenêtre de l’explorateur de

design à gauche.

Dans la fenêtre des signaux, choisissez, en

pesant sur la touche Shift, les signaux bit0,

bit1, bit2, retenue et somme. Traînez ces si-

gnaux dans la fenêtre Waveform.

Répétez pour la fenêtre List.

Page 8: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 8 de 20 Département de génie informatique et de génie logiciel

À l’aide de la souris et de la touche Shift, sé-

lectionnez les signaux bit0, bit1 et bit2 dans la

fenêtre Waveform.

Cliquez sur le bouton de droite et choisissez

Stimulators.

Choisissez le signal bit0, puis le type Clock,

puis fixez la fréquence à 10 MHz. Cliquez sur

Apply.

Répétez pour les signaux bit1 et bit2, en fixant

leurs fréquences à 20 MHz et 40 MHz, respec-

tivement.

Avec un temps de simulation de 100 ns, cliquez

sur le bouton Run For.

Vérifiez le fonctionnement correct de votre

additionneur à 3 bits à l’aide de la fenêtre Wa-

veform….

Page 9: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 9 de 20 Département de génie informatique et de génie logiciel

… et de la fenêtre List. Affichez le menu

contextuel (clic-droit) et activez sur Collapse

Deltas.

Page 10: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 10 de 20 Département de génie informatique et de génie logiciel

7 Trois outils pratiques pour écrire du code VHDL

Active-HDL contient trois outils particulièrement pratiques pour écrire du code VHDL.

L’assistant du langage (Language Assistant) est

invoqué en cliquant sur l’ampoule électrique.

L’assistant comporte plusieurs catégories

d’éléments VHDL et il est facile de copier-

coller du code dans un module.

Du menu Help > Online Documentation, on

lance l’aide de Active-HDL. Dans la section

References, on trouve un guide du langage

VHDL qui est très complet.

Du menu Help > Interactive VHDL Tutorial,

on lance le programme Evita qui est un tutorial

très convivial pour l’apprentissage de VHDL.

Page 11: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 11 de 20 Département de génie informatique et de génie logiciel

8 Synthèse et implémentation du projet

8.1 Description

La synthèse d’un circuit consiste à traduire la description du circuit en blocs disponibles dans la technolo-

gie utilisée. Par exemple, pour un circuit décrit avec un schéma et qui doit être réalisé sur un FPGA, le

processus de synthèse convertit et regroupe les portes logiques du schéma en composantes réalisables sur

le FPGA choisi.

L’implémentation du circuit est divisée en quatre sous étapes:

la transformation (mapping) : regrouper les composantes obtenues lors de la synthèse dans des blocs

spécifiques du FPGA;

la disposition (placement) : choisir des endroits spécifiques sur le FPGA où disposer les blocs utilisés,

et choisir les pattes du FPGA correspondant aux ports d’entrée et de sortie;

le routage (routing) : établir des connexions électriques entre les blocs utilisés; et,

la configuration (configuration) : convertir toute cette information en un fichier pouvant être téléchar-

gé sur le FPGA pour le programmer.

8.2 Ports d’entrée et de sortie

Pendant l’étape de disposition de l’implémentation, il faut assigner des pattes spécifiques du FPGA à des

ports d’entrée et de sortie de son design. Pour le design présent, les ports d’entrée sont bit0, bit1 et

bit2, et les ports des sortie sont retenue et somme.

L’assignation des ports se fait par l’entremise d’un fichier de contraintes avec l’extension « .ucf » (pour

user constraints file).

Ouvrez un éditeur de texte (comme Notepad++ ou l’éditeur de texte d’Active-HDL) et copiez-y les lignes

suivantes. On suppose que vous utilisez la planchette Digilent Genesys.

# add3bits.ucf

# pour planchette Digilent Genesys

# LEDs

NET "retenue" LOC = "AH8"; # LD1

NET "somme" LOC = "AG8"; # LD0

# commutateurs

NET "bit0" LOC = "J19"; # SW0

NET "bit1" LOC = "L18"; # SW1

NET "bit2" LOC = "K18"; # SW2

On note que chaque port est listé dans le fichier, exactement comme il apparaît dans le code. Le symbole

du dièse (#) indique que le reste de la ligne est un commentaire (ne s’applique pas dans un fichier vhdl).

Sauvegardez le fichier dans le même répertoire que les autres fichiers source de votre design, sous le nom

de add3bits.ucf.

Consultez le manuel de l'utilisateur de votre planchette de développement pour plus de détails.

Page 12: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 12 de 20 Département de génie informatique et de génie logiciel

8.3 Procédure

Activez la fenêtre design flow. Si elle n’est pas

visible, choisissez View > Flow.

Double-cliquez sur le bouton options à gauche de

l’icône synthesis.

Pour Top-Level Unit choisissez le nom de votre

entité du plus haut niveau, ici add3bits.

Pour Family et Device, pour la planchette Genesys,

il faut choisir Xilinx13x VIRTEX5 et

5vlx50tff1136. Pour Speed Grade, choisir -1.

Pour les autres options, on peut prendre les valeurs

par défaut.

Cliquez sur OK.

Cliquez sur l’icône synthesis.

Une nouvelle fenêtre devrait apparaître, et, après un

certain temps, le message Synthesis finished suc-

cessfully devrait apparaître. Sinon, consultez les

messages d’erreur et apportez les corrections né-

cessaires à vos fichiers.

En cas de doute, consultez votre chargé de labora-

toire.

Cliquez sur Close.

Cliquez sur le bouton options à gauche de l’icône

implementation.

Page 13: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 13 de 20 Département de génie informatique et de génie logiciel

Sous l’onglet Main, à la ligne Constraint File

(UCF) Support, choisissez Custom constraint

file.

Cliquez sur Browse, et choisissez votre fichier

add3bits.ucf.

Sous l’onglet Post-Map STR, choisissez Do Not

Run Post-Map STR.

STR signifie Static Timing Report, ou rapport des

délais statiques. Enlever cette option accélère le

processus.

Sous l’onglet Post-PAR STR, choisissez Do Not

Run Post-PAR STR.

Page 14: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 14 de 20 Département de génie informatique et de génie logiciel

Sous l’onglet BitStream, désélectionnez Do Not

Run Bitgen sélectionnez Create Bit File.

Cliquez sur OK.

Cliquez sur l’icône implementation.

Une nouvelle fenêtre devrait apparaître, et, après

un certain temps, le message Implementation

completed successfully devrait apparaître.

Sinon, consultez les messages d’erreur et appor-

tez les corrections nécessaires à votre diagramme.

En cas de doute, consultez le chargé de laboratoi-

re.

Cliquez sur Close.

9 Programmation du FPGA et vérification

Mise en garde :

Les instructions suivantes sont particularisées pour la planchette Digilent Genesys.

Voir le lien web suivant pour travailler avec la carte :

http://digilentinc.com/Products/Detail.cfm?NavPath=2,400,819&Prod=GENESYS

Si tout s’est bien passé à l’étape précédente, un fichier add3bits.bit est maintenant placé dans votre réper-

toire \espaceDeTravail\design1\implement\ver1\rev1 et est prêt à être téléchargé dans le FPGA de la

planchette de développement.

Page 15: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 15 de 20 Département de génie informatique et de génie logiciel

Au laboratoire, la planchette devrait être déjà

allumée et reliée au poste de travail par le câble

USB2. Dans ce cas, passez à l’étape suivante. Si

la planchette n’est pas allumée, informez le char-

gé de laboratoire.

Dans Active-HDL, activez la fenêtre design

flow. Si elle n’est pas visible, choisissez View >

Flow.

Cliquez sur le bouton Analysis, en bas à droite,

puis sur l’icône de l’outil iMPACT.

Si la fenêtre « Automatically create and save a

project » s’affiche, cliquez sur No. Choisissez

create a new project, cliquez sur OK, puis assu-

rez-vous de mettre l’option de branchement

automatique avant de cliquer de nouveau sur OK.

Cliquez sur Yes si la fenêtre « Auto Assign

Configuration Files Query Dialog » s’affiche.

Choisissez le fichier add3bits.bit que vous trou-

verez dans le dossier implement/ver1/rev1 et

cliquez sur Open. Si le logiciel vous demande

d’attacher un SPI ou un BPI PROM, répondez

par No. Cette option sert à charger la mémoire

PROM de la planchette.

Page 16: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 16 de 20 Département de génie informatique et de génie logiciel

Cliquez sur le symbole représentant le FPGA,

puis sur le bouton de droite de la souris. Choisis-

sez Program …

Cliquez sur OK dans la fenêtre Device Pro-

gramming Properties (si elle s’affiche), sans

rien changer.

Voilà! Vous pouvez maintenant vérifier votre

design sur le FPGA.

Essayez toutes les combinaisons possibles

d’entrées et confirmez que les sorties sont bien

conformes au tableau de vérité de la section 4.1.

Note : Si l’espace est blanc, cliquez sur le bouton

de droite de la souris et choisissez Initialize

Chain. Vous pourrez ensuite suivre les instruc-

tions pour y ajouter votre fichier .bit.

Page 17: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 17 de 20 Département de génie informatique et de génie logiciel

10 Description hiérarchique d’un projet comportant plusieurs modules

10.1 Principes de base et circuit en exemple

Les circuits numériques ne sont jamais décrits à l’aide d’un seul fichier contenant du code VHDL. La

plupart regroupent plusieurs modules indépendants qui sont tirés de bibliothèques existantes ou bien qui

sont développés sur mesure pour un projet en particulier. Quand un projet regroupe un grand nombre de

modules décrits dans autant de fichiers, il peut devenir difficile de s’y retrouver. De plus, il est nécessaire

de décrire les interconnexions entre les différents modules, et encore là il peut devenir difficile de s’y

retrouver. Une description hiérarchique utilisant des schémas permet de gérer à la fois la complexité du

projet et de décrire les interconnexions de façon efficace.

Dans cette section, vous allez créer un projet et y ajouter des fichiers VHDL existants. Vous allez ensuite

relier les modules décrits dans ces fichiers à l’aide d’un schéma. Vous allez aussi effectuer toutes les

connexions nécessaires pour une implémentation sur la planchette de développement. Les instructions

suivantes illustrent la description hiérarchique d’un projet avec Active-HDL à l’aide d’un exemple.

10.2 Procédure à suivre

Créez un nouveau projet en suivant les instructions de la section 3, et donnez-lui le nom « tutoriel ».

Copiez du site web du cours INF3500 dans le dossier « src » de votre projet les fichiers :

addsub.vhd

hd44780_8chars_1line.vhd

hd44780_simple.vhd

equal_ascii.vhd

signed_to_lcd.vhd

addsub_to_lcd.vhd

addsub.ucf

Dans l’explorateur de projets (Design Browser), cliquez sur le ‘+’ à gauche de votre projet, puis deux fois

sur Add New File. Cliquez sur Add Existing File et ajoutez les fichiers que vous venez de copier.

Inspectez les fichiers que vous avez copiés. Le fichier addsub.vhd décrit un module qui peut additionner

ou soustraire deux nombres A et B selon la valeur d’un signal de sélection choix. Il a une sortie F repré-

sentant le résultat et V indiquant si un débordement a lieu. Le paramètre W indique la largeur des

opérandes et du résultat.

Dans l’explorateur de projets (Design Browser),

cliquez sur le ‘+’ à gauche de votre projet, puis deux

fois sur Add New File. Sous l’onglet Empty File,

choisissez Block Diagram. Donnez le nom « add-

sub_top » au diagramme.

Page 18: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 18 de 20 Département de génie informatique et de génie logiciel

En cliquant sur l’icône des ports ou en choisissant

Diagram > Terminal, ajoutez les terminaux sui-

vants au diagramme.

Ports d’entrée : clk, reset, choix, A(3:0) et B(3:0).

Ports de sortie : lcd_db(7:0), lcd_rw, lcd_rs, lcd_en

et V.

Les ports avec des indices entre parenthèses sont des

bus, les autres sont des fils. Assurez-vous que les

ports A et B sont de type signed

Choisissez Diagram > Code Generation Settings

...

Sous l’onglet Design Unit, compléter la fenêtre

Design Unit Header.

Dans cette fenêtre, il faut ajouter les librairies utili-

sés par les différents modules du circuit.

Sous l’onglet Conversion Functions, désélection-

nez toutes les options. Cliquez sur OK.

Page 19: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 19 de 20 Département de génie informatique et de génie logiciel

Choisissez Design > Compile All.

Cliquez sur l’icône « Show Symbol Tool-

box »(petite porte ET dans la barre d’outil). Dans la

libraire tutoriel, cliquez sur le module addsub, puis

traînez le symbole dans le diagramme.

Répétez pour les modules signed_to_lcd, add-

sub_to_lcd, equal_ascii et hd44780_8char_1line.

Reliez les modules et les terminaux tels que montré à l’image suivante. Il faut instancier trois copies du

module signed_to_lcd.

Le module addsub est défini avec une largeur par

défaut de 8 bits. Il faut spécifier une valeur de 4 ici.

À l’aide du bouton de droite, cliquez sur le symbole

addsub et choisissez Properties. Sous l’onglet Ge-

nerics, entrez la valeur ‘4’ pour le paramètre W.

Par défaut, les bus et les fils reliant les modules sont des types std_logic_vector et std_logic,

respectivement. Les bus ont une largeur de 8 bits par défaut.

Il faut donc effectuer des conversions explicites de type dans certains cas. Pour ce faire, il faut inspecter

les définitions des différents modules dans leurs fichiers pour voir où c’est nécessaire. Dans les prochains

Page 20: Guide pratique d’utilisation d’Active-HDL 8 · Guide pratique – Active–HDL 8.3 sp1 update 3 ... Active-HDL, de la compagnie Aldec, est un environnement intégré de développement

Guide pratique – Active–HDL 8.3 sp1 update 3 (v. 0.9, 13 janvier 2014)

École Polytechnique de Montréal page 20 de 20 Département de génie informatique et de génie logiciel

laboratoires, il vous faudra jouer avec ces paramètres pour que la synthèse réussisse.

Par exemple, la sortie F du symbole addsub a le type

signed. Il faut donc changer le type et la largeur

du bus qui y est connecté. Cliquez deux fois sur ce

bus, puis ajustez ses propriétés comme montré ici

Dans certains cas, un bus (qui est de type

std_logic_vector) est connecté à une entrée de mo-

dule de type signed. Pour faire la conversion de

std_logic_vector vers signed au niveau de l’entrée

comme tel, il faut faire un clique-droit sur le bloc,

puis Properties… Dans l’onglet Port Mapping, on

choisit le mode Function, et on indique le type si-

gned. Pour plus de renseignements, voir le

supplément de ce guide disponible sur le site moodle

du cours INF3500.

10.3 Simulation d’un circuit hiérarchique

La simulation d’un circuit hiérarchique peut parfois être lourde. Par exemple, le module ssdDriver ne sert

ici qu’à décoder les signaux pour l’affichage, et l’interprétation de ses sorties est difficile à faire.

Au minimum, chaque module devrait être vérifié indépendamment. Dans un laboratoire, il est essentiel de

vérifier complètement chaque nouveau module développé. La vérification complète du circuit devrait être

faite par simulation quand c’est possible, ou par implémentation sur la planchette dans le cas où un affi-

chage est effectué.

10.4 Implémentation du circuit et programmation du FPGA

Suivez les instructions des sections 8.3 pour faire l’implémentation du circuit, puis de la section 9 pour en

faire l’implémentation sur la planchette.

Il se peut que vous voyiez des avertissements (warnings) lors de la synthèse. Assurez-vous simplement

que ces avertissements ne concernent que le bloc hd44780_8chars_1line.vhd (hd44780_simple).

Notez que pour l’implémentation vous devez utiliser le fichier addsub.ucf qui est particularisé pour les

noms de terminaux montrés sur le diagramme de la section 10.2.

Pour obtenir le fichier VHDL de votre .bde, ouvrez votre projet ActiveHDL ainsi que votre .bde. Cliquez

ensuite, dans la barre de menu supérieure, sur Diagram > Generate HDL Code. Un code VHDL qui

instancie tous vos blocs selon vos connexions est généré. Vous pouvez alors le récupérer (dans le dossier

compile de votre dossier de projet ActiveHDL).