Você está na página 1de 32

mercredi 18 mai

2016

VHDL
LES NOTIONS DE BASE

1
mercredi 18 mai
2016
VHDL LES NOTIONS DE BASE
OBJECTIFS:
Nommer les lments fondamentaux du VHDL
Appliquer les mthodes de description
(flot de donnes, comportementale, structurelle)
Dcrire un composant VHDL et son utilit dans
un programme
Ecrire un programme en VHDL
2
18/05/2016 08:33:36
VHDL I-Introduction

Langage de description hardware dvelopp au


titre du programme VHSIC (Very High Speed
Integrated Circuit) du DoD (Department of Defence).

VHDL = VHSIC Hardware Description Langage


4
18/05/2016 08:33:36
VHDL I-Introduction

Programmation ou description?
Les objectifs du langage VHDL est la :
Conception de circuits intgrs reconfigurable
ou non (ASIC, FPGA) : SYNTHESE
Mise au point de modle de simulations
numriques (circuits virtuels) : MODELISATION
5
VHDL I-Introduction

Le langage VHDL est capable de DECRIRE:


des comportements CONCURRENTS ( // ) a

des comportements squentiels b


a b

Les deux portes


t travaillent en // t
t1 t1 t2 t3 6
VHDL I-Introduction

Synthse ou modlisation
Cration de modles de simulations Cration dun circuit intgr

NORME IEEE VHDL NORME IEEE VHDL


Seule une partie
La totalit de la norme
de la norme peut
peut tre utilise pour
tre utilise pour
raliser des modles de
raliser des
simulations. Notre cible en
TP: FPGA
circuits
7

Cyclone 2
VHDL I-Introduction

Exemple dun schma fonctionnel dimplantation de 8

descriptions VHDL dans un circuit logique programmable.


VHDL II-Structure dune description VHDL simple

Une description VHDL est compose de trois parties


indissociables savoir :
La dclaration des bibliothques
Lentit (ENTITY), elle dfinit les entres et sorties.
Larchitecture (ARCHITEHTURE), elle contient les
instructions VHDL permettant de raliser le
fonctionnement attendu. 18/05/2016 08:33:32 9
II-1Dclaration des bibliothques:
Toute description VHDL utilise
pour la synthse a besoin de
bibliothques. LIEEE (Institut of
Electrical and Electronics
Engineers) les a normalises et
plus particulirement la
bibliothque IEEE1164. Elles
contiennent les dfinitions des
types de signaux lectroniques,
des fonctions et sous
programmes permettant de
raliser des oprations
arithmtiques et logiques,...; 18/05/2016 08:33:36 10
II-2Dclaration de lentit et des entres / sorties(I/O)
Elle permet de dfinir le NOM
de la description VHDL ainsi
que les entres et sorties
utilises, l'instruction qui les
dfinit c'est port :
Syntaxe de lentit:

Syntaxe de linstruction port :


18/05/2016 08:33:36 11
On doit dfinir pour chaque signal :
le NOM_DU_SIGNAL, le sens et le type
II.2.1 Le sens du signal (mode):

in : pour un signal en entre. (monodirectionnelle)


out : pour un signal en sortie (monodirectionnelle)
inout : pour un signal en entre sortie (I/O bidirectionnelle)
buffer : pour un signal en sortie mais utilis comme entre
dans les descriptions (Sortie reboucle) 12
II.2.2 Les types:

VHDL est un langage fortement typ, interdisant


l'interconnexion de signaux de types diffrents

Certains types sont prdfinis par le langage :


integer, bit, bit_vector, boolean, etc.

VHDL permet d'tendre la liste des types de base


* IEEE1164 (type std_logic, std_logic_vector)
*Types spcifiques, dfinis par les outils des fournisseurs
18/05/2016 08:33:36 13
II.2.2 Les types:

*Types dfinis par l'utilisateur :

- type numr, par ex. :


type jour is (lu, ma, me, je, ve, sa, di);
(souvent utilis pour les machines d'tat)

- sous-type :
subtype octet is bit_vector (0 to 7);

18/05/2016 08:33:36 14
II.2.2 Les types:

Le type bit de VHDL peut prendre les valeurs '0 et '1'.


Ce type est insuffisant pour dcrire des signaux logiques
rels (haute-impdance, forage, etc.)

Le standard IEEE1164 dfinit des signaux multi-valeurs


rpondant aux besoins de systmes rels, et facilitant
la simulation

Le type std_logic (et std_logic_vector) possde neuf


valeurs: '0','1','X','L','H','W','Z','U','-'18/05/2016 08:33:36 15
II.2.2 Les types:

Signification des valeurs du type std_logic :

'0' niveau 0 forage fort


'1' niveau 1 forage fort
'X' niveau inconnu forage fort
'L' niveau 0 forage faible
'H' niveau 1 forage faible
'W' niveau inconnu forage faible
'Z' haute impdance
'U' valeur non initialise 18/05/2016 08:33:36 16

'-' quelconque (non dfini)


II.2.2 Les types:

std_logic_vector est un tableau de bits dont la chaine est note


"10011110" en binaire ou en hexadcimal X"9E"
On peut indiquer le nombre de std_logic dans un tableau de
std_logic_vector :
* Soit de la fin vers le dbut ( fin downto debut)
* Soit de dbut vers la fin (dbut to fin)
Exemples:
D : in std_logic_vector ( 7 downto 0);
O D(7) correspond au MSB et D(0) correspond au LSB

Q : out std_logic_vector ( 0 to 4); 17


II.2.2 Les types:

L'emploi du type std_logic est possible via la library


IEEE1164 (cf. dclaration d'une Library):
Library ieee;
Use ieee.std_logic_1164.all;

18/05/2016 08:33:36 18
II-3 Dclaration de larchitecture correspondante
lentit : description du fonctionnement
Syntaxe de larchitecture:
architecture nom_ architecture of
nom_entit is
- - dclaration de constantes
- - dclaration des composants
- - dclaration de nouveaux types
- - dclaration de signaux
Begin
- -description du comportement
- - instructions du mode concurrent,
Appels de procdures et fonctions
End nom_ architecture ; 18/05/2016 08:33:36 19
VHDL III-Les oprateurs :

III.1 Laffectation simple : <=


permet de modifier ltat dun signal en fonction dautres
signaux et/ou dautre oprateurs.
Exemple avec des portes logiques : S1 <= E1 and E2

20
VHDL III-Les oprateurs :
III.2 Loperateur de concatnation : &
Cet oprateur permet de joindre des signaux entre eux .
Exemple :
-- Soit A et B de type trois bits et S1 de type huit bits,
-- A = 001 et B = 110
S1 <= A & B & 01;
-- S1 prendra la valeur suivante aprs cette affectation
-- S1 = 0 0 1 1 1 0 0 1
A B
18/05/2016 08:33:36 21
VHDL III-Les oprateurs :
III.3 Oprateur logiques :
Exemples :
S1 <= A sll 2 ;
- - S1= A dcal de deux
- - bits gauche
S2 <= A rol 3 ;
- - S2= A avec une rotation de
- - trois bits gauche
S3 <= not (R) ; 22

- - S3= R
VHDL III-Les oprateurs :
III.3 Oprateurs logiques :
Remarque: Pour raliser des dcalages logiques en synthse
logique, il est prfrable dutiliser les instructions suivantes :

Dcalage droite :

Dcalage gauche :

18/05/2016 08:33:36 23
VHDL III-Les oprateurs :
III.4 Oprateurs arithmtiques:

Remarque : Pour pouvoir utiliser les oprateurs ci-dessus il faut


rajouter les bibliothques suivantes au dbut du fichier VHDL:

18/05/2016 08:33:36 24
VHDL III-Les oprateurs :
III.5 Oprateurs relationnels:
Ils permettent de modifier ltat dun signal ou de signaux suivant
le rsultat dun test ou dune condition. En logique combinatoire
ils sont souvent utiliss avec les instructions :
- when . Else
- with select

25
VHDL IV-Les instructions de base :
IV.1 Les instructions du mode concurrent :
IV.1.1 Affectation conditionnelle :
Cette instruction modifie l'tat dun signal suivant le rsultat dune
condition logique entre un ou des signaux, valeurs, constantes.

Exemple1:

26
VHDL IV-Les instructions de base :
IV.1 Les instructions du mode concurrent :
IV.1.1 Affectation conditionnelle :

Exemple 2:

18/05/2016 08:33:36 27
VHDL IV-Les instructions de base :
IV.1 Les instructions du mode concurrent :
IV.1.2 Affectation slective :

Cette instruction permet d'affecter diffrentes valeurs un


signal, selon les valeurs prises par un signal dit de slection.

18/05/2016 08:36:38 28
VHDL IV-Les instructions de base :
IV.1 Les instructions du mode concurrent :
IV.1.2 Affectation slective :

Exemple :

18/05/2016 08:39:38 29
VHDL IV-Les instructions de base :
IV.2 Les instructions du mode squentiel:
IV.2.1 Dfinition d'un process:

Un process est une partie de la description d'un circuit dans


laquelle les instructions sont excutes squentiellement c'est
dire les unes la suite des autres.

Il permet d'effectuer des oprations sur les signaux en utilisant


les instructions standard de la programmation structure comme
dans les systmes microprocesseurs. 18/05/2016 08:50:20 30
VHDL IV-Les instructions de base :
IV.2 Les instructions du mode squentiel:
IV.2.1 Dfinition d'un process :

L'excution d'un process est dclenche par un ou des


changements d'tats de signaux logiques. Le nom de ces signaux
est dfini dans la liste de sensibilit lors de la dclaration du
process.

31
VHDL IV-Les instructions de base :
IV.2 Les instructions du mode squentiel:
IV.2.1 Dfinition d'un process :

Rgles de fonctionnement d'un process :


1) L'excution d'un process a lieu chaque changement d'tat
d'un signal de la liste de sensibilit.

2) Les instructions du process s'excutent squentiellement.

3) Les changements d'tat des signaux par les instructions du


process sont pris en compte la fin du process.
32
VHDL IV-Les instructions de base :
IV.2 Les instructions du mode squentiel:
IV.2.2 Les deux principales structures utilises dans un process :

Remarque:
A ne pas confondre entre
<= (implique) et =>(affecte).
33

Você também pode gostar