Vous êtes sur la page 1sur 141

III.

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

z 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


z 1987 : normalisation du VHDL (VHSIC Hardware Description
Language) par lIEEE (Institute of Electrical and Electronic
Engineers)
z La norme est rvise tous les 5 ans (P1076-87, P1076-93, P1076-
2000, P1076-2002, P1076-2006)
z 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,)
3
ETRS 511
Introduction
Pourquoi et o utilise-t-on le VHDL?
Flot de conception

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

5
ETRS 511
Introduction
Quest ce que le VHDL?

z Langage de modlisation et/ou de synthse de systmes


lectroniques

z Langage gnraliste x simulation

z Langage prs des portes logiques x VHDL de synthse

z Systme de CAO : Schma ou VHDL ou mixte

6
ETRS 511
Introduction
Quest ce que le VHDL?

z Langage normalis, sens tre indpendant de tout


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

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

z VHDL 87 (obsolte), VHDL 93, VHDL 2000 (trs peu de


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

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

z Permet dutiliser les oprateurs arthmtiques + et x sur des


vecteurs de bits

z Fournit des fonctions de conversion entre entiers et vecteurs


15
ETRS 511
Units de conception
Library

IEEE.numeric_std.all

16
ETRS 511
Units de conception
Entity

z Dfinition de lentit : Vue externe dun composant

z Spcifications :
z Ports dentre et de sortie

z Type

z 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
17
ETRS 511
Units de conception
Entity

a 8
8 Comparateur egal
b

z Le mode in protge le signal en criture

z Le mode out protge le signal en lecture

18
ETRS 511
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 4
4
4 somme
b Add4
co
ci

19
ETRS 511
Units de conception
Exercice

Ecrire lentit correspondante au schma de ce multiplexeur :

20
ETRS 511
Units de conception
Exercice

Dessiner le schma du composant correspondant lentit


suivante :

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

Remarque : linstruction after nest pas synthtisable !


23
ETRS 511
Objets VHDL
z 5 sortes dobjets
z Les ports dentre/sortie (PORT)
z Les signaux (SIGNAL)
z Les constantes (CONSTANT)
z Les variables (VARIABLE) - - cf partie assignation squentielle
z Les paramtres (GENERIC) - - cf partie complments

z Les objets reprsentent une valeur


z Ils doivent tre typs

24
ETRS 511
Objets VHDL
Type

z Tout objet a un format prdfini


z Seules des valeurs de ce format peuvent tre affectes
cet objet
z Plusieurs catgories de types
z Types scalaires (numriques et numrs)
z Types composs (tableaux et vecteurs)

z Possibilit de dfinir de nouveaux types

25
ETRS 511
Objets VHDL
Type

z Types scalaires :
z Types numrs : liste de valeurs

z Types numriques : domaine de dfinition

range to downto

z Types composs : collections dlments de mme type


reprs par des valeur dindices

26
ETRS 511
Objets VHDL
Type

z Exemple de types prdfinis :


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

27
ETRS 511
Objets VHDL
Type

z Std_logic :

28
ETRS 511
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

29
ETRS 511
Objets VHDL
Signal

z Un signal reprsente une quipotentielle


z Il doit tre dclar avant utilisation
z Il peut tre dclar :
z dans un package, il est alors global
z dans une entity, il est alors commun toutes les architectures de
lentit
z dans larchitecture, il est alors local

30
ETRS 511
Objets VHDL
Signal

z Laffectation se fait avec loprateur <=

z Accs des sous-lments avec loprateur alias

alias lsb : bit_vector(7 downto 0) is add_bus(7 downto 0) ;

z Initialisation rapide

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

31
ETRS 511
Objets VHDL
Constant

z Une constante doit tre dclare avant utilisation


z Elle peut tre dclare :
z dans un package, elle est alors globale
z dans une entity, elle est alors commune toutes les architectures
de lentit
z dans larchitecture, elle est alors locale
z Laffectation se fait avec loprateur :=

32
ETRS 511
Objets VHDL
Variable

z Une variable doit tre dclare avant utilisation


z Elle ne peut tre dclare que dans un process
z Laffectation se fait avec loprateur :=

33
ETRS 511
Oprateurs
z Oprateurs logiques (sur boolens, bits et drivs)

z Oprateurs relationnels (sur types scalaires ou drivs


(signed, unsigned))

34
ETRS 511
Oprateurs
z Oprateurs bits (sur vecteurs de bits et types numriques)

z Oprateurs arithmtiques (sur types numriques : entiers,


signs, non signs, flottant)

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

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

z Instruction concurrente : instruction lextrieur des

process.

Rappel : les instructions se placent toujours uniquement

entre le begin et le end de larchitecture

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

Dcrire cette fonction en utilisant un process :

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

Tracer les chronogrammes qui correspondent la description


de ce process clk

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

z Les conditions sont sous-entendues exclusives

z Mmorisation implicite lorsque toutes les conditions ne sont pas


listes

52
ETRS 511
Assignations conditionnelles
Assignation squentielle
z Forme gnrale :
If condition then elsif conditions thenelse end if;

z Mmorisation implicite lorsque toutes les conditions ne sont pas


listes

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;

z Possibilit de regrouper des valeurs de slection

z Attention aux clauses incompltes pouvant gnrer des latches


Utilisation de la clause when others

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)

