cours vhdl 10 partie2 structure programme
Post on 13-Nov-2015
31 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
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)
top related