Documente Academic
Documente Profesional
Documente Cultură
3. PROCESE SI SINCRONIZARI
Procesele :principala modalitate in descrierea VHDL.Capitolul arata cum sunt executate
procesele de simulator si cum pot fi utilizate la proiectarea si sinteza hardware.
Fiecare proces are alocat un calculator!
Definitie: Procesele sunt structuri concurente;corpul lor se executa secvential.
Un proces se activeaza sub controlul unei liste de senzitivitate.In cadrul procesului pot
exista stari WAIT,caz in care executia secventiala a procesului se opreste la intalnirea
unei stari WAIT si se continua dupa temporizarea(delay-ul) prescrisa de WAIT.
Cand cel putin o variabila din lista de senzitivitate isi modifica starea logica,corpul
ruleaza pana la sfarsit.
Sintaxa :
[eticheta :] process[(lista sensitivity)]
declaratii de tip
begin
corpul procesului(executie secventiala)
end process [eticheta :] ;
Procesele sunt utilizate pentru a descrie parti de functiuni din sistem, fara a intra in detalii
de implementare,deci se pot descrie hardware la un nivel inalt de abstractizare.Se pot descrie
vectori de test.
Procese=structuri concurente scrise in cadrul unei arhitecturi.Fiind structuri concurente,procesele
se executa paralel.Orice proces descrie separat o parte hardware sau un task autonom,concurent
cu alte task-uri
Un proces il putem vedea rulat pe un calculator dintr-un sistem mmultiprocesor.In corpul
procesului,se executa secvential intre begin si end.
3.2 LISTA DE SENZITIVITATE
Este o lista de semnale ce apare in paranteza dupa proces.Procesele se activeaza cand
apare un eveniment la unul din semnalele din lista(sa-si modifice starea).La eveniment,se
executa tot corpul,pana se ajunge la end.
Pentru exemplul 2,semnalul mask nu face parte din lista de senzitivitate.Cand apare un
eveniment,(schimb de stare) pentru mask,acest proces nu se ruleaza pentru ca mask nu
apartine listei de senzitivitate.eroare.Daca apare un eveniment la C,procesul se
ruleaza,chiard aca in corpul procesului nu se utilizeaza C.
Concluzie : lista de senzitivitate contine un set de semnale la care procesul este senzitiv
si nu neaparat intrari in proces :exempluCpoate fi o intrare de sincronizare
Nota :procesele utilizate in sinteza functiunilor logice combinationale trebuie sa aiba
lista de senzitivitate completa(toate intrarile sa apartina listei).Daca lipseste o
intrare din lista,procesul nu va recalcula iesirea cand intrarea in lista va schimba in
stare.
Acest tip de proces este de cele mai multe ori cea mai buna cale de a genera vectori
de test in test bench.In practica,procesul pentru test bench este mult mai complex,dar
principiul de baza este acelasi cu etapele :
1.Aplica o parte vectori ;
2.Asteapta un interval de timp precizat;
3.aplica alta parte vectori ;
4.asteapta un timp precizat ;
etc...
3.4 ASIGNARI DE SEMNALE IN PROCESE
Asignarile de semnale sunt utile pentru a crea evenimente asupra semnalelor si permit
in acest fel comunicarea intre procese (ordinea de executie este de la ultimul proces la primul).
Nota :in cadrul proceselor,asignarea este secventiala pe cand in cadrul arhitecturilor
asignarea este concurenta.
Sintaxa:[label:]nume_signal<=Expresie[after delay];
Expresie[];
..
unde Expresie descrie o operatie logica sau aritmetica.
In continuare se studiaza evolutia unui proces pentru a vedea exact ce se intampla:
Bstart
begin
secventa
end
feedback: process(S,R,Q,QB)
begin
..
Unele programe(tool) de sinteza accepta acelasi cod. Probleme sunt posibile sa apara la
optimizaresinteza crede ca este vorba despre un circuit combinational si nu intelege
comportarea secventiala a acestui bistabil.Solutia acestei probleme ramane ca tema.