introduction au langage vhdl - hackbbs - reborn · 2014. 2. 9. · •syntaxe de l'affectation...
TRANSCRIPT
Copyright ©2008 EMI, REDS@HEIG-VD Introduction VHDL, p 1
UnitUnitéé dd’’enseignement : Bases des systenseignement : Bases des systèèmes logiques (BSL)mes logiques (BSL)
IntroductionIntroductionau langage VHDLau langage VHDL
Etienne Messerli
Mise à jour le 6 octobre 2008
Introduction VHDL, p 2Copyright ©2008 EMI, REDS@HEIG-VD
Contenu de la prContenu de la préésentationsentation
• Documents fournis / conseillés
• Evolution des méthodes de conception et langage de haut niveau
• Les concepts de base du langage VHDL
• Le VHDL pour la synthèse automatique1ère partie :notion de base et instructions concurrentes
Introduction VHDL, p 3Copyright ©2008 EMI, REDS@HEIG-VD
DocumentsDocuments
• Manuel VHDL, synthèse et simulation
• Introduction aux logiciels de Mentor Graphics pour la conception de circuits
• Livres recommandés:VHDL. Introduction à la synthèse logique. Philippe Larcher, Eyrolles, 1997
VHDL. Du langage au circuit, du circuit au langage. J. Weber et M. Meaudre, Dunod, 2000
Introduction VHDL, p 4Copyright ©2008 EMI, REDS@HEIG-VD
Manuel VHDLManuel VHDL, synth, synthèèse et simulationse et simulation
Liste des chapitres à lire :1. Introduction
2. Les concepts du langage VHDL
3. Les instructions concurrentesparagraphes 3-1 à 3-4
7. Visseries et astucesparagraphes 7-1 à 7-4
9. Description de systèmes combinatoires
Copyright ©2008 EMI, REDS@HEIG-VD Introduction VHDL, p 5
UnitUnitéé dd’’enseignement : Bases des systenseignement : Bases des systèèmes logiques (BSL)mes logiques (BSL)
Evolution des technologiesEvolution des technologieset des met des mééthodes de conceptionthodes de conception
Introduction VHDL
E. Messerli
REDS@HEIG-VD
Introduction VHDL, p 6Copyright ©2008 EMI, REDS@HEIG-VD
Evolution "Circuits logiques programmables"Evolution "Circuits logiques programmables"
• Depuis les années 1995 :
Formidable évolution des
circuits logiques programmables• Caractéristiques principales :
densité inclu RAM, jusqu'à 20Mbits
fréquence jusqu'à 650 MHz
prix par gate 1996 : ≈ 1ct/gate2004 : ≈ 0,01ct/gate2006 : ≈ 0,0001ct/gate
Introduction VHDL, p 7Copyright ©2008 EMI, REDS@HEIG-VD
Evolution PLD : Evolution PLD : caractcaractééristiquesristiques
• technologie 90 nm et 65 nm, futur 45 nm!
• 11 couches d'interconnections en cuivre (plus alu!)
• multiples arbres d'horloges (32) et PLL (16)
• fréquence jusqu'à 650 MHz
• nombre de gates jusqu'à 10M, flip-flops jusqu'à 200K
• plusieurs Mbits de RAM, jusqu'à 20 Mbits
• blocs pré-câblés (DSP, ALM, SERDES…)24 transceivers (3 à 6,5 GigaBit/s), 900 multiplicateurs 18x18
• Hard Core (PCI, PCI express, Ethernet MAC, …)
• Nbr I/O supérieurs à 1'100, (boitier FBGA1768)
Introduction VHDL, p 8Copyright ©2008 EMI, REDS@HEIG-VD
Evolution PLD : Evolution PLD : prix mai 2008prix mai 2008
• PLDs de quelques francs à 10K francs !
• STRATIX-III FPGA 150K, FBGA1152 : 11'000 $142K LEs, total RAM 7.3Mbits, 8 PLLs 2'850 Kgates
380 Multiplier 18x18,744 I/O 0,004 $/gate
• CYCLONE-III FPGA 5K, EQF144 : 13 $5K LEs, total RAM 414Kbits, 2 PLLs 100 Kgates
23 Multiplier 18x18, 94 I/O 0,0001 $/gate
• MAX-II CPLD 240 LE, TQFP100 6 $240 LEs, total Flash memory 8Kbits, 0 PLLs 4.8 Kgates
0 Multiplier 18x18, 80 I/O 0,001 $/gate
Introduction VHDL, p 9Copyright ©2008 EMI, REDS@HEIG-VD
Ancien CPLD : MAX 7000SAncien CPLD : MAX 7000S
• Technologie EEPROM
• EPM7128SLC84-10$ 30 (-15 $20)
68 IOs
128 MacroCells
128 DFF
env. 2’500 gates
240 MHZ
prix ~ 0,01 $/gate
Introduction VHDL, p 10Copyright ©2008 EMI, REDS@HEIG-VD
Nouveau PLD : MAX II Nouveau PLD : MAX II
• Technologie Flash• FPGA vendu comme CPLD !• EPM1270T144C4
$32 (C5 $23)116 IOs1270 LEs1270 DFF env. 20'000 gates8Kbits memory300 MHzprix ~ 0,0015 $/gate
Introduction VHDL, p 11Copyright ©2008 EMI, REDS@HEIG-VD
FPGA FPGA lowlow costcost : Cyclone II: Cyclone II
• Technologie SRAM• EP2C8F256C8
env. 30.-182 IOs8256 LEs8256 DFF18 multiplicateurs, 2 PLLs env 150‘000 gates (60 x EPM128!)162Kbits memory350 MHzprix ~ 0.0002 Fr/gate Boitier 256-FBGA
Introduction VHDL, p 12Copyright ©2008 EMI, REDS@HEIG-VD
Prix Cyclone III, ALTERAPrix Cyclone III, ALTERA
• Info octobre 2007
• Cyclone III, EP3C2524,624 LEs
66 multiplicateurs 18x18
594Kbits de RAM
4 x PLLs
- EP3C25F324C8 (FBGA)1 pièce $49prix ~ 0.0001 $/gate
Introduction VHDL, p 13Copyright ©2008 EMI, REDS@HEIG-VD
ComplexitComplexitéé et coet coûûts...ts...
• Nouveau développement: PLD indispensable (CPLD, FPGA, HardCopy, ASIC)
• Niveau de complexité augmente rapidement :dizaines vers centaines de milliers de portes,voir millions de portes
• Développement "à la main" trop difficile et trop coûteux :outils informatiques performants etbibliothèques de "pièces" sont indispensables
Introduction VHDL, p 14Copyright ©2008 EMI, REDS@HEIG-VD
MaMaîîtriser la complexittriser la complexitéé
• Description performante et lisibledescription hiérarchique
• Maîtriser les temps de développementaugmenter la productivité de description
• Assurer une pérennité des descriptions
• Pouvoir réutiliser des modules
• Pouvoir simuler les descriptions
Introduction VHDL, p 15Copyright ©2008 EMI, REDS@HEIG-VD
Solution :Solution :
Nouvelles méthodes de conception associées avec un langage de haut niveau
soit : VHDL (préféré en Europe)
ou VerilogVerilog (préféré aux USA)
& Outils de développement modernes
Les bidouilles ne sont plus possibles
Introduction VHDL, p 16Copyright ©2008 EMI, REDS@HEIG-VD
ReprRepréésentations de fonctions logiques :sentations de fonctions logiques :
• Schéma-bloc
• Algorithme, flot de données
• Table de vérité
• Equation logique
• Schéma logique (portes, fonctions courantes)
• Schéma électrique (transistors, résistances, etc)(PLD : table de fusible)
• Photographie du circuit (chip ou carte)
VHDL
Top
Down
Introduction VHDL, p 17Copyright ©2008 EMI, REDS@HEIG-VD
Niveaux de description en VHDLNiveaux de description en VHDL
• Haut niveau comportementalnon synthétisable actuellement
• RTL Register Transfert Level (inclu schéma bloc)
synthétisable
• Netlist de primitiverésultat obtenu après synthèse
• niveau porterésultat obtenu après placement-routage
Introduction VHDL, p 18Copyright ©2008 EMI, REDS@HEIG-VD
Historique du langage VHDLHistorique du langage VHDL
• VHDL signifie :VHSIC Hardware Description Langage
(Very High Speed Integrated Circuit)
• Développé par le DOD (années 1980)(Département Américain de la défense)
• Normes IEEE: 1076 (1987, 1993),1164 (1993) et 1076.3 (1997)
(Institute of Electrical and Electronics Engineers)
Introduction VHDL, p 19Copyright ©2008 EMI, REDS@HEIG-VD
Etablissement d'un standardEtablissement d'un standard
• 1993 révision norme 1076, VHDL93
• 1993 paquetage Std_Logic_1164
• 1997 paquetages arithmétiquesNumeric_bit & Numeric_Std
• 1999 sous-ensemble synthétisable,norme 1076.6
Synthèse : standard établit en 2000
Introduction VHDL, p 20Copyright ©2008 EMI, REDS@HEIG-VD
dia laissdia laisséé vide volontairementvide volontairement
Copyright ©2008 EMI, REDS@HEIG-VD Introduction VHDL, p 21
UnitUnitéé dd’’enseignement : Bases des systenseignement : Bases des systèèmes logiques (BSL)mes logiques (BSL)
Les concepts de baseLes concepts de basedu langage VHDLdu langage VHDL
Introduction VHDLIntroduction VHDL
E. Messerli,E. Messerli,
REDS@HEIGREDS@HEIG--VDVD
Introduction VHDL, p 22Copyright ©2008 EMI, REDS@HEIG-VD
Concepts de base de VHDLConcepts de base de VHDL
• Structure similaire à ADA, avec
→ nouvelle classe d’objets : les signaux→ types physiques→ notion de temps→ programme description d’un modèle = ensemble
de processus concurrents→ entity (interface) / architecture (body)→ bibliothèques
Introduction VHDL, p 23Copyright ©2008 EMI, REDS@HEIG-VD
UnitUnitéé de conception de conception (module VHDL)(module VHDL)
• Une entité (entity)
• Une architecture (architecture)
• Une configuration
• Une ou plusieurs bibliothèques
Introduction VHDL, p 24Copyright ©2008 EMI, REDS@HEIG-VD
Unité de conception
architecture
UnitUnitéé de conception (suite)de conception (suite)
Configuration
Library
packagepackage
package
Library
packagepackage
package
entity
architecture
Introduction VHDL, p 25Copyright ©2008 EMI, REDS@HEIG-VD
Les Les ééllééments du langage ments du langage ……
• Mots clés : mots réservés du langagele langage définit 100 mots réservés (voir annexe)
• Instructions VHDL terminées par le séparateur«;»
-- exemple instruction terminée par ;Sortie_o <= (A_i or not B_i) and C_i;
Introduction VHDL, p 26Copyright ©2008 EMI, REDS@HEIG-VD
…… les les ééllééments du langage ments du langage ……
• Commentaires :débutent par deux tirets « -- », se terminent avec la ligne
--Ceci est un commentaire--sur deux lignes
entity Exemple is -- commentaireport (A : in Std_Logic; -- commentaire
...
Introduction VHDL, p 27Copyright ©2008 EMI, REDS@HEIG-VD
…… les les ééllééments du langage ments du langage ……
• Identificateurs :ils doivent commencer par une lettre
ils comportent des lettres (minuscules ou majuscules), des chiffres et des soulignés (underscore)
un seul souligné (underscore) de suite :Bus_Data_Interne
le VHDL ne distingue pas les majuscules des minuscules
exemple d'identificateurs identiques :Bus_Data, BUS_DATA, bus_data, BuS_DatA
Introduction VHDL, p 28Copyright ©2008 EMI, REDS@HEIG-VD
Les objets du langageLes objets du langage
Objet : information manipulée par le langage
Ils sont répartis en quatre classes :constantes : objets de valeurs fixes
variables : objets appartenant au monde software
signaux : objets appartenant au monde hardware
fichiers : objets servant à stocker des valeurs
On parle fréquemment de classes d'objets
Introduction VHDL, p 29Copyright ©2008 EMI, REDS@HEIG-VD
Les types du langageLes types du langage
• scalaires :énumérés (Boolean, Std_Logic,..),entiers (Integer, ...), physiques (Time),flottant (Real)
• composites : tableau (array)type Std_Logic_Vector is array( natural range<>) of Std_Logic;
Types ci-dessous pas utilisé dans l'unité BSL :• accès : pointeur pour accéder à des objets (dynamique)
• fichier : séquence de valeur d'un type donné
Introduction VHDL, p 30Copyright ©2008 EMI, REDS@HEIG-VD
Les opLes opéérateurs du langagerateurs du langage
• Opérateurs logiques : and,or,nand,nor,xor et xnor
• Opérateur relationnel : =, /=, <, <=, > et >=
• Opérateurs de décalage : sll,srl,sla,sra,rol et ror
• Opérateur d'addition : +, - et & concaténation & : Vecteur_4Bits <= A & B & "10";
• Opérateurs de signe + et -
• Opérateur de multiplication : *, /, mod et rem
• Opérateur divers : **, abs et not
Il est possible de surcharger les opérateurs, c'est à dire de leur donner une signification pour d'autres types.
Introduction VHDL, p 31Copyright ©2008 EMI, REDS@HEIG-VD
Types de Types de portport
• in : entrée
• out : sortie
• inout : entrée/sortie,signal bidirectionnel
• buffer : sortie qui peut être relueNe pas utiliser
Introduction VHDL, p 32Copyright ©2008 EMI, REDS@HEIG-VD
Types de Types de port port (suite)(suite)
port out
port inout
port buffer
Ne pas utiliserNe pas utiliser
Introduction VHDL, p 33Copyright ©2008 EMI, REDS@HEIG-VD
Les signauxLes signaux
• Modélisation des signaux logiques (interconnections)
• Ont des valeurs définies dans le temps : un passé, un présent et un futur (chronogramme)
• Prennent la nouvelle valeur qui leur est affectée qu’après un délai non nul (temps de propagation)
Introduction VHDL, p 34Copyright ©2008 EMI, REDS@HEIG-VD
Affectation d'un signalAffectation d'un signal
• Syntaxe de l'affectation d'un signal :
L'affectation représente un lien définitif entre le signal et le circuit générant l'expression (connexion)
L'affectation du signal ne modifie pas la valeur courante mais les valeurs futures
signal <= expression;
Introduction VHDL, p 35Copyright ©2008 EMI, REDS@HEIG-VD
…… affectation d'un signalaffectation d'un signal
• Affecter une expression à un signal correspond àconnecter un signal sur la sortie d'une porte.
• Plusieurs affectations sur un même signal correspondà un
court-circuit !
Introduction VHDL, p 36Copyright ©2008 EMI, REDS@HEIG-VD
Affectation de variableAffectation de variable
• Syntaxe de l'affectation d'une variable :
L'affectation de la variable est instantanée, ensuiteil n'existe plus aucun lien entre la variable et l'expression
variable := expression;
Introduction VHDL, p 37Copyright ©2008 EMI, REDS@HEIG-VD
Le type Le type Std_uLogicStd_uLogic (type (type éénumnuméérréé))
Défini par le paquetage IEEE.Std_Logic_1164
type Std_uLogic is (
'U',-- état non initialisé'X',-- état inconnu fort'0',-- état logique 0 fort'1',-- état logique 1 fort'Z',-- état haute impédance'W',-- état inconnu faible 'L',-- état logique 0 faible 'H',-- état logique 1 faible'-' -- état indifférent, don't care );
Introduction VHDL, p 38Copyright ©2008 EMI, REDS@HEIG-VD
Std_LogicStd_Logic et et Std_ulogicStd_ulogic
• Std_ulogic : L'interconnexion entre deux signaux est interdite (unresolved).
cas des sorties standards des circuits numériques. Elles ne peuvent pas être connectées ensembles.
• Std_Logic : Interconnexion possible grâce àl'utilisation d'une fonction de résolution
correspond aux sorties spéciales (trois états, collecteur ouvert, ..) qui sont interconnectées.
Type Std_Logic généralement utilisé dans l'industrie => utilisé pour le cours
Introduction VHDL, p 39Copyright ©2008 EMI, REDS@HEIG-VD
constant resolution_table : stdlogic_table := (-- ----------------------------------------------------------- | U X 0 1 Z W L H - | |-- ---------------------------------------------------------
( 'U', 'U', 'U', 'U', 'U', 'U', 'U', 'U', 'U' ), -- | U |( 'U', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X' ), -- | X |( 'U', 'X', '0', 'X', '0', '0', '0', '0', 'X' ), -- | 0 |( 'U', 'X', 'X', '1', '1', '1', '1', '1', 'X' ), -- | 1 |( 'U', 'X', '0', '1', 'Z', 'W', 'L', 'H', 'X' ), -- | Z |( 'U', 'X', '0', '1', 'W', 'W', 'W', 'W', 'X' ), -- | W |( 'U', 'X', '0', '1', 'L', 'W', 'L', 'W', 'X' ), -- | L |( 'U', 'X', '0', '1', 'H', 'W', 'W', 'H', 'X' ), -- | H |( 'U', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X' ) -- | - |
);
Fonction rFonction réésolution pour le type solution pour le type Std_LogicStd_Logic
• La valeur affectée au point d'interconnexion de deux sorties Std_logic est régie par la table de résolution suivante:
Introduction VHDL, p 40Copyright ©2008 EMI, REDS@HEIG-VD
DDééclaration d'un signal claration d'un signal Std_logicStd_logic
• Syntaxe de la déclaration
A l'instant t=0ns le signal aura l'état non initialisé 'U' (Uninitialized)
• Possible de donner une valeur initiale
Cette initialisation est purement "soft", elle est exécutée à l'instantt=0 ns. Elle n'est pas synthétisable.
signal A : Std_Logic;
signal A : Std_Logic := '0';
Introduction VHDL, p 41Copyright ©2008 EMI, REDS@HEIG-VD
Le type Le type Std_Logic_VectorStd_Logic_Vector ……
• Le type Sdt_Logic _Vector est défini dans le paquetage Std_Logic_1164 de la bibliothèque IEEE.
• C'est un type composé de Sdt_Logic :
type Std_Logic_Vector is
array(natural range<>) of Std_Logic;
Introduction VHDL, p 42Copyright ©2008 EMI, REDS@HEIG-VD
…… type type Std_Logic_VectorStd_Logic_Vector
• Généralement, lors de la déclaration d'un signal, la taille du vecteur est spécifiée :
Remarque :Il est possible de ne pas définir la taille d'un vecteur. Nous parlons alors de vecteur non-contraint. Il s'agit d'une application particulière pour les descriptions réutilisables
signal Vecteur : Std_Logic_Vector(7 downto 0);
Introduction VHDL, p 43Copyright ©2008 EMI, REDS@HEIG-VD
La notion de tempsLa notion de temps
• Le VHDL définit la notion de tempsCette notion s'avère indispensable pour la description de matériel
Cette notion était inconnue des précédents langages tels : CUPL, ABEL, ..
• Il sera possible de modéliser le comportement réel des portes logiques (temps de retard)
• Même langage pour : synthèse et simulation
Introduction VHDL, p 44Copyright ©2008 EMI, REDS@HEIG-VD
…… notion de tempsnotion de temps
• Permet de simuler l’écoulement du temps
• Est intégrée à la notion de signal :
B <= A after 10 ns;
AA
BB10ns
Introduction VHDL, p 45Copyright ©2008 EMI, REDS@HEIG-VD
Le pilote d'un signalLe pilote d'un signal
La notion de temps permet d'exprimer l'évolution d'un signal
Nous parlerons du PILOTE d'un signal
'1'20 ns
'0' '1'
30 ns
'0'
40 ns
'1'
10 ns
Valeur courante du signal
couple date/valeur prévue
Exemple du pilote d'une horloge à 50 MHz
'0'
10 ns
valeurpassée
Introduction VHDL, p 46Copyright ©2008 EMI, REDS@HEIG-VD
DDééroulement concurrent et sroulement concurrent et sééquentielquentiel
• Dans un langage informatique :Les instructions ont un déroulement séquentiel
• Dans un circuit :Toutes les portes fonctionnent simultanément
Tous les signaux évoluent de manière concurrente
• Le langage VHDL dispose d'instructions concurrentes pour la description de circuits (matériel)
Copyright ©2008 EMI, REDS@HEIG-VD Introduction VHDL, p 47
UnitUnitéé dd’’enseignement : Bases des systenseignement : Bases des systèèmes logiques (BSL)mes logiques (BSL)
Le VHDL pour laLe VHDL pour lasynthsynthèèse automatiquese automatique
Introduction VHDL
E. Messerli
REDS@HEIG-VD
Introduction VHDL, p 48Copyright ©2008 EMI, REDS@HEIG-VD
Fausses idFausses idéées sur le langage VHDLes sur le langage VHDL
Le langage en tant que tel ne garantit pas :la qualité des descriptions
la portabilité des descriptions
les descriptions soient synthétisables
le matériel obtenu soit optimum
Mauvais concepteur + VHDL = catastrophe
Introduction VHDL, p 49Copyright ©2008 EMI, REDS@HEIG-VD
Exemple de description VHDLExemple de description VHDL
Soit la description VHDL suivante :
Horloge <= not Horloge after 50 ns;
Cela correspond au chronogramme suivant :
HORLOGE
100 ns
Introduction VHDL, p 50Copyright ©2008 EMI, REDS@HEIG-VD
Description d'une horloge Description d'une horloge àà 10 Mhz10 Mhz
• Description correcte au sens du langage
• Description parfaitement simulable
• Aucun circuit ne correspond à cette fonctionnalité
La description est non synthétisable
Introduction VHDL, p 51Copyright ©2008 EMI, REDS@HEIG-VD
RRééalisation d'un circuit : alisation d'un circuit : Design flowDesign flowDescription VHDL
synthétisable (*.vhd)
Synthétiseur Precision
Traduction
Placement routageQuartus
Intégration
Programmation circuit
fichiers program. *.pof et rapport *.rpt
fichierVDHL
(*.vho)
Description logique
netlist (*.edf)fichierVDHL
Définition pins (*.tcl)
Console de simulation "Console_REDS"
SIMULATEURModelSim
VHDL
fonctionnelle
temporelle
Simulation
Manuelle
Fichier de simulation VHDL (*_tb.vhd)
Automatique
Introduction VHDL, p 52Copyright ©2008 EMI, REDS@HEIG-VD
Description VHDLsynthétisable (*.vhd)
Programmation circuit
………………………….
…………………………
fichierVDHL
(*.vho)
Description logique
…………………….fichierVDHL
…………
…………
Synthétiseur ……………….
Placement routage
……………….
SIMULATEUR
………………
VHDL
fonctionnelle
temporelle
RRééalisation d'un circuit : alisation d'un circuit : Design flowDesign flow
Introduction VHDL, E. Messerli, ReDS@HEIG-VD, janvier 2007
Console de simulation manuelle "REDS_Console"
Simulation
Fichier de simulation VHDL (*_tb.vhd)
Introduction VHDL, p 53Copyright ©2008 EMI, REDS@HEIG-VD
CaractCaractééristiques des deux outilsristiques des deux outils
• Le simulateur :Interprète le langage VHDL
Comprend l'ensemble du langage VHDL
• Le synthétiseur :Traduit la description VHDL en une netlist logique
Comprend uniquement un sous-ensemble du langage VHDL
Introduction VHDL, p 54Copyright ©2008 EMI, REDS@HEIG-VD
Le troisiLe troisièème outilme outil
Finalement la netlist obtenue doit être
intégrée dans le circuit cible.
• C'est l'outil de placement et routageCelui-ci est fourni par le fabricant du circuit
Les temps de propagations seront déterminés
Le fonctionnement logiquen'est pas modifié durant cette étape
Introduction VHDL, p 55Copyright ©2008 EMI, REDS@HEIG-VD
Ensemble synthEnsemble synthéétisable du VHDLtisable du VHDLEnsemble du VHDL
VHDL synthétisableoutil Y
VHDL synthétisableoutil X
VHDL SynthVHDL Synthéétisabletisable
VHDL
du cours
Introduction VHDL, p 56Copyright ©2008 EMI, REDS@HEIG-VD
Conception avec le VHDLConception avec le VHDL
• Il faut penser CIRCUIT.• Une bonne conception commence par une
décomposition du système (hiérarchie).
• Il faut imaginer l'architecture physique du système.
• Le VHDL n'est pas un outil de CONCEPTION.
• Le VHDL est un outil de DESCRIPTION.
Introduction VHDL, p 57Copyright ©2008 EMI, REDS@HEIG-VD
La portabilitLa portabilitéé des descriptionsdes descriptions
• Afin de garantir une bonne portabilité des descriptions :Méthode indispensable
Une seule fonction par module VHDL
Faire des descriptions simples et lisibles
Expliciter les éléments mémoires
Utiliser uniquement les bibliothèques standardisées IEEE
Introduction VHDL, p 58Copyright ©2008 EMI, REDS@HEIG-VD
Structure dStructure d’’un module VHDLun module VHDL
• Un module VHDL est composé de :Référence à des bibliothèques
Entité (entity) :Définit l'interconnexion avec l'extérieur
Architecture (architecture) :Définit le fonctionnement interne
Introduction VHDL, p 59Copyright ©2008 EMI, REDS@HEIG-VD
Structure de lStructure de l’’entitentitéé ((entityentity))
-- Librairie IEEElibrary IEEE;use IEEE.Std_Logic_1164.all; --Defini type Std_Logic
entity Exemple isport(Entree_i : in Std_Logic;
Vecteur_i : in Std_Logic_Vector(3 downto 0); Sortie_o : out Std_Logic;BiDir_io : inout Std_Logic);
end Exemple;
Introduction VHDL, p 60Copyright ©2008 EMI, REDS@HEIG-VD
Structure de lStructure de l’’architecturearchitecture((architecturearchitecture))
architecture Style_Description of Exemple is
--zone de déclaration
begin
--Instructions concurrentes .......
process (Liste_De_Sensibilité)begin
--Instructions séquentielles .......end process;
end Style_Description;
Introduction VHDL, p 61Copyright ©2008 EMI, REDS@HEIG-VD
Architecture: zone de dArchitecture: zone de dééclaration claration
• Déclaration de signaux internes
• Déclaration de constantes
• Déclaration de composants
• Déclarations de types, de procédures et de fonctions(pour utilisateurs expérimentés)
signal Interne_s : Std_Logic;signal Vect_s : Std_Logic_Vector(4 downto 0);
constant Val_c : Std_Logic_Vector(2 downto 0):="101";
Introduction VHDL, p 62Copyright ©2008 EMI, REDS@HEIG-VD
Architecture, zone de descriptionArchitecture, zone de description
• Déroulement concurrent :toutes les instructions concurrentes
les processus (instr. concurrente !)
• Si plusieurs processus :exécution concurrente entre les processus
• Déroulement séquentiel :UNIQUEMENT à l'intérieur d'un processus
Introduction VHDL, p 63Copyright ©2008 EMI, REDS@HEIG-VD
Les styles de descriptionLes styles de description
Styles de descriptions Abréviations
• Equations logiques Logique
• Table de vérité TDV
• Flot de données Flot_Don
• Comportementale Comport
• Machine d'états M_Etat
• Structurelle Struct
Introduction VHDL, p 64Copyright ©2008 EMI, REDS@HEIG-VD
Les instructions concurrentesLes instructions concurrentes
• Affectation Y <= A and C;
• Affectation avec conditionY <=.. when .. else .. ;
• Instruction de sélectionwith .... select
• Instanciation de composants
Introduction VHDL, p 65Copyright ©2008 EMI, REDS@HEIG-VD
Instruction dInstruction d’’affectation affectation ……
• Syntaxe de l'affectation simple :
Signal <= Expression;
Exemples d'expression :Expression Operator Expression
Identifier
Aggregat
…
Exemples d'affectation :Sortie <= Sel0 or Sel1 or Sel2;
Signal <= Vect_8Bits(3);
Vect(0) <= (A or B) and C;
Signal <= Entree;
Introduction VHDL, p 66Copyright ©2008 EMI, REDS@HEIG-VD
…… instruction dinstruction d’’affectation affectation ……
• Syntaxe de l'affectation avec une condition :
Signal1 <= Expression_True when Condition elseExpression_False;
Exemples :Egal <= ‘1’ when (Valeur="1001") else
'0';
Result <= A or B when (c='1') and (En='1') else
'0';
Introduction VHDL, p 67Copyright ©2008 EMI, REDS@HEIG-VD
…… instruction dinstruction d’’affectationaffectation
• Syntaxe de l'affectation avec plusieurs conditions :
Signal1 <= Expression when Cond_booleen else
Expression when Cond_booleen else
...
Expression;
Exemple :Out <= ‘1’ when (Force1 = '0') else
A and B when (FctAnd = '1') else
A ;
Remarque : L'instruction when…else implique une notion de priorité entre les différentes conditions
Introduction VHDL, p 68Copyright ©2008 EMI, REDS@HEIG-VD
Instruction de sInstruction de séélection lection ……
• Syntaxe de l'instruction de sélection :
Remarque : le terme others définit toutes les autrescombinaisons possibles de l'état du signalde commande
with Signal_Commande select
Signal_Affecte <= Expression1 when "Com_Etat1",
Expression2 when "Com_Etat2",
...
ExpressionN when others;
Introduction VHDL, p 69Copyright ©2008 EMI, REDS@HEIG-VD
…… instruction de sinstruction de séélectionlection
Exemple :
Remarque : le terme others représente les combinaisons "UH", "ZZ", "X0", … du signal Val_Sel
with Val_Sel select
Sortie <= Entr_A when "00",
Entr_B when "01",
Entr_C when "10",
Entr_D when "11",
'X' when others;
Introduction VHDL, p 70Copyright ©2008 EMI, REDS@HEIG-VD
Instanciation d'un composant Instanciation d'un composant ……
Dans la zone déclaration de l'architecture :
Dans la zone de description de l'architecture :
Component Nom_Composant is -- is accepte en VHDL93port (Ports_Entree : in Std_Logic;
.....Ports_Sortie : out Std_Logic);
end component;for all : Nom_Composant use
entity work.Nom_Entity(Style_Description);
[Label:] Nom_Composant port map
(Signal_Entrees => Signal_Achitecture1_s,
Signal_Sorties => Signal_Achitecture2_s);
Introduction VHDL, p 71Copyright ©2008 EMI, REDS@HEIG-VD
…… instanciation d'un composant instanciation d'un composant ……
architecture Struct of Exemple iscomponent Porte_Et is -- is accepte en VHDL93
port (A_i, B_i : in Std_Logic;Z_o : out Std_Logic);
end component;for all : Porte_Et use
entity work.Porte_Et(Flot_Don);begin
..U1: Porte_Et port map (A_i => Entr_i,
B_i => Signal_s,Z_o => Sortie_o);
..end Struct;
Introduction VHDL, p 72Copyright ©2008 EMI, REDS@HEIG-VD
…… instanciation d'un composantinstanciation d'un composantCas d'une sortie non utilisée (unconnected) :
architecture Struct of Exemple iscomponent Module
port ( …Sortie_o : out Std_Logic
… );end component;for all : Module use entity work.Module(Comport);
begin..
U1: Module port map ( …Sortie_o => open,--Sortie_o => pas connecté
… );..
end Struct;
Introduction VHDL, p 73Copyright ©2008 EMI, REDS@HEIG-VD
ExercicesExercices
• Donnez la description VHDL correspondant à la table de vérité suivante :
In2 In1 In0 X Y
0 0 0 0 00 0 1 1 10 1 0 0 10 1 1 1 01 0 0 1 11 0 1 0 01 1 0 0 11 1 1 1 0
Introduction VHDL, p 74Copyright ©2008 EMI, REDS@HEIG-VD
ExercicesExercices
• Description d'un multiplexeur 2 à 1 :La sortie Y prend la valeur B lorsque Sel_B est à 1 sinon elle prend la valeur A.
• Description de comparaisonsCircuit qui permet la comparaison de deux nombres sans signe de 4 bits, Na et Nb, comme suit :
- sortie PG est activée si Na est plus grand que Nb
- sortie PP est activée si Na est plus petit que Nb
- sortie EG est activée si Na est égal à Nb
Copyright ©2008 EMI, REDS@HEIG-VD Introduction VHDL, p 75
UnitUnitéé dd’’enseignement : Bases des systenseignement : Bases des systèèmes logiques (BSL)mes logiques (BSL)
AnnexesAnnexes
Introduction VHDLIntroduction VHDL
E. MesserliE. Messerli
REDS@HEIGREDS@HEIG--VDVD
Introduction VHDL, p 76Copyright ©2008 EMI, REDS@HEIG-VD
Les mots rLes mots rééservservéés du VHDL93 s du VHDL93 ……absaccessafteraliasallandarchitecturearrayassertattribute
beginblock
bodybufferbus
casecomponentconfigurationconstant
disconnectdownto
else
elsifendentityexit
fileforfunction
generategenericgroupguarded
Introduction VHDL, p 77Copyright ©2008 EMI, REDS@HEIG-VD
…… mots rmots rééservservéés du VHDL93 s du VHDL93 ……
ifimpureininertialinoutis
labellibrarylinkageloop
map
mod
nandnewnextnornotnull
ofonopenor
othersout
packageportpostponedprocedureprocessprotectedpure
rangerecord
Introduction VHDL, p 78Copyright ©2008 EMI, REDS@HEIG-VD
…… mots rmots rééservservéés du VHDL93s du VHDL93
registerrejectremreportreturnrolror
selectseveritysignalsharedsla
sllsrasrlsubtype
thentotransporttype
unaffectedunitsuntil
usevariable
waitwhenwhilewith
xnorxor
Introduction VHDL, p 79Copyright ©2008 EMI, REDS@HEIG-VD
Historique des diffHistorique des difféérentesrentesnormalisations du langage VHDL normalisations du langage VHDL ……
• 1980 : Début du projet financé par le DoD
• 1987 : Standard IEEE Std 1076-1987 (VHDL 87)
• 1993 : Standard IEEE Std 1164-1993 (Std_Logic_1164)
• 1993 : Standard IEEE Std 1076-1993 (VHDL 93)
• 1995 : Standard IEEE Std 1076.4 (Vital_Primitive et Vital_Timing)
• 1997 : Standard IEEE Std 1076.3 (Numeric_Bit et Numeric_Std)
• 1999 : Standard IEEE Std 1076.6 (Standard for VHDL Register Transfer Level Synthesis)
• 2000 : Standard IEEE Std 1076-2000 (VHDL 2000)
• 2002 : Standard IEEE Std 1076-2002 (VHDL 2002)
• 2004 : Standard IEEE Std 1076.6 -2004
Introduction VHDL, p 80Copyright ©2008 EMI, REDS@HEIG-VD
…… historique des diffhistorique des difféérentesrentesnormalisations du langage VHDLnormalisations du langage VHDL
Autres étapes de l'historique
• 1994 : Approbation ANSI ( ANSI/IEEE Std 1076-1993 )
• 1996 : Standard IEEE Std 1076.2 ( Mathematical Packages )
Autres normalisations
• 1999 : Standard IEEE-1076.1, VHDL-AMS (modélisation mixte)
Introduction VHDL, p 81Copyright ©2008 EMI, REDS@HEIG-VD
RRééfféérences EIVDrences EIVD
• Présentations des collèguesSerge BoadaMaurice Gaumain
• Manuels VHDL Darryl GautheyClaude GuexMichel SalaminYves Sonnay
Introduction VHDL, p 82Copyright ©2008 EMI, REDS@HEIG-VD
RRééfféérences bibliographiquesrences bibliographiques
[1] VHDL, Introduction à la synthèse logique, Philippe Larcher, Eyrolles, 1997 (Livre simple et facile d'accès, très bien pour les étudiants)
[2] Le langage VHDL, J. Weber & M. Meaudre, Dunod, 2001(Bon livre pour débuter en VHDL)
[3] VHDL. Méthodologie de design et techniques avancées. Thierry Schneider, Dunod, 2001
[4] Digital System Design with VHDL, 2000, Mark Zwolinski, Prentice Hall
[5] VHDL du langage à la modélisation, Airiau & Bergé & Olive & Rouillard, édition 1990 et 1996, PPUR (référence pour les instructions VHDL)
[6] VHDL Made Easy !, D. Pellerin et D. Taylor, Hardcover, 1996
[7] IEEE Standard VHDL Language Reference Manual, ANSI/IEEE Std 1076-1993
[8] IEEE Standard Multivalue Logic System for VHDL Model Interoperability,IEEE Std 1164-1993
[9] IEEE Standard for VHDL Register Transfer Level Synthesis, IEEE 1076.6-1999
Introduction VHDL, p 83Copyright ©2008 EMI, REDS@HEIG-VD
Guides de rGuides de rééfféérence et articlesrence et articles
[10] The VHDL Golden Reference Guide, compatible IEEE std 1076-2002disponible chez : Doulos, http://www.doulos.com/
[11] ACTEL HDL Coding, Style guide, ACTEL, Edition 2003disponible en PDF sur le site http://www.actel.com/
[12] Circuits programmables et langages de conception, une évolution en parallèle, C. Guex & E. Messerli, Revue Vision 1998, EIVD
[13] Conception numérique: Description VHDL et synthèse, D. Gauthey &E. Messerli, Revue Vision 2000, EIVD
Introduction VHDL, p 84Copyright ©2008 EMI, REDS@HEIG-VD
RRééfféérences de cours VHDLrences de cours VHDL
[a] Cours Expert VHDL, design & verification, Doulosprésenté par Bertrand Cuzeau, septembre 2001, 2002
[b] Le Langage VHDL pour la Conception et le Test des Circuits Logiques Programmables, A.L.S.E., Paris, Bertrand Cuzeau, juin 1999.
[c] Cours : VHDL tout simplement …., Multi Video Designs, M. E. Garcia,mars 2000
[d] Conception numérique : méthode et langage VHDL, Etienne Messerli, EIVD, édition 2000 à 2005
[e] Cours VHDL avancé, Etienne Messerli, EIVD, octobre 2004
Introduction VHDL, p 85Copyright ©2008 EMI, REDS@HEIG-VD
Liens internetLiens internet
• Informations pratiques sur le VHDL avec exempleshttp://www.alse-fr.com/tech_corner.html
• Normes IEEEhttp://www.ieee.com/
• Informations des vendeurs d'outils EDAhttp://www.vhdl.org/
Introduction VHDL, p 86Copyright ©2008 EMI, REDS@HEIG-VD
FIN prFIN préésentation VHDL !sentation VHDL !
Questions