z Chaque composant a une entit et une architecture propre


68
ETRS 511
Composant
z 3 faon de dclarer un composant :

z Toutes les paires entity/architecture sont dclares


dans le mme fichier

z La paire entity/architecture de chaque composant est


dclare dans un fichier qui lui est propre

z La structure du composant est dclare dans une


bibliothque via un package

69
ETRS 511
Composant
Mise en oeuvre
z Ecrire lentit et larchitecture du composant essai dans un
fichier enregistrer son nom (essai.vhd)

z Dans le fichier du circuit principal tutu, dclarer le


composant dans larchitecture avant le begin

70
ETRS 511
Composant
Mise en oeuvre
z Aprs le begin de larchitecture, instancier le
composant avec Port Map() (relier les fils)

Instanciation par position

Instanciation par nomination


71
ETRS 511
Exercice
Ecrire larchitecture du circuit TopLevel, contenant 3
composants Riri, Fifi et Loulou dont les connexions sont
schmatises ci-dessous :

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

La porte ne souvre que si lon tape la


squence 1 2 3
z Etat 0 : le systme attend un 1 en entre,
la porte est ferme (P=0)
z Etat 1 : le systme attend un 2 en entre,
la porte est ferme (P=0)
z Etat 2 : le systme attend un 3 en entre,
la porte est ferme (P=0)
z Etat 3 : la bonne squence a t entre, la
porte est ouverte (P=1)
78
ETRS 511
Machine tat
Exemple : dtecteur de squence
On reprsente une machine tat par un graphe dtat
Entre 1
P=0
E0

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

Dessiner le graph dtat dune bascule D

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 Deux architectures courantes :

z Des bascules enregistrent ltat courant


z Des circuits combinatoires sont placs avant et aprs les
bascules pour dterminer ltat suivant et la valeur des
sorties
82
ETRS 511
Machine tat
Codage des tats

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

z Architecture Dclaration dun nouveau type numr


contenant les noms des tats

Dclaration dun signal du


nouveau type juste dclar

85
ETRS 511
Description de FSM en VHDL

Gestion des tats

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

Deuxime process qui dcrit le passage


dun tat un autre sur les fronts
montants dhorloge

Remarque : Description trs proche de la machine de Moore

91
ETRS 511
Description de FSM en VHDL

z Attention au problme de mmorisation implicite en


utilisant une syntaxe de type case, when,

z 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.

z Il faut donc affecter toutes les sorties dans toutes les


conditions

92
ETRS 511
Description de FSM en VHDL
Problme de ltat initial

z En simulation, par dfaut, la valeur de ltat initiale du


systme est celle gauche des tats numrs
type state is (etat0, etat1, etat2, etat3)

z Aprs synthse, ltat initial peut tre nimporte quel tat.

z Il faut donc prvoir un reset pour forcer la machine


dmarrer dans le bon tat

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

z Plus le nombre de niveaux logiques est grand, plus le


dlai augmente
z Mauvaise performance en temps
z Difficile mettre au point
z Difficile de tester tous les cas possibles
101
ETRS 511
Rgles de conception
Conception synchrone

102
ETRS 511
Rgles de conception
Conception synchrone

z Amliore des performances en vitesse

z Simplifie de la vrification fonctionnelle

z Autorise des analyses statiques du timing

z Assure une parfaite testabilit

z Correspond larchitecture des composants

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

z Conditions temporelles (dans un process)


wait on liste_signal until condition for dure;

z wait on : attente sur vnement


z wait until : attente de conditions
z wait for : attente pour un certain temps

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

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

z Attention, pas de fonction prvue pour le type


std_logic_vector

124
ETRS 511
Simulation
Exercice

Ecrire le fichier vhdl permettant de simuler une ALU qui peut


raliser les oprations suivantes :
A
z S = A si commande = 00
B 4 S
z S = B si commande = 01 4 ALU 4
z S = A + B si commande = 10 Commande
2
z S = A B si commande = 11
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.

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

z Permettent de paramtrer des composants

z Se dclarent dans lentity

z On leur donner une valeur par dfaut ( := )

z Linstanciation se fait avec generic map ()

129
ETRS 511
Paramtres gnriques

a, b et c ont 4 bits
de largeur

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

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

z Exemple : conversion de types


132
ETRS 511
Fonction
z Syntaxe :
function nom (paramtre : type) return type is
Zone de dclaration
Begin
Zone dinstructions
return valeur;
end nom;
z Exemple :

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

z Elle permet de rduire les lignes de code


135
ETRS 511
Procdure
Signal, variable ou constant
z Syntaxe :
procedure nom (class paramtre : mode type) is
Zone de dclaration
in, out ou inout
Begin
Zone dinstructions
end nom;
z Exemple :

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

z Un package est compil part soit dans une


bibliothque spcifique, soit dans la bibliothque
courante work
z Il doit tre compil avant les composants qui lutilisent

use work.nom_package.all; library lib;


use lib. nom_package.all;
140
ETRS 511
Package

Liste de ce quil y a
dans le package

Description de ce
que font les
fonctions ou les
procdures

141
ETRS 511

Vous aimerez peut-être aussi