introduction au langage vhdl - hackbbs - reborn · 2014. 2. 9. · •syntaxe de l'affectation...

43
Copyright ©2008 EMI, REDS@HEIG-VD Introduction VHDL, p 1 Unit Unité d’ enseignement : Bases des syst enseignement : Bases des systè mes logiques (BSL) mes logiques (BSL) Introduction Introduction au langage VHDL au langage VHDL Etienne Messerli Mise à jour le 6 octobre 2008 Introduction VHDL, p 2 Copyright ©2008 EMI, REDS@HEIG-VD Contenu de la pr Contenu de la pr é é sentation sentation 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 automatique 1ère partie : notion de base et instructions concurrentes

Upload: others

Post on 15-Mar-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 2: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 3: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 4: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 5: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 6: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 7: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 8: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 9: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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)

Page 10: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 11: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 12: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 13: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

...

Page 14: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 15: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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.

Page 16: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 17: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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;

Page 18: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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;

Page 19: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 20: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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';

Page 21: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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);

Page 22: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 23: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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)

Page 24: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 25: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 26: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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)

Page 27: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 28: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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.

Page 29: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 30: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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;

Page 31: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 32: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 33: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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';

Page 34: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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;

Page 35: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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);

Page 36: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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;

Page 37: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 38: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 39: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 40: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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)

Page 41: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 42: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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

Page 43: Introduction au langage VHDL - HackBBS - Reborn · 2014. 2. 9. · •Syntaxe de l'affectation d'un signal : L'affectation représente un lien définitif entre le signal et le circuit

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