FPGA_VIVADO_SI_VHDL_Mihael_Cristian_Ignat

(Cristian I.K_ntXI) #1
71

8. Depanarea unui proiect - ILA


Cea mai frecventă metodă de depanare este simularea, însă nu toate cazurile pot fi prinse în simulare.
Este aproape imposibil ca fiecare componentă să fie testată în toate condițiile și să fie prinsă toată gama de
valori de stimuli într-o simulare de tip testbench. Bineînțeles că acest lucru depinde și de cât de complexă
este componenta ce va trebui testată. Există programe profesionale cu ajutorul cărora se poate face
simulare mult mai rapid și într-un mod mai elegant decât fișierele testbench, deoarece acestea au deja
anumite construcții create special pentru partea de testare. În cazul nostru, însă, pentru că nu avem
cunoștințe despre programele respective, se va utiliza tot Vivado, iar fișierul testbench va cuprinde, practic,
tot un fișier VHDL, cu ajutorul căruia sunt generați stimuli, însă aceasta este o metodă mai greoaie ce
îngreunează partea de testare. Mediile profesionale de testare a componentelor dezvoltate în limbaje de
descriere hardware utilizează limbajele SystemVerilog (combinație între Verilog și POO) și limbajul E (utilizat
în Specman).


Simularea utilizând fișiere testbench, scrise tot în limbajul de descriere hardware, este cel mai des
utilizată la evitarea anumitor erori de implementare (atunci când funcționalitatea este total eronată) și nu la
detectarea efectivă a anumitor defecte specifice de funcționare (atunci când funcționează eronat doar în
anumite condiții). O metodă simplă de realizare a depanării este de a scoate niște semnale din FPGA care
pot fi utilizate ca și trigger într-un analizor logic extern. Acest lucru poate fi destul de ușor de realizat, însă nu
ne poate ajuta chiar tot timpul, cum ar fi situația în care avem o magistrală foarte mare de date, însă nu
avem suficienți pini, sau când niște semnale sunt de mare viteză și dacă dorim să le scoatem la ieșire; atunci,
din cauza tuturor întârzierilor apărute pe semnalul respectiv, timpii de hold și setup nu mai sunt îndepliniți.


O metodă simplă, fără a complica lucrurile foarte mult, o reprezintă utilizarea blocului ILA oferit de
Xilinx (Integrated Logic Analyzer). Acesta este o componentă ce este pusă în design-ul generat în urma
sintezei. Vizualizarea semnalelor de interes poate fi făcută în Vivado, într-o fereastră specială, și se pot seta
mai multe combinații de trigger. Computerul primește de la FPGA semnalele respective prin JTAG, utilizând
pinii de programare.


Pentru a exemplifica modul de folosire, vom utiliza proiectul creat la capitolul anterior, fără a fi adăugate
PBLOCK-uri, însă utilizând atributul keep pentru semnalele de interes, cele ce dorim să le vedem pe
analizorul logic. Astfel, în urma rulării sintezei și deschiderii Synthesized Design, trebuie urmați pașii
următori:



  1. Marcați traseele de interes ca fiind “Mark Debug”. În cazul nostru, “data_out[0]”

Free download pdf