Académique Documents
Professionnel Documents
Culture Documents
Cours VHDL Fpga 2 PDF
Cours VHDL Fpga 2 PDF
VHDL
ETRS 511 1
Plan gobal du cours
z I. Introduction
z II. FPGA
z III. VHDL
z Introduction
z Rgles dcriture
z Units de conception - Objets VHDL - Oprateurs
z Assignations concurrentes/squentielles
z Assignations conditionnelles/slectives
z Composant
z Machine tats
z Rgles de conception
z Simulation
z Complments (fonctions, procdures, packages, )
2
ETRS 511
Introduction
Historique
4
ETRS 511
Introduction
Pourquoi et o utilise-t-on le VHDL?
Flot de conception
5
ETRS 511
Introduction
Quest ce que le VHDL?
6
ETRS 511
Introduction
Quest ce que le VHDL?
7
ETRS 511
Plan gobal du cours
z I. Introduction
z II. FPGA
z III. VHDL
z Introduction
z Rgles dcriture
z Units de conception - Objets VHDL - Oprateurs
z Assignations concurrentes/squentielles
z Assignations conditionnelles/slectives
z Composant
z Machine tats
z Rgles de conception
z Simulation
z Complments (fonctions, procdures, packages, )
8
ETRS 511
Rgles dcriture
9
ETRS 511
Rgles dcriture
z En gnral, les instructions se terminent par ;
z Rgles de dnomination :
z 26 lettres de lalphabet, les 10 chiffres et _
z Le premier caractre est une lettre
z Il ne peut y avoir 2 _ de suite
z Lidentifieur ne peut se terminer par _
10
ETRS 511
Rgles dcriture
z Les valeurs explicites:
z Entier : 123 1_2_3
z Entier bas : base#valeur# 2#11# (Q3) 16#1F# (Q31)
z Valeurs physiques : toujours laisser un espace entre la valeur et lunit
100 ps 2 ns 5V
z Caractre : entre apostrophe a @
z Bit : entre apostrophe 0 1 Z
z Chane de caractres : entre guillemets (attention l les minuscules et
majuscules sont significatives) "Bonjour "
z Bus : entre guillemets "01111001 "
z Boolen : true false
11
ETRS 511
Mots rservs
http://amouf.chez.com/syntaxe.htm
12
ETRS 511
Plan gobal du cours
z I. Introduction
z II. FPGA
z III. VHDL
z Introduction
z Rgles dcriture
z Units de conception - Objets VHDL - Oprateurs
z Assignations concurrentes/squentielles
z Assignations conditionnelle/slective
z Composant
z Machine tats
z Rgles de conception
z Simulation
z Complments (fonctions, procdures, packages, )
13
ETRS 511
Units de conception
Structure dun fichier VHDL
14
ETRS 511
Units de conception
Library
z IEEE.STD_LOGIC_1164.all
z Permet de dfinir les types, oprateurs et fonctions de conversion
de base
z IEEE.numeric_std.all
z Dfinit les types signed et unsigned. Un vecteur reprsente alors
un nombre sign ou non sign reprsent en C2
IEEE.numeric_std.all
16
ETRS 511
Units de conception
Entity
z Spcifications :
z Ports dentre et de sortie
z Type
- sortie (out)
- entre/sortie (inout)
a 8
8 Comparateur egal
b
18
ETRS 511
Units de conception
Exercice
a 4
4
4 somme
b Add4
co
ci
19
ETRS 511
Units de conception
Exercice
20
ETRS 511
Units de conception
Exercice
b
clk parite
parite
raz
21
ETRS 511
Units de conception
Architecture
z Toute architecture est associe une entit
z Dfinition : Larchitecture dfinit les fonctionnalits et les
relations temporelles. Elle dcrit le comportement du
composant.
Zone de dclaration
Zone de dfinition
22
ETRS 511
Units de conception
Architecture
z Il peut y avoir plusieurs architectures associes un
mme composant
2 architectures dun
mme composant
24
ETRS 511
Objets VHDL
Type
25
ETRS 511
Objets VHDL
Type
z Types scalaires :
z Types numrs : liste de valeurs
range to downto
26
ETRS 511
Objets VHDL
Type
27
ETRS 511
Objets VHDL
Type
z Std_logic :
28
ETRS 511
Objet VHDL
Exercice Type
29
ETRS 511
Objets VHDL
Signal
30
ETRS 511
Objets VHDL
Signal
z Initialisation rapide
Toto <=(others => 0); est quivalent Toto <= "0000000 ";
31
ETRS 511
Objets VHDL
Constant
32
ETRS 511
Objets VHDL
Variable
33
ETRS 511
Oprateurs
z Oprateurs logiques (sur boolens, bits et drivs)
34
ETRS 511
Oprateurs
z Oprateurs bits (sur vecteurs de bits et types numriques)
36
ETRS 511
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
37
ETRS 511
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).
38
ETRS 511
Plan gobal du cours
z I. Introduction
z II. FPGA
z III. VHDL
z Introduction
z Rgles dcriture
z Units de conception - Objets VHDL - Oprateurs
z Assignations concurrentes/squentielles
z Assignations conditionnelles/slectives
z Composant
z Machine tats
z Rgles de conception
z Simulation
z Complments (fonctions, procdures, packages, )
39
ETRS 511
Assignations
concurrentes/sequentielles
z Instruction squentielle : instruction lintrieur dun
process
process.
40
ETRS 511
Assignations concurrentes
z Toutes les dclarations sont excutes simultanment et
en permanence
z Lordre des dclarations dans le code source na pas
dinfluence
z Les dclarations possibles sont :
z Assignation continue : <=
z Instantiation dun composant : port map
z Assignation conditionnelle : when else
z Assignation slective : with select when when
z Appel dun process
z Instruction generate
cf. complments
z Appel dune fonction
41
ETRS 511
Assignations squentielles
z Ce mode concerne uniquement les function, procedure et
process
z Les process manipulent les variable et signal
z Au sein de ces descriptions, les dclarations sont excutes de
manire squentielle, lune aprs lautre
z Lordre des dclarations est donc important
z Les dclarations possibles sont :
z Assignation continue : <= (signal) et := (variable)
z Assignation conditionnelle : if then elsif then else end if;
z Assignation slective : case is when => when => end case;
z Boucles : for in loop end loop;
z Boucles : while ... loop end loop;
z Instructions next et exit
42
ETRS 511
Process
z Dans un process, linterprtation des instructions est
squentielle mais lensemble de leur ralisation est instantane
(le temps extrieur est suspendu)
z Les signaux sont assigns en sortie du process
z Les variables sont assigne immdiatement
z Les variables ne sont pas visibles de lextrieur
43
ETRS 511
Process
z Lors daffectations multiples, cest la dernire qui est prise en
compte
z Un process nest activ que lorsque les signaux de sa liste de
sensibilit ont subi un changement
z Absence de liste de sensibilit : le process est ractiv en
permanence
z Tous les process dun design fonctionnent de manire
concurrente
44
ETRS 511
Process
Exemples
45
ETRS 511
Process
Exemples
46
ETRS 511
Process
Exercice
47
ETRS 511
Process
z Mise en uvre de process synchronis sur lhorloge
z If clkevent and clk=1 then ou if rising_edge(clk)
z If clkevent and clk=0 then ou if falling_edge(clk)
z Absence de liste de sensibilit et wait until (clk=1) plac en tte de la
partie dclarative du process
48
ETRS 511
Process
Exercice
t
a
t
b
t
c
t
var1
t
d
t
49
ETRS 511
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
50
ETRS 511
Plan gobal du cours
z I. Introduction
z II. FPGA
z III. VHDL
z Introduction
z Rgles dcriture
z Units de conception - Objets VHDL - Oprateurs
z Assignations concurrentes/squentielles
z Assignations conditionnelles/slectives
z Composant
z Machine tats
z Rgles de conception
z Simulation
z Complments (fonctions, procdures, packages, )
51
ETRS 511
Assignations conditionnelles
Assignation concurrente
z Forme gnrale :
signal <= valeur when condition else autrevaleur when autrecondition ;
z Une seule cible peut tre assigne
52
ETRS 511
Assignations conditionnelles
Assignation squentielle
z Forme gnrale :
If condition then elsif conditions thenelse end if;
53
ETRS 511
Assignations slectives
Assignation concurrente
z Forme gnrale :
With slecteur select signal <= valeur when val_sel, valeur when val_sel2 ;
z Clause when others qui permet de prciser tous les cas non
dfinis
z Possibilit de regrouper plusieurs valeurs du slecteur pour une
mme assignation |
54
ETRS 511
Assignations slectives
Assignation squentielle
z Forme gnrale :
Case slecteur is when val_selec => instructions; end case;
55
ETRS 511
Assignations slectives
If versus case
56
ETRS 511
Assignations slectives
If versus case
57
ETRS 511
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
58
ETRS 511
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.
59
ETRS 511
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
60
ETRS 511
Exercice
Assignation squentielle
61
ETRS 511
Exercice
Ecrire lensemble dun fichier VHDL (Library, Entity,
Architecture) qui dcrit un dcodeur binaire / 7 segments
62
ETRS 511
Exercice
Assignation concurrente
63
ETRS 511
Exercice
Assignation squentielle
64
ETRS 511
Boucles loop
z Instruction squentielle
z Forme gnrale :
For i in val_deb to val_fin loop end loop;
While condition loop end loop;
65
ETRS 511
Exercice
Ecrire larchitecture dun circuit qui inverse bit par bit un bus
data_in de 8 bits ( data_out = not (data_in) ).
66
ETRS 511
Plan gobal du cours
z I. Introduction
z II. FPGA
z III. VHDL
z Introduction
z Rgles dcriture
z Units de conception - Objets VHDL - Oprateurs
z Assignations concurrentes/squentielles
z Assignations conditionnelles/slectives
z Composant
z Machine tats
z Rgles de conception
z Simulation
z Complments (fonctions, procdures, packages, )
67
ETRS 511
Composant
z Description structurelle : comment est ralise la fonction ?
z Interconnexions entre des composants (component)
69
ETRS 511
Composant
Mise en oeuvre
z Ecrire lentit et larchitecture du composant essai dans un
fichier enregistrer son nom (essai.vhd)
70
ETRS 511
Composant
Mise en oeuvre
z Aprs le begin de larchitecture, instancier le
composant avec Port Map() (relier les fils)
Riri TopLevel
Clk H s 8
8 Loulou
Datain_a e
busa Sortie
dout
H
b
Fifi
Datain_b H
c
a
Control b
72
ETRS 511
Exercice
sig_interne2
73
ETRS 511
Composant
Duplication automatique
z Syntaxe gnrale :
label : for indice in val_debut to val_fin generate end generate label ;
74
ETRS 511
Composant
Duplication automatique
z Possibilit dinsrer des conditions dans la boucle
if condition then generate end generate ; (pas de else ni de elsif)
75
ETRS 511
Plan gobal du cours
z I. Introduction
z II. FPGA
z III. VHDL
z Introduction
z Rgles dcriture
z Units de conception - Objets VHDL - Oprateurs
z Assignations concurrentes/squentielles
z Assignations conditionnelles/slectives
z Composant
z Machine tats
z Rgles de conception
z Simulation
z Complments (fonctions, procdures, packages, )
76
ETRS 511
Machine tat
z FSM Finite State Machine
z Outil pour reprsenter un systme squentiel
z On dfinit diffrents tats dans lesquels peut tre le systme
z Le passage dun tat un autre seffectue si une condition sur
les entres est remplie
z Les sorties du systme dpendent de ltat courant (machine
de Moore) ou de ltat courant et des entres (machine de
Mealy)
z Dans le cas dune FSM synchrone, la valeur des entres est
analyse sur front dhorloge
77
ETRS 511
Machine tat
Exemple : dtecteur de squence
Entre 2 Entre = 1
E1 P=0 Entre 3
1=1
Entre = 2
P=0 E2
Entre = 3
E3 P=1
79
ETRS 511
Machine tat
Graphe dtat
Dfinition :
z Un diagramme ou graphe dtats permet davoir une
reprsentation graphique dun systme squentiel.
z Il est constitu par lnumration de tous les tats possible
du systme.
z Un seul de ces tats peut tre actif la fois.
z A chaque tat est associ la valeur de la (ou des)
grandeur(s) de sortie.
Transition Etat
1 2
s=1 s=0
Valeur de la (ou des) sortie(s) 80
ETRS 511
Machine tat
Exercice
D=0
Q=0
D Q E0
D=0 D=1
E1 Q=1
D=1
81
ETRS 511
Machine tat
Conception de circuits
z Codage binaire
Le numro de ltat est cod en binaire
tat 0 = "00", tat 1 = "01", tat 2 = "10", tat 3 = "11"
z One-Hot-One
Chaque tat correspond 1 bit dun mme bus
tat 0 Q state = "0001", tat 1 Q state = "0010",
tat 2 Q state = "0100", tat 3 Q state = "1000"
z One-Hot-Zero
Mme principe que One-Hot-One mais ltat 0 se code "0000"
83
ETRS 511
Programmer un FPGA par FSM
z Avec le logiciel Quartus, on peut dcrire une FSM
z en utilisant une architecture de Moore ou de Mealy que
lont fait soit mme
z schmatiquement, en rentrant directement le graphe
dtat
z en la dcrivant en VHDL
84
ETRS 511
Description de FSM en VHDL
z Entit
85
ETRS 511
Description de FSM en VHDL
Gestion de la valeur de la
sortie
86
ETRS 511
Description de FSM en VHDL
Exemples
87
ETRS 511
Description de FSM en VHDL
Exemples
Etats en One-Hot-One
88
ETRS 511
Description de FSM en VHDL
Exemples : FSM 2 process
Dclaration de deux
signaux dtat
89
ETRS 511
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
90
ETRS 511
Description de FSM en VHDL
Exemples : FSM 2 process
91
ETRS 511
Description de FSM en VHDL
92
ETRS 511
Description de FSM en VHDL
Problme de ltat initial
93
ETRS 511
Description de FSM en VHDL
Problme de ltat initial
z Reset asynchrone
94
ETRS 511
Description de FSM en VHDL
Problme de ltat initial
z Reset synchrone
95
ETRS 511
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.
z Commencer par reprsenter le graphe dtat
z Coder la machine en VHDL
D
t
S
96
ETRS 511
Exercice
D = 1 D = 0
E3 S=0 E0
S=0
D = 0
D = 1
D = 1
D = 0 D = 1
E2 S=1 S=1 E1
D = 0
97
ETRS 511
Exercice
98
ETRS 511
Plan gobal du cours
z I. Introduction
z II. FPGA
z III. VHDL
z Introduction
z Rgles dcriture
z Units de conception - Objets VHDL - Oprateurs
z Assignations concurrentes/squentielles
z Assignations conditionnelles/slectives
z Composant
z Machine tats
z Rgles de conception
z Simulation
z Complments (fonctions, procdures, packages, )
99
ETRS 511
Rgles de conception
Timing
100
ETRS 511
Rgles de conception
Systme combinatoire (asynchrone)
a0 b0
a1
a2 b1
a3
a4 b2
Niveaux dlai
1 2 3
logiques
102
ETRS 511
Rgles de conception
Conception synchrone
103
ETRS 511
Rgles de conception
Rgles suivre :
z 1 seule horloge
z Jamais de logique sur un signal dhorloge (utiliser enable)
z Si plusieurs domaines dhorloge, prvoir des FIFOs tampons
z Resynchroniser tous les signaux asynchrones pour viter la
mtastabilit (2 bascules D la suite)
104
ETRS 511
Rgles de conception
Exemple de synchronisation dun signal reset (actif asynchrone
mais inactif de manire synchrone)
105
ETRS 511
Rgles de conception
z Adopter une dmarche qualit (dnomination,
hirarchisation)
z Attention aux assignations incompltes (mmorisation
implicite)
z Attention lutilisation des variables
z Penser limplantation (orienter le compilateur)
z Trouver le bon compromis entre ressources et vitesse en
choisissant le bon degr de paralllisme
106
ETRS 511
Plan gobal du cours
z I. Introduction
z II. FPGA
z III. VHDL
z Introduction
z Rgles dcriture
z Units de conception - Objets VHDL - Oprateurs
z Assignations concurrentes/squentielles
z Assignations conditionnelles/slectives
z Composant
z Machine tats
z Rgles de conception
z Simulation
z Complments (fonctions, procdures, packages, )
107
ETRS 511
Simulation
Simulation pour valider tout ou une partie du design
z Vrification manuelle sur chronogrammes
z Fastidieux voir impossible si design complex
z Taux de couverture?
z Vrification automatique :
z Efficace
z Mais, validit du modle comportemental?
z Vitesse?
108
ETRS 511
Simulation
z Vrification automatique
z Trs efficace
109
ETRS 511
Simulation
Type de simulation
z Simulation fonctionnelle :
z Le programme simule un circuit idal sans temps
de propagation
z Permet de vrifier que les fonctions sont ralises
correctement
z Simulation temporelle :
z Prise en compte des dlais de propagation
z Permet de vrifier que contraintes temporelles sont
respectes (vitesse dhorloge)
110
ETRS 511
Simulation
Ecriture dun testbench
z Cration graphique de chronogrammes
z Pour Quartus : fichier vector waveform .vwf
z Generate functionnal simulation netlist
z Lancement de la simulation
z Fastidieux, taux de couverture ?
111
ETRS 511
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)
112
ETRS 511
Simulation
Ecriture dun testbench en vhdl
z Possibilit dutiliser des ressources vhdl non synthtisables
z Composition du fichier
z Library
z Entity (vide)
z Architecture
z Dclaration du composant tester
z Dfinition des signaux et constantes
z Description du chronogramme des signaux
z Mapping du composant
113
ETRS 511
Simulation
Ecriture dun testbench en vhdl
114
ETRS 511
Simulation
Ecriture dun testbench en vhdl
La dure sexprime avec un type physique : fs, ps, ns, us,
z Affectation dun signal
Signal <= valeur after dure, valeur after dure, ;
115
ETRS 511
Simulation
Ecriture dun testbench en vhdl
z Utilisation dattribut
z Signalstable : vrai sil ny a pas dvnement pendant la
dure
z Signallast_event : dure depuis le dernier vnement
z Signallast_value : avant dernire valeur
116
ETRS 511
Simulation
Gnration dhorloge
117
ETRS 511
Simulation
Gnration dhorloge
118
ETRS 511
Simulation
Gnration dhorloge
Autres possibilits :
119
ETRS 511
Simulation
Exercice
t (ns)
0 30 80 100
B
t (ns)
0 50 120
120
ETRS 511
Simulation
Exercice
121
ETRS 511
Simulation
Assertions
z Permettent davoir des informations dynamiques sur la
simulation
assert test report message severity action
z Si le test est ngatif, on affiche message avec arrt ou
non de la simulation en fonction de action
now = temps de
simulation
122
ETRS 511
Simulation
Assertions
123
ETRS 511
Simulation
Assertions
z Il est possible dafficher la valeur dun signal ou dune
constante typeimage(signal)
124
ETRS 511
Simulation
Exercice
125
ETRS 511
Simulation
Exercice
126
ETRS 511
Simulation
Exercice
127
ETRS 511
Plan gobal du cours
z I. Introduction
z II. FPGA
z III. VHDL
z Introduction
z Rgles dcriture
z Units de conception - Objets VHDL - Oprateurs
z Assignations concurrentes/squentielles
z Assignations conditionnelles/slectives
z Composant
z Machine tats
z Rgles de conception
z Simulation
z Complments (fonctions, procdures, packages, )
128
ETRS 511
Paramtres gnriques
129
ETRS 511
Paramtres gnriques
a, b et c ont 4 bits
de largeur
130
ETRS 511
Sous-programmes
z Permettent de modulariser le code
z Permettent de regrouper des actions rptitives
z Permettent de rutiliser des fonctions
z Rendent les fichiers plus lisibles
z Permettent dautomatiser des actions (simulation)
z Fonction et procdure
131
ETRS 511
Fonction
z Les paramtres dune fonction sont uniquement en
entre
z Une fonction ne retourne quune seule valeur
z Elle a un type, celui de la valeur retourne
z Elle doit tre dclare dans un package, une entity ou
une architecture
133
ETRS 511
Fonction
134
ETRS 511
Procdure
z Les paramtres dune procdure peuvent tre en
entre, en sortie ou les deux
z Une procdure peut retourner plusieurs valeurs
z Elle doit tre dclare dans un package, une entity ou
une architecture
136
ETRS 511
Procdure
Dclaration de la procdure cycle
137
ETRS 511
Procdure
Dclaration de la procdure verif
138
ETRS 511
Procdure
Utilisation de la procdure verif
139
ETRS 511
Package
z Un package est une unit de compilation permettant
de regrouper constant, type, component, function et
procedure
Liste de ce quil y a
dans le package
Description de ce
que font les
fonctions ou les
procdures
141
ETRS 511