În această lucrare se prezintă principiul simulatoarelor şi al simulării funcţionale asistate de
calculator pentru circuite, iar apoi se prezintă un exemplu de simulare utilizând utilitarele puse la
dispoziţie de sistemul de proiectare Xilinx ISE pentru simularea funcţională a circuitelor. Aceste
utilitare sunt programul HDL Bencher, care permite crearea unor bancuri de test necesare pentru
simulare, şi simulatorul ModelSim, care permite simularea circuitelor specificate prin scheme logice
sau limbaje de descriere hardware.
1. Simularea asistată de calculator
1.1. Principiul simulării asistate de calculator
Simularea unui circuit permite verificarea funcţionării circuitului pe baza specificării acestuia
prin oricare din metodele uzuale (limbaje de descriere hardware, scheme, diagrame de stare), înainte
de implementarea efectivă a circuitului. Simularea asistată de calculator este metoda cea mai utilizată
pentru simularea circuitelor, utilizarea acestei metode devenind posibilă şi pentru sistemele digitale
complexe odată cu creşterea semnificativă a performanţei sistemelor de calcul moderne. Simularea se
realizează cu ajutorul unui program simulator, care construieşte un model al circuitului pe baza
descrierii acestuia de către proiectant, model care este echivalent cu o copie virtuală a circuitului
proiectat. Simulatorul execută apoi modelul circuitului şi analizează răspunsul acestuia la o serie de
combinaţii ale intrărilor aplicate circuitului într-un anumit interval de timp; o asemenea combinaţie
este numită vector de test sau stimul.
Pe lângă vectorii de test, proiectantul poate specifica şi ieşirile aşteptate ale circuitului pentru
fiecare vector. În acest caz, simulatorul va compara ieşirile generate prin execuţia modelului cu cele
specificate de proiectant, care sunt cunoscute ca fiind corecte, afişând mesaje de eroare în cazul
existenţei unor diferenţe între acestea. Dacă se detectează erori la simulare, descrierea circuitului
poate fi corectată mult mai simplu decât în cazul în care circuitul a fost implementat.
Pentru simularea sistematică a funcţionării unui circuit, de multe ori se creează un banc de
test (“testbench”), constând din circuitul care trebuie testat şi module adiţionale pentru generarea
vectorilor de test şi aplicarea acestora la intrările circuitului. Vectorii de test pot fi reprezentaţi fie de
toate combinaţiile posibile ale intrărilor circuitului (dacă este posibil), fie de combinaţiile
reprezentative pentru toate situaţiile de funcţionare. Prin utilizarea bancurilor de test este posibilă
simularea circuitului în condiţii reale, când acestuia i se aplică intrări din mediul exterior, de la un
operator uman, sau de la un alt circuit sau sistem digital.
Simularea asistată de calculator are următoarele avantaje principale:
• Simularea permite experimentarea cu diferite variante de proiectare şi condiţii de funcţionare
ale circuitului, fără a fi necesară implementarea acestor variante. Proiectantul va putea
implementa apoi varianta cea mai eficientă din punctul de vedere al performanţelor şi al
costului.
• Prin utilizarea simulării asistate de calculator este posibilă testarea sistematică a circuitelor
prin aplicarea unui număr mare de vectori de test la intrările circuitului, vectori care pot fi
generaţi prin program sau pot fi specificaţi sub formă tabelară.
Structura sistemelor de calcul – Simularea funcţională a circuitelor2 cu simulatorul ModelSim
• Pentru circuite sau sisteme digitale complexe, simularea asigură reducerea costurilor şi
reducerea numărului erorilor de proiectare comparativ cu cazul în care se utilizează un
prototip hardware pentru testare. Realizarea unor circuite complexe cum sunt
microprocesoarele moderne nu ar fi fost posibilă fără utilizarea intensivă a simulării asistate
de calculator.
1.2. Tipuri de simulare
Simularea poate fi executată în diferite etape ale procesului de proiectare şi poate utiliza
diferite nivele de abstractizare ale circuitului specificat printr-o anumită metodă.
Simularea funcţională constă în simularea unei descrieri la nivel înalt a circuitului. Această
descriere specifică funcţionarea circuitului, şi nu structura acestuia. Pentru descrierea circuitului se
pot utiliza diferite limbaje de modelare, cum sunt limbajele de programare. În acest caz, simularea
constă în compilarea şi execuţia modelului respectiv. În cele mai multe cazuri, simularea funcţională
se bazează pe un model al circuitului sub forma unei descrieri într-un limbaj de descriere hardware
(HDL).
Simularea logică reprezintă analiza funcţionării unui circuit pe baza valorii unor variabile
logice. Această simulare este numită şi simulare la nivelul transferurilor între registre (RTL –
Register Transfer Level), deoarece variabilele simulate sunt cele păstrate în registre. Simularea
evaluează în fiecare ciclu de ceas funcţiile logice ale căror valori sunt înscrise în registre.
Simularea la nivel de circuite se referă la analiza funcţionării unor modele ale circuitelor
reprezentate prin interconectarea unor dispozitive electronice cum sunt tranzistoare, rezistenţe şi
condensatoare. Această simulare constă în calcularea nivelelor de tensiune în funcţie de timp din toate
nodurile circuitului sau o parte a nodurilor. Aceasta presupune formularea şi rezolvarea unui mare
număr de ecuaţii diferenţiale, necesităţile de memorie şi de timp de calcul fiind ridicate.
Simularea temporală constă în simularea funcţionării circuitului după determinarea întârzierii
reale a semnalelor pe diferitele căi de date. Această simulare se utilizează în special pentru circuitele
programabile, la care întârzierile semnalelor nu vor fi cunoscute decât în urma implementării
circuitului, atunci când se poate determina numărul de conexiuni programabile utilizate pentru rutarea
semnalelor. Informaţiile despre întârzierile semnalelor sunt furnizate simulatorului printr-o operaţie
numită adnotare inversă. Simularea temporală permite analiza funcţionării în condiţii reale a
circuitului şi determinarea frecvenţei maxime de funcţionare a acestuia.
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.