-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
1/46
VHDL - Logique programmable
Partie 2- La structure dun programme VHDL Denis Giacona ENSISA
cole Nationale Suprieure d'Ingnieur Sud Alsace 12, rue des frres
Lumire 68 093 MULHOUSE CEDEX FRANCE Tl. 33 (0)3 89 33 69 00
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
2/46
1. Prambule
......................................................................................................................................................................................................................
4
1.1. Les objectifs de la programmation VHDL pour un circuit FPGA
...............................................................................................................
41.2. Quelques caractristiques du langage
.............................................................................................................................................................
51.3. La porte des instructions
.................................................................................................................................................................................
61.4. Quelques rgles adopter
.................................................................................................................................................................................
7
1.4.1. Indenter les instructions
.............................................................................................................................................................................
71.4.2. Appliquer une rgle de dnomination des identificateurs
................................................................................................................
8
2. Aperu de la programmation VHDL
.....................................................................................................................................................................
93. lments fondamentaux du langage VHDL
......................................................................................................................................................
15
3.1. Les commentaires
...............................................................................................................................................................................................
153.2. Les identificateurs
.........................................................................................................................................................................................
153.3. Les objets donnes : signal, constante, variable
....................................................................................................................................
163.4. Les types des objets donnes
......................................................................................................................................................................
17
3.4.1. Les types prdfinis par tous les compilateurs
................................................................................................................................
173.4.2. Les types complmentaires
....................................................................................................................................................................
183.4.3. Conversions de type
.................................................................................................................................................................................
193.4.4. Usage courant du type integer
.............................................................................................................................................................
203.4.5. Les littraux
..............................................................................................................................................................................................
21
3.5. Les oprateurs
................................................................................................................................................................................................
223.5.1. Oprateurs de construction dexpressions
.......................................................................................................................................
223.5.2. Oprateurs dassignation et dassociation
.........................................................................................................................................
23
3.6. Les dclarations et les assignations des signaux vecteurs
..................................................................................................................
243.7. Surcharge doprateurs
................................................................................................................................................................................
253.8. Les attributs
...................................................................................................................................................................................................
26
4. Rle de l'entit
......................................................................................................................................................................................................
284.1. Description dune entit non gnrique
........................................................................................................................................................
28
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
3/46
4.2. Description dune entit gnrique
.............................................................................................................................................................
314.3. Les modes des ports
......................................................................................................................................................................................
34
5. Rle du corps d'architecture
.............................................................................................................................................................................
365.1. Syntaxe
................................................................................................................................................................................................................
365.2. Dclarations dans larchitecture
................................................................................................................................................................
375.3. Instructions concurrentes
...........................................................................................................................................................................
39
5.3.1. Proprits
..................................................................................................................................................................................................
395.3.2. Classification des styles de description
............................................................................................................................................
405.3.3. Exemple 1 : architecture comportant trois styles diffrents
.....................................................................................................
435.3.4. Exemple 2 : comparatif de deux styles pour un mme bloc
logique
............................................................................................
455.3.5. Exemple 3 : style description structurelle
.................................................................................................................................
46
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
4/46
1. Prambule
1.1. Les objectifs de la programmation VHDL pour un circuit
FPGA
Logiciel de simulation
Logiciel de synthse (configuration de circuits logiques
programmables)
Des instructions pour dcrire les signaux de test
Des instructions pour dcrire le comportement du systme -
fonctions combinatoires - fonctions squentielles
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
5/46
1.2. Quelques caractristiques du langage
Syntaxe complexe o pour aider le concepteur, les outils de
dveloppement proposent des modles
(templates) et des convertisseurs de schmas en code VHDL Langage
strict par rapport aux types et aux dimensions des donnes
o avantage : limination dun grand nombre derreurs de conception
ds la compilation Trs bonne portabilit
o condition d'crire un code indpendant de la technologie
Plusieurs styles de description
o tous les styles ne conviennent pas toutes les applications o
toutes les instructions ne sont pas synthtisables
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
6/46
1.3. La porte des instructions
Les instructions modlisent un cblage matriel lorsquelles sont
destines la configuration dun circuit CPLD/FPGA ou la ralisation
dun ASIC.
Les instructions ressemblent celles dun langage impratif, mais
pour bon
nombre dentre elles, lordre na pas dimportance ; dans ce cas,
elles modlisent naturellement le paralllisme.
Le style de code et les types dinstructions influent sur les
niveaux logiques des circuits ; utiliser : certains oprateurs,
clock enable, one hot encoding (grosses FSM), shift registers ddis,
I/O regsters ddis,
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
7/46
1.4. Quelques rgles adopter
1.4.1. Indenter les instructions architecture
arch_bcdcnt4_ar_en_comb of bcdcnt4_ar_en_comb is
signal count_i : std_logic_vector(3 downto 0); begin count_proc:
process (clk) begin if clk'event and clk = '1' then if en = '1'
then if count_i < x"9" then count_i
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
8/46
1.4.2. Appliquer une rgle de dnomination des identificateurs
Donner des noms qui ont une signification Anglais, minuscules et
undescore Quelques suggestions :
o Horloge : clk o Reset synchrone (mise 0) : rst, sr o Set
synchrone (mise 1) : set, sp o Read/write actif l'tat haut : rw o
Dcodeur 1 parmi 8 : dec1of8 o Multiplexeur 2 vers : mux2to1 o
Registre de mmorisation 4 bits : reg4 o Registre dcalage 4 bits :
shift_reg4 o Compteur 8 bits (binaire naturel) : count8, cnt8 o
Entre incrmentation dun compteur 8 bits : up_count8, up_cnt8 o
Sortie retenue dun compteur 8 bits : co_count8, co_cnt8 o Compteur
BCD : cntbcd, bcdcnt o Compteur (signal interne) : count_int o
tiquette de processus de comptage : count_proc
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
9/46
2. Aperu de la programmation VHDL Imaginer un schma-bloc (tape
importante)
Cahier des charges Spcifications
fonctionnelles Spcifications
technologiques Systme
A C
B
Dcomposition hirarchique du systme en un bloc principal et des
sous-blocs (qui peuvent leur tour tre dcomposs).
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
10/46
Exemple de dcomposition
tempo1ms
control clk
cnt10 en cnt(9:0) rst clk
a up_cnt10 rst_cnt10
compare (d = max) d(9:0)
cnt10(9:0) max_cnt10
clk
t
Signal interne
Signal externe
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
11/46
Comment passer du schma-bloc au code VHDL ?
Cas : on dispose dun diteur de schma Au niveau le plus lev
(top
level), le schma est converti automatiquement en code VHDL dans
un style appel description structurelle .
Cas : on dispose uniquement dun diteur de texte On crit soi-mme
le code
VHDL en choisissant un ou plusieurs styles de codage (parmi
3)
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
12/46
Aperu des styles de codage
Style description structurelle Les 3 sous-blocs A, B et C sont
dcrits en premier, par 3 couples (entity, architecture) dans 3
units de compilation.1 Larchitecture de chaque sous-bloc est dcrite
dans un style au choix du concepteur. Le bloc principal Systme est
dcrit ensuite, galement par un couple (entity, architecture).
Larchitecture comporte 3 instructions dinstanciation de composants
(les 3 sous-blocs).
1 Les units de compilation peuvent, par dfinition, tre compiles
sparment.
entity -- entres sorties du bloc A end ; architecture --
description des fonctions du bloc A end ; entity -- entres sorties
du bloc B end ; architecture -- description des fonctions du bloc B
end ; entity -- entres sorties du bloc C end ; architecture --
description des fonctions du bloc C end ; entity -- entres sorties
du bloc Systme end ; architecture -- instructions dinstanciation
des blocs A, B et C end ;
Unit de compilation 1
Unit de compilation 2
Unit de compilation 3
Unit de compilation 4
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
13/46
Autres styles
Le bloc principal Systme est obligatoirement dcrit par un couple
(entity, architecture). Larchitecture est dcrite dans un style au
choix du concepteur.
entity -- entres sorties du bloc Systme
end ; architecture
-- description des fonctions des blocs A, B et C end ;
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
14/46
La description VHDL du bloc principal tempo1ms comporte
obligatoirement deux parties :
une dclaration dentit qui dfinit les entres-sorties une
architecture qui dtermine le comportement
-- dclaration des entres-sorties entity tempo1ms is
... end tempo1ms; -- description du comportement architecture
arch_tempo1ms of tempo1ms is
... begin -- description du compteur cnt10_proc: process
(rst,clk) -- description du contrleur control_proc: process (rst,
clk) -- description du comparateur compare: max_cnt10
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
15/46
3. lments fondamentaux du langage VHDL
3.1. Les commentaires -- Un commentaire commence par deux tirets
conscutifs et s'arrte la fin de la ligne /* Ici commence un bloc de
commentaire. Autoris uniquement avec la norme VHDL-2008 */
3.2. Les identificateurs Les identificateurs sont des
appellations dobjets du langage (donnes et types). Ils sont
constitus de caractres alphabtiques (26 lettres), numriques (10
chiffres
dcimaux) et du caractre soulign _ ; les lettres accentues sont
exclues Le premier caractre doit tre une lettre Les lettres
majuscules et minuscules sont quivalentes Le dernier caractre doit
tre diffrent de _ Deux _ la file sont interdits Le nom ne doit pas
tre un mot rserv La longueur dun mot est quelconque (mais une ligne
maximum)
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
16/46
3.3. Les objets donnes : signal, constante, variable
signal count : std_logic_vector(3 downto 0) := 0000;
Les signaux portent les informations des liaisons dentre, des
liaisons de sortie et des liaisons internes. Lassignation initiale
de certains signaux internes est conseille pour une synthse.
constant max : std_logic_vector(9 downto 0) := "1111100111";
Les constantes reoivent leur valeur dfinitive au moment de leur
dclaration.
variable temp : integer range 0 to 999 := 0 ;
Les variables ne sont dclares et utilises que dans les
processus, les fonctions et les procdures. Lassignation initiale
est facultative.
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
17/46
3.4. Les types des objets donnes
3.4.1. Les types prdfinis par tous les compilateurs
integer : entier ngatif ou positif natural : entier positif ou
nul positive : entier positif bit : numr dont les deux seules
valeurs possibles sont 0 et 1 bit_vector : composite tableau
reprsentant un vecteur de bits boolean : numr dont les deux valeurs
possibles sont false et true real : flottant compris entre -1.0E38
et 1.0E38
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
18/46
3.4.2. Les types complmentaires
std_logic -- 9 valeurs dcrivant tous les tats dun signal logique
U : non initialis (uninitialized, unconnected)2 X : niveau inconnu
(unknown)3 0 : niveau bas 1 : niveau haut Z : haute impdance W :
niveau inconnu, forage faible (weak unknown)1 L : niveau bas,
forage faible (weak low) H : niveau haut, forage faible (weak high)
- : indiffrent (dont care)
std_logic_vector -- vecteur de std_logic Pour autoriser lusage
de ces types, il faut inclure les directives suivantes avant la
dclaration dentit.
library ieee; use ieee.std_logic_1164.all;
2 Interdit pour la synthse, destin la simulation uniquement 3 En
synthse, trait comme dont care
Ce sont les types quil faut utiliser de prfrence dans toutes les
dclarations des ports dentre-sortie.
Ils sont compatibles pour la simulation et la synthse.
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
19/46
3.4.3. Conversions de type Les environnements de dveloppement
fournissent en gnral des paquetages comportant des fonctions de
conversion de type. Par exemple, la bibliothque de Xilinx ISE
contient : conv_integer (a)
o pour convertir un std_logic_vector a en un integer
conv_unsigned (x,n)
o pour convertir un std_logic_vector, integer, unsigned ou
signed x en un unsigned de n bits (ralise un changement de
taille)
conv_signed (x,n) o pour convertir un std_logic_vector, integer,
signed ou unsigned x en un signed de n bits
(ralise un changement de taille) conv_std_logic_vector (x,n)
o pour convertir un integer, unsigned ou signed x en un
std_logic_vector de n bits Pour utiliser ces fonctions, il suffit
daccder au paquetage std_logic_arith de la bibliothque ieee
library ieee ; use ieee. std_logic_arith.all;
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
20/46
3.4.4. Usage courant du type integer
pour un signal servant de compteur (logique squentielle
synchrone) ; en synthse, la valeur courante de comptage doit tre
convertie en std_logic_vector avant d'tre applique sur une
sortie
pour une variable servant d'indice pour un std_logic_vector
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
21/46
3.4.5. Les littraux
Les entiers dcimaux 1234 1_520_473 -- pour amliorer la
lisibilit
Les bits 0, 1 -- type bit 0, 1 ,U, X, H, L, W, Z, - -- type
std_logic
Les vecteurs de bits 1010 -- reprsentation binaire O12 --
reprsentation octale XA -- reprsentation hexadcimale
Les caractres a
Les chanes de caractres ERREUR, ERREUR & N
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
22/46
3.5. Les oprateurs 3.5.1. Oprateurs de construction
dexpressions
Les oprateurs relationnels permettent de comparer des oprandes
de mme type et dindiquer
lgalit, lingalit ou leur relation dordre. Ils sont utiliss dans
des instructions de test. Ils rendent une valeur boolenne (false ou
true).
= < >= /=
Les oprateurs logiques sont dfinis pour les types boolean, bit,
std_logic et les vecteurs correspondants
and or not nand nor xor
and nest pas prioritaire par rapport or (utiliser des
parenthses)
Les oprateurs arithmtiques sont dfinis pour les types entiers et
rels + - * / ** mod rem abs
Les oprateurs de concatnation et dagrgation groupent des lments
de mme type & ( , , )
Les oprateurs de dcalage et de rotation sont dfinis sur le type
bit_vector sll srl sla sra ror rol
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
23/46
3.5.2. Oprateurs dassignation et dassociation
Assignation de variable nom_variable := expression ;
o lintrieur dun processus Assignation de signal (dynamique)
nom_signal nom_signal_effectif ;
o connecteur de signaux dans une instanciation de composant
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
24/46
3.6. Les dclarations et les assignations des signaux vecteurs
signal a : std_logic_vector (0 to 7); signal b : std_logic_vector
(7 downto 0); a
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
25/46
3.7. Surcharge doprateurs
Les environnements de programmation comportent des paquetages
dans lesquels certains oprateurs sont redfinis. Dans loutil Xilinx
ISE, laddition (+), la soustraction (-), la multiplication et la
division de
vecteurs sont dfinies dans le paquetage std_logic_unsigned de la
bibliothque ieee
library ieee ; use ieee.std_logic_unsigned.all ;
A propos de la multiplication et de la division : Loprateur de
multiplication * est synthtisable (c.--d. que le compilateur est
capable de
produire une structure matrielle RTL) Loprateur de division /
nest pas synthtisable de faon gnrale
xint
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
26/46
3.8. Les attributs Les attributs sont des proprits spcifiques
que lon peut associer aux signaux et aux types. La valeur dun
attribut peut tre exploite dans une expression. Attribut valeur sur
des types scalaires ou des lments (signaux, constantes, variables)
de
type scalaire 'left, 'right, 'high, 'low, 'length Attribut
fonction sur des types discrets ordonns 'pos, 'val, 'succ, 'pred,
'leftof, 'rightof Attribut fonction sur des signaux 'event Attribut
intervalle sur un signal dimensionn 'range, 'reverse_range
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
27/46
library ieee; use ieee.std_logic_1164.all; entity attributs is
port( vector_dwn : in std_logic_vector(15 downto 0); vector_up : in
std_logic_vector(0 to 7); x : out std_logic_vector(7 downto 0); y :
out std_logic_vector(0 to 11); z : out std_logic_vector(7 downto
0)); end attributs; architecture arch_attributs of attributs is
begin x(0)
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
28/46
4. Rle de l'entit La dclaration dentit dcrit une interface
externe unique. La dclaration comprend :
o ventuellement, une liste de paramtres gnriques, o la dfinition
des ports, c.--d. une liste de signaux dentre et de signaux de
sortie, chaque signal possdant un nom, un mode et un type.
4.1. Description dune entit non gnrique
entity nom_entit is port ( [signal] nom_signal {,nom_signal} :
[mode] type_signal {;[signal] nom_signal {,nom_signal} : [mode]
type_signal}
); end [entity] nom_entit;
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
29/46
tempo1ms
control clk
cnt10 en cnt(9:0) rst clk
a up_cnt10 rst_cnt10
compare (d = max) d(9:0)
cnt10(9:0) max_cnt10
clk
t
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
30/46
entity tempo1ms is
port (
clk : in std_logic; a : in std_logic; t : out std_logic);
end tempo1ms;
Nom de lentit
Nom du signal
Mode du signal
Type de signal
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
31/46
4.2. Description dune entit gnrique
entity nom_entit is
generic ( nom_paramtre {,nom_paramtre} : type_paramtre [:=
expression_statique] {; nom_paramtre {,nom_paramtre} :
type_paramtre [:= expression_statique]} ); port ( [signal]
nom_signal {,nom_signal} : [mode] type_signal
{; [signal] nom_signal {,nom_signal} : [mode] type_signal} );
end [entity] nom_entit;
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
32/46
Exemple : calcul de loppos arithmtique
Schma de principe pour une fonction de dimension 3
HA s a co b
HA s a co b
HA s a co b
x(0)
x(1)
x(2)
y(0)
y(1)
y(2)
inverse c(0)
c(1)
c(2)
opposite_3
a(0)
a(1)
a(2)
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
33/46
entity opposite_n is generic (n : integer := 3); port ( x : in
std_logic_vector(n-1 downto 0); inverse : in std_logic; y : out
std_logic_vector (n-1 downto 0)); end opposite_n;
Paramtre gnrique
Valeur par dfaut
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
34/46
4.3. Les modes des ports VHDL dfinit quatre modes qui dterminent
le sens de transfert dune donne au travers du port :
in Lentit lit un signal dentre fourni par lextrieur (ex : load,
reset, clock, donnes unidirectionnelles) out Lentit fournit un
signal de sortie, mais ne peut pas relire ce signal buffer
Larchitecture de lentit fabrique un signal utilisable en sortie,
qui peut aussi tre relu par lentit comme un signal interne inout Le
signal est bidirectionnel : en sortie, il est fourni par lentit; en
entre, il est fourni par lextrieur. Ce mode autorise aussi le
bouclage interne (ex : bus de donnes)
Par dfaut, le mode dun port est in. Ne pas utiliser le mode
buffer pour une synthse : peut provoquer des erreurs !!
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
35/46
Buffer
In
In
In
Out
Inout
Out
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
36/46
5. Rle du corps d'architecture
Le corps darchitecture dcrit le fonctionnement interne du bloc
logique
5.1. Syntaxe
architecture nom_architecture of nom_entit is {
dclaration_de_composant | dclaration_de_constante |
dclaration_de_signal_interne | dclaration_de_type |
dclaration_d'alias} begin {
instruction_concurrente_d'assignation_de_signal |
instruction_concurrente_d'instanciation_de_composant |
instruction_concurrente_de_processus | instruction_de_gnration} end
[architecture] [nom_architecture];
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
37/46
5.2. Dclarations dans larchitecture
HA s a co b
HA s a co b
HA s a co b
x(0)
x(1)
x(2)
y(0)
y(1)
y(2)
inverse c(0)
c(1)
c(2)
opposite_3
a(0)
a(1)
a(2) msb
lsb
Composant half adder
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
38/46
architecture behavioral of opposite_3 is
-- dclaration de composant component ha port( a, b : in
std_logic; co, s : out std_logic); end component; -- dclaration des
signaux internes signal a, c : std_logic_vector(n-1 downto 0); --
dclaration dalias
alias lsb : std_logic is y(0) ; alias msb : std_logic is y(n-1)
;
begin ... end behavioral ;
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
39/46
5.3. Instructions concurrentes
5.3.1. Proprits Lordre dcriture des instructions na pas
dimportance (cest le paralllisme)
Une instruction concurrente dcrit une opration qui porte sur des
signaux (entre, interne) pour produire dautres signaux (interne,
sortie)
Tous les signaux mis en jeu dans larchitecture sont disponibles
au mme moment
Le corps darchitecture est dcrit dans un ou plusieurs styles Le
style nest pas impos par le type de logique (combinatoire ou
squentielle) ou le type de
traitement des donnes (parallle ou squentiel) Le style est
choisi pour apporter concision ou par prfrence personnelle
Trois styles peuvent coexister au sein dune mme architecture
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
40/46
5.3.2. Classification des styles de description
Description flot de donnes : instructions concurrentes
dassignation de signal Description de la manire dont les donnes
circulent de signal en signal, ou dune entre vers
une sortie Trois types dinstructions :
tiquette :
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
41/46
Description structurelle : instructions concurrentes
dinstanciation de composant Interconnexion de composants
(components), la manire dun schma, mais sous forme dune
liste Dans larchitecture utilisatrice, un composant peut tre
considr comme une bote noire Un composant est instanci laide dune
instruction dappel de composant :
tiquette : nom_composant port map ( liste_des_entres_et_sorties
); Lordre dcriture des instructions dinstanciation de composants
est quelconque Par dfinition, un composant est aussi un systme
logique (un sous-sytme) ; ce titre, il doit
aussi tre dcrit par un couple (entity, architecture) dans lequel
sont dfinis ses entres-sorties et son comportement
Le corps darchitecture du composant (le comportement) est dcrit
selon un ou plusieurs styles ; par exemple, un composant peut faire
appel dautres composants
Un composant peut tre rang dans une bibliothque
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
42/46
Description comportementale : instructions concurrentes dappel
de processus
Certains comportements peuvent tre dcrits de faon algorithmique
; il faut alors les dfinir comme des processus
Dans larchitecture utilisatrice, un processus est considr comme
une instruction concurrente Instruction dappel de processus :
tiquette: process dclarations begin instructions_squentielles
end process; Lordre dcriture des instructions dappel de processus
est quelconque Un processus contient des instructions squentielles
qui ne servent qu traduire simplement et
efficacement, sous forme dun algorithme, le comportement dun
sous-ensemble matriel Des instructions squentielles (un algorithme)
peuvent dcrire un systme combinatoire ; a
contrario, une instruction concurrente peut dcrire un systme
squentiel !! lintrieur dun processus, trois types dinstruction
dassignation de signaux et deux types
dinstruction ditration :
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
43/46
5.3.3. Exemple 1 : architecture comportant trois styles
diffrents Conception schmatique laide dun diteur de schmas (par
exemple Active-HDL)
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
44/46
Conception directe VHDL laide dun diteur de texte
entity systeme is port(... architecture arch_systeme of systeme
is signal x,y ... -- dclaration des signaux internes ... begin --
B1 (Description par flot de donnes) -- B2 (Description
comportementale) -- B3 (Description structurelle) end
arch_systeme;
-- Instruction concurrente dassignation de signalB1 : x
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
45/46
5.3.4. Exemple 2 : comparatif de deux styles pour un mme bloc
logique
-- Style flot de donnes architecture archmux of mux4_1 is begin
x
-
VHDL Logique programmable Partie 2 La structure dun programme
VHDL
D.Giacona
46/46
5.3.5. Exemple 3 : style description structurelle begin a(0)