You are on page 1of 141

III.

VHDL

ETRS 511

Plan gobal du cours


I. Introduction II. FPGA III. VHDL


Introduction Rgles dcriture Units de conception - Objets VHDL - Oprateurs Assignations concurrentes/squentielles Assignations conditionnelles/slectives Composant Machine tats Rgles de conception Simulation Complments (fonctions, procdures, packages, )
2

ETRS 511

Introduction
Historique

1981 : le DoD (department of defence) initie le projet VHSIC


(Very High Speed Integrated Circuit) IBM, TI, Intermetrix

langage commun pour la description des circuits


1987 : normalisation du VHDL (VHSIC Hardware Description


Language) Engineers)

par lIEEE (Institute of Electrical and Electronic

La norme est rvise tous les 5 ans (P1076-87, P1076-93, P10762000, P1076-2002, P1076-2006) Il existe aussi des normes correspondant des groupes de travail sur des extensions ou des restrictions pour des besoins spcifiques (P1076.1, P1076.6-2004,)

ETRS 511

Introduction
Pourquoi et o utilise-t-on le VHDL?
Flot de conception

ETRS 511

Introduction
Pourquoi et o utilise-t-on le VHDL?
Flot de conception

ETRS 511

Introduction
Quest ce que le VHDL?

Langage de modlisation et/ou de synthse de systmes lectroniques

Langage gnraliste simulation Langage prs des portes logiques VHDL de synthse Systme de CAO : Schma ou VHDL ou mixte

ETRS 511

Introduction
Quest ce que le VHDL?

Langage normalis, sens tre indpendant de tout compilateur ou simulateur Cible : CPLD, FPGA, ASIC Conception de haut niveau dabstraction (modification rapide de la conception, rduction cycle, rduction risques, ) Meilleur gestion de projet, dveloppement de grosses conception (structure hirarchise) Adquation entre le style dcriture et les compilateurs : rsultats en terme de vitesse ou de compacit diffrents
ETRS 511
7

Plan gobal du cours


I. Introduction II. FPGA III. VHDL


Introduction Rgles dcriture Units de conception - Objets VHDL - Oprateurs Assignations concurrentes/squentielles Assignations conditionnelles/slectives Composant Machine tats Rgles de conception Simulation Complments (fonctions, procdures, packages, )
8

ETRS 511

Rgles dcriture

VHDL 87 (obsolte), VHDL 93, VHDL 2000 (trs peu de changements) La simulation comportementale est indpendante du style dcriture, du compilateur utilis et de la cible ; pas la synthse Aucune distinction entre les minuscules et les majuscules Commentaires : commencent par 2 tirets et se prolongent jusqu la fin de la ligne. Ils sont ignors par le compilateur

ETRS 511

Rgles dcriture

En gnral, les instructions se terminent par ;

Rgles de dnomination :

26 lettres de lalphabet, les 10 chiffres et _ Le premier caractre est une lettre Il ne peut y avoir 2 _ de suite Lidentifieur ne peut se terminer par _

ETRS 511

10

Rgles dcriture

Les valeurs explicites:


Entier : 123 1_2_3 Entier bas : base#valeur# 2#11# (3) 16#1F# (31) Valeurs physiques : toujours laisser un espace entre la valeur et lunit 100 ps 2 ns 5V Caractre : entre apostrophe a @ Bit : entre apostrophe 0 1 Z Chane de caractres : entre guillemets (attention l les minuscules et majuscules sont significatives) "Bonjour " Bus : entre guillemets "01111001 " Boolen : true false
11

ETRS 511

Mots rservs

http://amouf.chez.com/syntaxe.htm
ETRS 511
12

Plan gobal du cours


I. Introduction II. FPGA III. VHDL


Introduction Rgles dcriture Units de conception - Objets VHDL - Oprateurs Assignations concurrentes/squentielles Assignations conditionnelle/slective Composant Machine tats Rgles de conception Simulation Complments (fonctions, procdures, packages, )
13

ETRS 511

Units de conception
Structure dun fichier VHDL

ETRS 511

14

Units de conception
Library

IEEE.STD_LOGIC_1164.all

Permet de dfinir les types, oprateurs et fonctions de conversion de base

IEEE.numeric_std.all

Dfinit les types signed et unsigned. Un vecteur reprsente alors un nombre sign ou non sign reprsent en C2

Permet dutiliser les oprateurs arthmtiques + et x sur des vecteurs de bits

Fournit des fonctions de conversion entre entiers et vecteurs


15

ETRS 511

Units de conception
Library
IEEE.numeric_std.all

ETRS 511

16

Units de conception
Entity

Dfinition de lentit : Vue externe dun composant Spcifications :


Ports dentre et de sortie Type Mode : - entre (in) - sortie (out) - entre/sortie (inout) - sortie avec retour en interne (buffer)

Remarque : le nom dun fichier VHDL doit tre celui de lentit quil contient ETRS 511
17

Units de conception
Entity

a b

8 8

Comparateur

egal

Le mode in protge le signal en criture Le mode out protge le signal en lecture

ETRS 511

18

Units de conception
Exercice
Ecrire lentit dun additionneur Add4 de deux mots, a et b, de 4 bits en entre, avec une retenue entrante ci, et une sortie somme sur 4 bits avec une retenue sortante co.

a b ci

4 4

Add4

somme co

ETRS 511

19

Units de conception
Exercice
Ecrire lentit correspondante au schma de ce multiplexeur :

ETRS 511

20

Units de conception
Exercice
Dessiner le schma du composant correspondant lentit suivante :
b clk raz parite parite

ETRS 511

21

Units de conception
Architecture

Toute architecture est associe une entit Dfinition : Larchitecture dfinit les fonctionnalits et les relations temporelles. Elle dcrit le comportement du composant.
Zone de dclaration

Zone de dfinition

ETRS 511

22

Units de conception
Architecture

Il peut y avoir plusieurs architectures associes un mme composant

2 architectures dun mme composant

Remarque : linstruction after nest pas synthtisable ! ETRS 511


23

Objets VHDL

5 sortes dobjets

Les ports dentre/sortie (PORT) Les signaux (SIGNAL) Les constantes (CONSTANT) Les variables (VARIABLE) - - cf partie assignation squentielle Les paramtres (GENERIC) - - cf partie complments

Les objets reprsentent une valeur Ils doivent tre typs

ETRS 511

24

Objets VHDL
Type

Tout objet a un format prdfini Seules des valeurs de ce format peuvent tre affectes cet objet Plusieurs catgories de types

Types scalaires (numriques et numrs) Types composs (tableaux et vecteurs)

Possibilit de dfinir de nouveaux types

ETRS 511

25

Objets VHDL
Type

Types scalaires :

Types numrs : liste de valeurs

Types numriques : domaine de dfinition range to downto

Types composs : collections dlments de mme type reprs par des valeur dindices

ETRS 511

26

Objets VHDL
Type

Exemple de types prdfinis :


Bit Boolean Integer Std_logic Signed, Unsigned dans la bibliothque std_logic_1164 Bit_vector, Std_logic_vector dans la bibliothque numeric_std Natural : sous type de integer limit aux nombres 0 Positif : sous type de integer limit aux nombres > 0 Character, string
27

ETRS 511

Objets VHDL
Type

Std_logic :

ETRS 511

28

Objet VHDL
Exercice Type
Dfinir un type pental compos de chiffres de 0 4

Dfinir un type numr etat compos des valeurs OK, HS, ERROR

ETRS 511

29

Objets VHDL
Signal

Un signal reprsente une quipotentielle Il doit tre dclar avant utilisation Il peut tre dclar :

dans un package, il est alors global dans une entity, il est alors commun toutes les architectures de lentit dans larchitecture, il est alors local

ETRS 511

30

Objets VHDL
Signal

Laffectation se fait avec loprateur <= Accs des sous-lments avec loprateur alias
alias lsb : bit_vector(7 downto 0) is add_bus(7 downto 0) ;

Initialisation rapide
Toto <=(others => 0); est quivalent Toto <= "0000000 ";

ETRS 511

31

Objets VHDL
Constant

Une constante doit tre dclare avant utilisation Elle peut tre dclare :

dans un package, elle est alors globale dans une entity, elle est alors commune toutes les architectures de lentit dans larchitecture, elle est alors locale

Laffectation se fait avec loprateur :=

ETRS 511

32

Objets VHDL
Variable

Une variable doit tre dclare avant utilisation Elle ne peut tre dclare que dans un process Laffectation se fait avec loprateur :=

ETRS 511

33

Oprateurs

Oprateurs logiques (sur boolens, bits et drivs)

Oprateurs relationnels (sur types scalaires ou drivs (signed, unsigned))

ETRS 511

34

Oprateurs

Oprateurs bits (sur vecteurs de bits et types numriques)

Oprateurs arithmtiques (sur types numriques : entiers, signs, non signs, flottant)

Oprateurs de dcalage (sur tableaux de bits ou tendus) : sll, srl, sla, sra, rol, ror
35

ETRS 511

Exercice
Ecrire lensemble dun fichier VHDL (Library, Entity, Architecture) qui dcrit une porte OU 2 entres a et b de 1 bit (sortie s)

ETRS 511

36

Exercice
Ecrire lensemble dun fichier VHDL (Library, Entity, Architecture) qui dcrit un additionneur ADD4 2 entres de 4 bits A et B signes et une sortie S de 4 bits

ETRS 511

37

Exercice
Ecrire lensemble dun fichier VHDL concat4to8.vhd (Library, Entity, Architecture) permettant la concatnation de 2 bus de 4 bits A et B en un bus C de 8 bits (le bus A reprsente les bits de poids fort).

ETRS 511

38

Plan gobal du cours


I. Introduction II. FPGA III. VHDL


Introduction Rgles dcriture Units de conception - Objets VHDL - Oprateurs Assignations concurrentes/squentielles Assignations conditionnelles/slectives Composant Machine tats Rgles de conception Simulation Complments (fonctions, procdures, packages, )
39

ETRS 511

Assignations concurrentes/sequentielles

Instruction squentielle : instruction lintrieur dun process

Instruction concurrente : instruction lextrieur des process.

Rappel : les instructions se placent toujours uniquement entre le begin et le end de larchitecture

ETRS 511

40

Assignations concurrentes

Toutes les dclarations sont excutes simultanment et en permanence Lordre des dclarations dans le code source na pas dinfluence Les dclarations possibles sont :

Assignation continue : <= Instantiation dun composant : port map Assignation conditionnelle : when else Assignation slective : with select when when Appel dun process Instruction generate Appel dune fonction
cf. complments
41

ETRS 511

Assignations squentielles

Ce mode concerne uniquement les function, procedure et process Les process manipulent les variable et signal Au sein de ces descriptions, les dclarations sont excutes de manire squentielle, lune aprs lautre Lordre des dclarations est donc important Les dclarations possibles sont :

Assignation continue : <= (signal) et := (variable) Assignation conditionnelle : if then elsif then else end if; Assignation slective : case is when => when => end case; Boucles : for in loop end loop; Boucles : while ... loop end loop; Instructions next et exit
42

ETRS 511

Process

Dans un process, linterprtation des instructions est squentielle mais lensemble de leur ralisation est instantane (le temps extrieur est suspendu)

Les signaux sont assigns en sortie du process Les variables sont assigne immdiatement Les variables ne sont pas visibles de lextrieur

ETRS 511

43

Process

Lors daffectations multiples, cest la dernire qui est prise en compte Un process nest activ que lorsque les signaux de sa liste de sensibilit ont subi un changement Absence de liste de sensibilit : le process est ractiv en permanence Tous les process dun design fonctionnent de manire concurrente

ETRS 511

44

Process
Exemples

ETRS 511

45

Process
Exemples

ETRS 511

46

Process
Exercice
Dcrire cette fonction en utilisant un process :

ETRS 511

47

Process

Mise en uvre de process synchronis sur lhorloge


If clkevent and clk=1 then If clkevent and clk=0 then partie dclarative du process

ou ou

if rising_edge(clk) if falling_edge(clk)

Absence de liste de sensibilit et wait until (clk=1) plac en tte de la

ETRS 511

48

Process
Exercice
Tracer les chronogrammes qui correspondent la description de ce process clk
a b c var1 d t t t t t t ETRS 511
49

Exercice
Ecrire lensemble dun fichier VHDL (Library, Entity, Architecture) qui dcrit un compteur COMPT qui compte sur 3 bits sur front montant du signal dhorloge clk

ETRS 511

50

Plan gobal du cours


I. Introduction II. FPGA III. VHDL


Introduction Rgles dcriture Units de conception - Objets VHDL - Oprateurs Assignations concurrentes/squentielles Assignations conditionnelles/slectives Composant Machine tats Rgles de conception Simulation Complments (fonctions, procdures, packages, )
51

ETRS 511

Assignations conditionnelles
Assignation concurrente

Forme gnrale : Une seule cible peut tre assigne

signal <= valeur when condition else autrevaleur when autrecondition ;


Les conditions sont sous-entendues exclusives

Mmorisation implicite lorsque toutes les conditions ne sont pas listes


ETRS 511
52

Assignations conditionnelles
Assignation squentielle

Forme gnrale :

If condition then elsif conditions thenelse end if;

Mmorisation implicite lorsque toutes les conditions ne sont pas listes

ETRS 511

53

Assignations slectives
Assignation concurrente

Forme gnrale :

With slecteur select signal <= valeur when val_sel, valeur when val_sel2 ;

Clause when others qui permet de prciser tous les cas non dfinis Possibilit de regrouper plusieurs valeurs du slecteur pour une mme assignation |

ETRS 511

54

Assignations slectives
Assignation squentielle

Forme gnrale : Possibilit de regrouper des valeurs de slection

Case slecteur is when val_selec => instructions; end case;


Attention aux clauses incompltes pouvant gnrer des latches Utilisation de la clause when others

ETRS 511

55

Assignations slectives
If versus case

ETRS 511

56

Assignations slectives
If versus case

ETRS 511

57

Exercice
Ecrire lensemble dun fichier VHDL (Library, Entity, Architecture) qui dcrit un compteur COMPT5 qui compte sur 3 bits de 0 5 sur front montant du signal dhorloge clk

ETRS 511

58

Exercice
Modifier la description de lexercice prcdent pour que lorsque lentre Load est 1 la sortie du compteur prenne la valeur de lentre Data et compte partir de cette valeur.

ETRS 511

59

Exercice
Ecrire lensemble dun fichier VHDL (Library, Entity, Architecture) qui dcrit un comparateur mettant la sortie EGAL 1 lorsque les entres A et B (bus de 8 bits) sont gales et 0 sinon. Assignation concurrente

ETRS 511

60

Exercice
Assignation squentielle

ETRS 511

61

Exercice
Ecrire lensemble dun fichier VHDL (Library, Entity, Architecture) qui dcrit un dcodeur binaire / 7 segments

ETRS 511

62

Exercice
Assignation concurrente

ETRS 511

63

Exercice
Assignation squentielle

ETRS 511

64

Boucles loop

Instruction squentielle Forme gnrale :


For i in val_deb to val_fin loop end loop; While condition loop end loop;

ETRS 511

65

Exercice
Ecrire larchitecture dun circuit qui inverse bit par bit un bus data_in de 8 bits ( data_out = not (data_in) ).

ETRS 511

66

Plan gobal du cours


I. Introduction II. FPGA III. VHDL


Introduction Rgles dcriture Units de conception - Objets VHDL - Oprateurs Assignations concurrentes/squentielles Assignations conditionnelles/slectives Composant Machine tats Rgles de conception Simulation Complments (fonctions, procdures, packages, )
67

ETRS 511

Composant

Description structurelle : comment est ralise la fonction ? Interconnexions entre des composants (component)

Chaque composant a une entit et une architecture propre


68

ETRS 511

Composant

3 faon de dclarer un composant :


Toutes les paires entity/architecture sont dclares dans le mme fichier

La paire entity/architecture de chaque composant est dclare dans un fichier qui lui est propre

La structure du composant est dclare dans une bibliothque via un package

ETRS 511

69

Composant
Mise en oeuvre

Ecrire lentit et larchitecture du composant essai dans un fichier enregistrer son nom (essai.vhd)

Dans le fichier du circuit principal tutu, dclarer le composant dans larchitecture avant le begin

ETRS 511

70

Composant
Mise en oeuvre

Aprs le begin de larchitecture, instancier le composant avec Port Map() (relier les fils)

Instanciation par position ETRS 511 Instanciation par nomination


71

Exercice
Ecrire larchitecture du circuit TopLevel, contenant 3 composants Riri, Fifi et Loulou dont les connexions sont schmatises ci-dessous :
Clk Datain_a 8 Riri H e s 8 Loulou busa H b Fifi Datain_b Control ETRS 511 H a b c dout Sortie TopLevel

72

Exercice

sig_interne2

ETRS 511

73

Composant
Duplication automatique

Syntaxe gnrale :
label : for indice in val_debut to val_fin generate end generate label ;

ETRS 511

74

Composant
Duplication automatique

Possibilit dinsrer des conditions dans la boucle


if condition then generate end generate ; (pas de else ni de elsif)

ETRS 511

75

Plan gobal du cours


I. Introduction II. FPGA III. VHDL


Introduction Rgles dcriture Units de conception - Objets VHDL - Oprateurs Assignations concurrentes/squentielles Assignations conditionnelles/slectives Composant Machine tats Rgles de conception Simulation Complments (fonctions, procdures, packages, )
76

ETRS 511

Machine tat

FSM Finite State Machine Outil pour reprsenter un systme squentiel On dfinit diffrents tats dans lesquels peut tre le systme Le passage dun tat un autre seffectue si une condition sur les entres est remplie Les sorties du systme dpendent de ltat courant (machine de Moore) ou de ltat courant et des entres (machine de Mealy)

Dans le cas dune FSM synchrone, la valeur des entres est analyse sur front dhorloge
ETRS 511
77

Machine tat
Exemple : dtecteur de squence
La porte ne souvre que si lon tape la squence 1 2 3

Etat 0 : le systme attend un 1 en entre, la porte est ferme (P=0) Etat 1 : le systme attend un 2 en entre, la porte est ferme (P=0) Etat 2 : le systme attend un 3 en entre, la porte est ferme (P=0) Etat 3 : la bonne squence a t entre, la porte est ouverte (P=1)
ETRS 511
78

Machine tat
Exemple : dtecteur de squence
On reprsente une machine tat par un graphe dtat
Entre 1 E0 Entre 2 E1 1=1 P=0 E2 Entre = 3 E3 ETRS 511 P=1
79

P=0 Entre = 1 P=0 Entre = 2 Entre 3

Machine tat
Graphe dtat
Dfinition :

Un diagramme ou graphe dtats permet davoir une reprsentation graphique dun systme squentiel. Il est constitu par lnumration de tous les tats possible du systme. Un seul de ces tats peut tre actif la fois. A chaque tat est associ la valeur de la (ou des) grandeur(s) de sortie.
Transition Etat

1
s=1
ETRS 511

2
s=0
80

Valeur de la (ou des) sortie(s)

Machine tat
Exercice
Dessiner le graph dtat dune bascule D

D=0 D Q D=0 E1 D=1 E0 Q=0 D=1 Q=1

ETRS 511

81

Machine tat
Conception de circuits

Deux architectures courantes :

Des bascules enregistrent ltat courant Des circuits combinatoires sont placs avant et aprs les bascules pour dterminer ltat suivant et la valeur des sorties
ETRS 511
82

Machine tat
Codage des tats

Codage binaire Le numro de ltat est cod en binaire


tat 0 = "00", tat 1 = "01", tat 2 = "10", tat 3 = "11"

One-Hot-One Chaque tat correspond 1 bit dun mme bus


tat 0 state = "0001", tat 1 state = "0010", tat 2 state = "0100", tat 3 state = "1000"

One-Hot-Zero Mme principe que One-Hot-One mais ltat 0 se code "0000"


ETRS 511
83

Programmer un FPGA par FSM


Avec le logiciel Quartus, on peut dcrire une FSM


en utilisant une architecture de Moore ou de Mealy que lont fait soit mme schmatiquement, en rentrant directement le graphe dtat en la dcrivant en VHDL

ETRS 511

84

Description de FSM en VHDL


Entit

Architecture

Dclaration dun nouveau type numr contenant les noms des tats

Dclaration dun signal du nouveau type juste dclar

ETRS 511

85

Description de FSM en VHDL

Gestion des tats

Gestion de la valeur de la sortie

ETRS 511

86

Description de FSM en VHDL


Exemples

ETRS 511

87

Description de FSM en VHDL


Exemples
Etats en One-Hot-One

ETRS 511

88

Description de FSM en VHDL


Exemples : FSM 2 process

Dclaration de deux signaux dtat

ETRS 511

89

Description de FSM en VHDL


Exemples : FSM 2 process
Premier process pour dfinir ltat suivant et les valeurs de sortie en fonction de ltat courant

ETRS 511

90

Description de FSM en VHDL


Exemples : FSM 2 process
Deuxime process qui dcrit le passage dun tat un autre sur les fronts montants dhorloge

Remarque : Description trs proche de la machine de Moore


ETRS 511
91

Description de FSM en VHDL


Attention au problme de mmorisation implicite en utilisant une syntaxe de type case, when,

Si la valeur dun signal nest spcifie que dans certains cas, la synthse produit des bascules non dsires pour mmoriser la valeur du signal dans tous les autres cas.

Il faut donc affecter toutes les sorties dans toutes les conditions

ETRS 511

92

Description de FSM en VHDL


Problme de ltat initial

En simulation, par dfaut, la valeur de ltat initiale du systme est celle gauche des tats numrs
type state is (etat0, etat1, etat2, etat3)

Aprs synthse, ltat initial peut tre nimporte quel tat. Il faut donc prvoir un reset pour forcer la machine dmarrer dans le bon tat

ETRS 511

93

Description de FSM en VHDL


Problme de ltat initial

Reset asynchrone

ETRS 511

94

Description de FSM en VHDL


Problme de ltat initial

Reset synchrone

ETRS 511

95

Exercice
Ecrire larchitecture dune machine tat avec un reset synchrone qui dcrit un diviseur de frquence par 2. On considre que la frquence dhorloge est beaucoup plus leve que la frquence du signal dentre D.

Commencer par reprsenter le graphe dtat Coder la machine en VHDL


t

S t ETRS 511
96

Exercice
D = 1 E3 S=0 D = 0 D = 1 D = 0 E2 D = 1 E1 D = 1 D = 0 E0

S=0

S=1

S=1

D = 0 ETRS 511
97

Exercice

ETRS 511

98

Plan gobal du cours


I. Introduction II. FPGA III. VHDL


Introduction Rgles dcriture Units de conception - Objets VHDL - Oprateurs Assignations concurrentes/squentielles Assignations conditionnelles/slectives Composant Machine tats Rgles de conception Simulation Complments (fonctions, procdures, packages, )
99

ETRS 511

Rgles de conception
Timing

ETRS 511

100

Rgles de conception
Systme combinatoire (asynchrone)
a0 a1 a2 a3 a4 Niveaux logiques b0 b1 b2 1 2 3
dlai

Plus le nombre de niveaux logiques est grand, plus le dlai augmente Mauvaise performance en temps Difficile mettre au point Difficile de tester tous les cas possibles
101

ETRS 511

Rgles de conception
Conception synchrone

ETRS 511

102

Rgles de conception
Conception synchrone

Amliore des performances en vitesse Simplifie de la vrification fonctionnelle Autorise des analyses statiques du timing Assure une parfaite testabilit Correspond larchitecture des composants

ETRS 511

103

Rgles de conception
Rgles suivre :

1 seule horloge Jamais de logique sur un signal dhorloge (utiliser enable) Si plusieurs domaines dhorloge, prvoir des FIFOs tampons Resynchroniser tous les signaux asynchrones pour viter la mtastabilit (2 bascules D la suite)

ETRS 511

104

Rgles de conception
Exemple de synchronisation dun signal reset (actif asynchrone mais inactif de manire synchrone)

ETRS 511

105

Rgles de conception

Adopter une dmarche qualit (dnomination, hirarchisation)

Attention aux assignations incompltes (mmorisation implicite)

Attention lutilisation des variables Penser limplantation (orienter le compilateur) Trouver le bon compromis entre ressources et vitesse en choisissant le bon degr de paralllisme
ETRS 511
106

Plan gobal du cours


I. Introduction II. FPGA III. VHDL


Introduction Rgles dcriture Units de conception - Objets VHDL - Oprateurs Assignations concurrentes/squentielles Assignations conditionnelles/slectives Composant Machine tats Rgles de conception Simulation Complments (fonctions, procdures, packages, )
107

ETRS 511

Simulation
Simulation pour valider tout ou une partie du design Vrification manuelle sur chronogrammes Fastidieux voir impossible si design complex Taux de couverture?

Vrification automatique : Efficace Mais, validit du modle comportemental? Vitesse?

ETRS 511

108

Simulation

Vrification automatique Trs efficace

ETRS 511

109

Simulation
Type de simulation

Simulation fonctionnelle :

Le programme simule un circuit idal sans temps de propagation Permet de vrifier que les fonctions sont ralises correctement

Simulation temporelle :

Prise en compte des dlais de propagation Permet de vrifier que contraintes temporelles sont respectes (vitesse dhorloge)

ETRS 511

110

Simulation
Ecriture dun testbench

Cration graphique de chronogrammes


Pour Quartus : fichier vector waveform .vwf Generate functionnal simulation netlist Lancement de la simulation Fastidieux, taux de couverture ?

ETRS 511

111

Simulation
Exercice
Tracer les chronogrammes de deux signaux en entre dune porte ET pour tester son bon fonctionnement
A 00 01 11 10 t (ns) B t (ns)

ETRS 511

112

Simulation
Ecriture dun testbench en vhdl

Possibilit dutiliser des ressources vhdl non synthtisables Composition du fichier


Library Entity (vide) Architecture


Dclaration du composant tester Dfinition des signaux et constantes Description du chronogramme des signaux Mapping du composant
113

ETRS 511

Simulation
Ecriture dun testbench en vhdl

ETRS 511

114

Simulation
Ecriture dun testbench en vhdl
La dure sexprime avec un type physique : fs, ps, ns, us,

Affectation dun signal


Signal <= valeur after dure, valeur after dure, ;

Conditions temporelles (dans un process)


wait on liste_signal until condition for dure;

wait on : attente sur vnement wait until : attente de conditions wait for : attente pour un certain temps
115

ETRS 511

Simulation
Ecriture dun testbench en vhdl

Utilisation dattribut

Signalstable : vrai sil ny a pas dvnement pendant la dure Signallast_event : dure depuis le dernier vnement Signallast_value : avant dernire valeur

ETRS 511

116

Simulation
Gnration dhorloge

ETRS 511

117

Simulation
Gnration dhorloge

ETRS 511

118

Simulation
Gnration dhorloge
Autres possibilits :

ETRS 511

119

Simulation
Exercice
Ecrire le fichier vhdl permettant de simuler une porte ET ayant deux entres A et B et une sortie S. Les chronogrammes des signaux A et B doivent suivre les chronogrammes suivants :
A t (ns)

30

80

100

50

120

t (ns)

ETRS 511

120

Simulation
Exercice

ETRS 511

121

Simulation
Assertions

Permettent davoir des informations dynamiques sur la simulation


assert test report message severity action

Si le test est ngatif, on affiche message avec arrt ou non de la simulation en fonction de action

now = temps de simulation

ETRS 511

122

Simulation
Assertions

ETRS 511

123

Simulation
Assertions

Il est possible dafficher la valeur dun signal ou dune constante typeimage(signal)

Attention, pas de fonction prvue pour le type std_logic_vector

ETRS 511

124

Simulation
Exercice
Ecrire le fichier vhdl permettant de simuler une ALU qui peut raliser les oprations suivantes :

S = A si commande = 00 S = B si commande = 01 S = A + B si commande = 10 S = A B si commande = 11

A B
4 4

S ALU
4

Commande
2

Lorsquune opration est ralise, utiliser les assertions pour faire apparatre un message derreur sil y a une erreur de calcul. A la fin de la simulation, faire apparatre Fin de simulation.
ETRS 511
125

Simulation
Exercice

ETRS 511

126

Simulation
Exercice

ETRS 511

127

Plan gobal du cours


I. Introduction II. FPGA III. VHDL


Introduction Rgles dcriture Units de conception - Objets VHDL - Oprateurs Assignations concurrentes/squentielles Assignations conditionnelles/slectives Composant Machine tats Rgles de conception Simulation Complments (fonctions, procdures, packages, )
128

ETRS 511

Paramtres gnriques

Permettent de paramtrer des composants Se dclarent dans lentity On leur donner une valeur par dfaut ( := ) Linstanciation se fait avec generic map ()

ETRS 511

129

Paramtres gnriques

a, b et c ont 4 bits de largeur

a, b et c ont 8 bits de largeur (valeur par dfaut) ETRS 511


130

Sous-programmes

Permettent de modulariser le code Permettent de regrouper des actions rptitives Permettent de rutiliser des fonctions Rendent les fichiers plus lisibles Permettent dautomatiser des actions (simulation) Fonction et procdure

ETRS 511

131

Fonction

Les paramtres dune fonction sont uniquement en entre Une fonction ne retourne quune seule valeur Elle a un type, celui de la valeur retourne Elle doit tre dclare dans un package, une entity ou une architecture

Exemple : conversion de types


132

ETRS 511

Fonction

Syntaxe :
function nom (paramtre : type) return type is
Zone de dclaration

Begin
Zone dinstructions

return valeur; end nom;


Exemple :

ETRS 511

133

Fonction

ETRS 511

134

Procdure

Les paramtres dune procdure peuvent tre en entre, en sortie ou les deux Une procdure peut retourner plusieurs valeurs Elle doit tre dclare dans un package, une entity ou une architecture

Elle permet de rduire les lignes de code


135

ETRS 511

Procdure

Syntaxe :
Zone de dclaration

Signal, variable ou constant

procedure nom (class paramtre : mode type) is Begin


Zone dinstructions in, out ou inout

end nom;

Exemple :

ETRS 511

136

Procdure
Dclaration de la procdure cycle

ETRS 511

137

Procdure
Dclaration de la procdure verif

ETRS 511

138

Procdure
Utilisation de la procdure verif

ETRS 511

139

Package

Un package est une unit de compilation permettant de regrouper constant, type, component, function et procedure

Un package est compil part soit dans une bibliothque spcifique, soit dans la bibliothque courante work Il doit tre compil avant les composants qui lutilisent
library lib; use lib. nom_package.all;
140

use work.nom_package.all;
ETRS 511

Package
Liste de ce quil y a dans le package

Description de ce que font les fonctions ou les procdures

ETRS 511

141

You might also like