Documente Academic
Documente Profesional
Documente Cultură
PROCESE
Definiii
unitatea
PROCESE
Sintaxa
{etichet:} {postponed} process {list_de_sensibilitate}
...
... Zona de declaraii locale procesului
...
begin
...
... Instruciuni secveniale
...
end {postponed} process {etichet};
15.03.2016
Curs 3 VHDL
PROCESE
Sintaxa
n
partea declarativ:
este
15.03.2016
Curs 3 VHDL
PROCESE
Execuia
un
Curs 3 VHDL
PROCESE
Execuia
un
Curs 3 VHDL
PROCESE
Suspendarea i reactivarea
funcionarea
dispozitivelor electronice:
opereaz
n bucl infinit
execut operaiile specifice
i suspend funcionarea
ateapt ndeplinirea unor condiii de reactivare
reiau operaiile
un
15.03.2016
Curs 3 VHDL
PROCESE
Instruciunea wait
scop:
Curs 3 VHDL
PROCESE
Instruciunea wait
3
tipuri de instruciuni
wait
complet:
Curs 3 VHDL
PROCESE
Instruciunea wait
localizarea
15.03.2016
Curs 3 VHDL
10
PROCESE
Instruciunea wait
restricii
15.03.2016
Curs 3 VHDL
11
PROCESE
15.03.2016
Curs 3 VHDL
12
PROCESE
13
PROCESE
Procese pasive
procesele
Curs 3 VHDL
14
PROCESE
Procese amnate
procesele
concurent assert
apelul concurent de procedur
asignarea concurent de semnal
15.03.2016
Curs 3 VHDL
15
PROCESE
Procese amnate
restricii
nu
15.03.2016
Curs 3 VHDL
16
PROCESE
Semnale n procese
restricii
de utilizare a semnalelor n
procese:
n
PROCESE
Variabile n procese
variabila
datelor
se poate defini n cadrul procesului - cuvnt
cheie variable
utilizare - la descriere de algoritmi n procese
15.03.2016
Curs 3 VHDL
18
PROCESE
Variabile n procese
asignarea
de valori:
cu
simbolul :=
instantanee
de cte ori este necesar
poate
Curs 3 VHDL
19
PROCESE
15.03.2016
Curs 3 VHDL
20
INSTRUCIUNI SECVENIALE
Instruciunea assert
supravegheaz
emite un mesaj
sintaxa:
assert condiie{report mesaj}{severity
nivel_de_severitate_al_erorii};
mesajul implicit: Assertion Violation
nivelul de severitate al erorii este de tipul
Severity_Level (Note, Warning, Error,
Failure),
cu
Error
valoare
implicit
15.03.2016
Curs 3 VHDL
21
INSTRUCIUNI SECVENIALE
Instruciunea report
permite
15.03.2016
Curs 3 VHDL
22
INSTRUCIUNI SECVENIALE
apelarea
15.03.2016
Curs 3 VHDL
23
INSTRUCIUNI SECVENIALE
Structura condiional
este
structurat
permite executarea condiionat a unor
secvene de instruciuni
cnd condiia boolean este True se execut
ramura if, pentru False se execut ramura
else
ramura elsif permite nlnuirea condiiilor
15.03.2016
Curs 3 VHDL
24
INSTRUCIUNI SECVENIALE
Structura condiional
sintaxa:
if condiie_boolean_1 then
-- Secvena_de_instruciuni_1
elsif condiie_boolean_2 then
-- Secvena_de_instruciuni_2
else
-- Secvena_de_instruciuni_3
end if;
15.03.2016
Curs 3 VHDL
25
INSTRUCIUNI SECVENIALE
Instruciunea case
permite
Curs 3 VHDL
26
INSTRUCIUNI SECVENIALE
Instruciunea case
sintaxa:
case expresie is
when Valoare_1 =>
-- Secv_instruciuni_1
when Valoare_2|Valoare_3|Valoare_4 =>
-- Secv_instruciuni_2
when Valoare_5 to Valoare_6 =>
-- Secv_instruciuni_3
...
when others =>...
-- Secv_instruciuni_n
end
case;
15.03.2016
Curs 3 VHDL
27
INSTRUCIUNI SECVENIALE
Structura de bucl
permite
Curs 3 VHDL
28
INSTRUCIUNI SECVENIALE
Structura de bucl
sintaxa
general:
{etichet:} {schem de iteraie} loop
-- Secvena_de_instruciuni
end loop {etichet};
15.03.2016
Curs 3 VHDL
29
INSTRUCIUNI SECVENIALE
Structura de bucl
prima
schem de iteraie:
att
Curs 3 VHDL
30
INSTRUCIUNI SECVENIALE
Structura de bucl
a
secvena
15.03.2016
31
INSTRUCIUNI SECVENIALE
Structura de bucl
a
nu
Curs 3 VHDL
32
INSTRUCIUNI SECVENIALE
Instruciunea next
permite
fr
15.03.2016
etichet se refer
la
bucla
cea
mai
de
jos
Curs 3 VHDL
33
INSTRUCIUNI SECVENIALE
Instruciunea exit
ieirea din bucl
ntrerupe toate iteraiile restante ale buclei
execuia continu cu instruciunea de dup
end loop
poate fi:
permite
exit {eticheta_buclei};
condiional (ieire cnd condiia este
adevrat): exit {eticheta_buclei} when condiie;
imperativ:
fr
15.03.2016
etichet se refer
la
bucla
cea
mai
de
jos
Curs 3 VHDL
34
INSTRUCIUNI SECVENIALE
Instruciunea return
este
rezervat subprogramelor
la execuia ei se suspend subprogramul i
controlul revine apelantului
poate fi folosit pentru a ntrerupe o
procedur i a reveni n programul apelant
nu trebuie s i se asocieze o valoare: return;
15.03.2016
Curs 3 VHDL
35
INSTRUCIUNI SECVENIALE
Instruciunea return
orice
Curs 3 VHDL
36
INSTRUCIUNI SECVENIALE
Instruciunea nul
se
Curs 3 VHDL
37
SUBPROGRAME
Generaliti
permit
procedure
funcii: function
apelul
Curs 3 VHDL
38
SUBPROGRAME
Declaraia de subprogram
subprogramele
declaraia
au 2 pri:
(specificaia)
corpul
declaraia
indic:
genul
Curs 3 VHDL
39
SUBPROGRAME
Declaraia de subprogram
sintaxa:
procedur
parametrilor formali
Curs 3 VHDL
40
SUBPROGRAME
- in
implicit
parametrii
ieire
- out
numai
pentru proceduri
parametrii nu se pot citi
combinat
numai
15.03.2016
pentru proceduri
permite orice citire i scriere
Curs 3 VHDL
41
SUBPROGRAME
Corpul subprogramului
conine
algoritmul implementat
nu permite declararea semnalelor
sintaxa:
antet_sub-program is
{partea declarativ}
begin
{partea rezervat instruciunilor}
end {nume_sub-program};
15.03.2016
Curs 3 VHDL
42
SUBPROGRAME
Apelul
poate
poziie
prin denumire (cu =>)
15.03.2016
Curs 3 VHDL
43
SUBPROGRAME
Suprancrcarea
2
15.03.2016
Curs 3 VHDL
44
ARHITECTURI CONCURENTE
Generaliti
VHDL
ARHITECTURI CONCURENTE
Generaliti
transferul
15.03.2016
Curs 3 VHDL
46
ARHITECTURI CONCURENTE
Procese elementare
procesele
15.03.2016
Curs 3 VHDL
47
ARHITECTURI CONCURENTE
-- intrare
-- selecii
-- ieiri
-- semnal intern
-- selectarea unei ieiri
-- valoarea ieirii
48
ARHITECTURI CONCURENTE
Curs 3 VHDL
49
ARHITECTURI CONCURENTE
Curs 3 VHDL
50
ARHITECTURI CONCURENTE
15.03.2016
51
ARHITECTURI CONCURENTE
n
ARHITECTURI CONCURENTE
15.03.2016
Curs 3 VHDL
53
ARHITECTURI CONCURENTE
Funcia de rezoluie
semnalele
Curs 3 VHDL
54
ARHITECTURI CONCURENTE
Funcia de rezoluie
tipul
15.03.2016
Curs 3 VHDL
55
INSTRUCIUNI CONCURENTE
Paralelism
la
15.03.2016
Curs 3 VHDL
56
INSTRUCIUNI CONCURENTE
Instruciunea block
are
3 funcii principale:
ncapsularea
15.03.2016
Curs 3 VHDL
57
INSTRUCIUNI CONCURENTE
Instruciunea block
sintaxa:
Curs 3 VHDL
58
INSTRUCIUNI CONCURENTE
Instruciunea block
de gard = expresie boolean
antetul opional indic importarea din mediul
exterior:
condiia
valori
declarativ:
vizibil
numai local
nu permite declaraii de variabile locale
15.03.2016
Curs 3 VHDL
59
INSTRUCIUNI CONCURENTE
Instruciuni gardate
nlocuiesc
Curs 3 VHDL
60
INSTRUCIUNI CONCURENTE
Curs 3 VHDL
61
INSTRUCIUNI CONCURENTE
Instruciunea assert
aceeai
15.03.2016
Curs 3 VHDL
62
INSTRUCIUNI CONCURENTE
Curs 3 VHDL
63
INSTRUCIUNI CONCURENTE
if condiie_boolean_1 then
nume_sau_agregat <= {transport} form_de_und_1;
elsif condiie_boolean_2 then
nume_sau_agregat <= {transport} form_de_und_2;
...
else
nume_sau_agregat <= {transport} form_de_und_n;
end
if;
15.03.2016
Curs 3 VHDL
64
INSTRUCIUNI CONCURENTE
formei selective:
{etichet:} with expresie select
nume_sau_agregat <= {guarded}{transport}
form_de_und_1 when alegere_1,
form_de_und_2 when alegere_2,
...
form_de_und_n when alegere_n;
15.03.2016
Curs 3 VHDL
65
INSTRUCIUNI CONCURENTE
case expresie is
when alegere_1 =>
nume_sau_agregat <= {transport} form_de_und_1;
when alegere_2 =>
nume_sau_agregat <= {transport} form_de_und_2;
...
when alegere_n =>
nume_sau_agregat <= {transport} form_de_und_n;
end
15.03.2016case;
Curs 3 VHDL
66
INSTRUCIUNI CONCURENTE
INSTRUCIUNI CONCURENTE
68
INSTRUCIUNI CONCURENTE
15.03.2016
Curs 3 VHDL
69
INSTRUCIUNI CONCURENTE
Instruciunea generate
permite
Curs 3 VHDL
70
INSTRUCIUNI CONCURENTE
Instruciunea generate
sintaxa:
forma
condiional
etichet: if condiie_boolean generate
Secven de instruciuni concurente
end generate {etichet};
forma iterativ
etichet:
for
nume_parametru_de_generare
interval_discret generate
Secven de instruciuni concurente
end
generate {etichet}; Curs 3 VHDL
15.03.2016
in
71
MODULE DE SIMULARE
Scop
proces de proiectare presupune i
etapa de verificare
n VHDL - mai multe metode de verificare
modul de simulare (test bench) = mediu n
care un proiect UST (unitate supus
testrii) este verificat prin aplicarea unor
semnale numite stimuli i observarea
rspunsurilor generate
orice
15.03.2016
Curs 3 VHDL
72
MODULE DE SIMULARE
Elemente
soclu
testat
generator de stimuli - subsistem care aplic
stimuli proiectului testat
stimuli
generai intern
stimuli preluai de la o surs extern de semnale
de monitorizare a rspunsurilor
la stimuli, generate de sistemul supus testrii
instrumente
15.03.2016
Curs 3 VHDL
73
MODULE DE SIMULARE
Elemente n VHDL
modulul
specificaie
hibrid: structural +
comportamental
Curs 3 VHDL
74
MODULE DE SIMULARE
Elemente n VHDL
stimulii:
pot
formele
15.03.2016
75
MODULE DE SIMULARE
Structur
cu entitate i arhitectur
entitatea modulului de simulare:
specificaie
arhitectur
fi instaniere direct
instanierea unei componente
Curs 3 VHDL
poate
15.03.2016
76
MODULE DE SIMULARE
Structur
stimulii
- element esenial:
set
15.03.2016
77
MODULE DE SIMULARE
Structur
arhitectura
15.03.2016
Curs 3 VHDL
78
MODULE DE SIMULARE
Utilizare
la
Curs 3 VHDL
79
MODULE DE SIMULARE
Exemple - poart I cu 2 intrri
-- Entitatea modulului de simulare
entity ModulSimulare is
end ModulSimulare;
architecture ArhModulSimulare of ModulSimulare is
-- Declararea componentei
component Poarta_I is
port (A, B: in Bit; Y: out Bit);
end component;
-- Declararea stimulilor
signal A, B, C: Bit;
begin
-- Instanierea unitii supuse testrii (UST)
UST: Poarta_I port map (A, B, C);
-- Semnalele de stimulare ca forme de und
A <= '0', '1' after 20 ns, '0' after 40 ns, 1 after 60 ns;
B <= '1', '0' after 40 ns, '1' after 80 ns;
end ArhModulSimulare;
15.03.2016
Curs 3 VHDL
80
MODULE DE SIMULARE
MODULE DE SIMULARE
afiarea
Curs 3 VHDL
82
MODULE DE SIMULARE
Instruciunea assert
utilizat
15.03.2016
Curs 3 VHDL
83
PACHETE STANDARD I
PREDEFINITE
Pachete standard
Standard
Textio
definite
15.03.2016
Curs 3 VHDL
84
PACHETE STANDARD I
PREDEFINITE
Pachete predefinite
- norm IEEE
IEEE Numeric_Std
IEEE Numeric_Bit
Std_Logic_Arith al firmei Synopsys
Std_Logic_Unsigned al firmei Synopsys
...
Std_Logic_1164
15.03.2016
Curs 3 VHDL
85