Microsemi-logo

Depanare FPGA în circuit Microsemi

Produs de depanare Microsemi-In-Circuit-FPGA

Informații despre produs

Specificații

  • Tip dispozitiv: Microsemi SmartFusion2 SoC FPGA
  • Data lansării: mai 2014
  • Capacități de depanare: Depanare FPGA în circuit, Analizator logic încorporat
  • Frecvență maximă de captare a datelor: Până la 100MHz

Abstract
FPGA-urile sunt elemente de design puternice în sistemele integrate, cu multe avantaje de design.tages, dar aceste dispozitive pot avea designuri complexe cu probleme complexe de design care trebuie depanate. Identificarea problemelor de design, cum ar fi erorile de definiție, problemele de interacțiune a sistemului și erorile de sincronizare a sistemului, poate fi o provocare. Includerea capabilităților de depanare în circuit într-un FPGA poate îmbunătăți dramatic depanarea hardware-ului și poate evita nenumărate ore de frustrare. Această lucrare descrie mai multe abordări diferite pentru depanarea în circuit pentru FPGA-uri, identifică compromisurile cheie și, printr-un exemplu...ampDesignul, destinat unui dispozitiv FPGA SoC Microsemi SmartFusion®2, va arăta cum pot fi utilizate noile capabilități pentru a accelera depanarea și testarea.

Introducere

FPGA-urile sunt elemente de design omniprezente și puternice și se găsesc acum în aproape fiecare sistem integrat. Odată cu creșterea capacității, includerea blocurilor funcționale complexe pe cip și a interfețelor seriale avansate, aceste dispozitive pot avea, de asemenea, probleme complexe de design care trebuie depanate. Urmărirea problemelor precum erorile de definire funcțională (la nivel de FPGA sau de sistem), problemele de interacțiune funcțională a sistemului, problemele de sincronizare a sistemului și problemele de fidelitate a semnalului între circuite integrate (cum ar fi zgomotul, diafonia sau reflexiile) devin mult mai complexe atunci când se utilizează FPGA-uri avansate. Simularea este cu siguranță de mare ajutor în identificarea multor probleme de design, dar multe interacțiuni din lumea reală nu vor apărea până când designul nu este implementat în hardware. Au fost dezvoltate mai multe tehnici diferite pentru depanarea problemelor complexe de design pentru a simplifica procesul. O înțelegere atentă a fiecăreia dintre aceste tehnici cheie, inclusiv diversele avantaje...tages și disadvantages, este util atunci când se ia în considerare ce tehnică sau combinație de tehnici este potrivită pentru un anumit design.
Un exampDesignul FPGA, destinat unui dispozitiv FPGA SoC Microsemi SmartFusion2, poate fi utilizat pentru a demonstra unele dintre avantajeletages și disadvantagexemple ale acestor tehnici standard, precum și cele mai noi capabilități de depanare în circuit. Acest exemplu ilustrativampVom arăta cum aceste diverse tehnici pot fi utilizate pentru a accelera identificarea și eliminarea problemelor hardware în timpul depanării hardware.

De ce este depanarea FPGA un aspect critic al proiectării și dezvoltării sistemelor?
FPGA-urile au două modele principale de utilizare care le diferențiază de alte elemente de design. FPGA-urile pot fi utilizate în produsul de producție sau pot fi folosite ca vehicul de dezvoltare pentru a demonstra sau prototipa un concept de design de producție. Atunci când sunt utilizate ca vehicul de producție, FPGA-urile pot fi o țintă mult mai flexibilă decât vehiculele de producție ASIC sau bazate pe CPU. Acest lucru este deosebit de important pentru un design nou, unul care nu a fost încă implementat în hardware. Design-urile cu diferite opțiuni arhitecturale pot fi create și testate cu ușurință, astfel încât să fie identificat designul optim. FPGA-urile cu procesoare on-chip (SoC FPGA) fac posibilă și compensarea procesării bazate pe CPU cu funcții de accelerare bazate pe FPGA asistate de hardware. Aceste avantaje...tagpot reduce dramatic timpul necesar pentru proiectare, validare, testare și analiza defecțiunilor pentru dezvoltarea de noi produse.
Atunci când este utilizată pentru prototiparea unui design, poate pentru un ASIC de producție, flexibilitatea FPGA este un beneficiu cheie. O platformă hardware reală, chiar și una care nu rulează la viteză maximă, facilitează mult obținerea unor indicatori de performanță ai sistemului, a datelor de analiză a debitului și a rezultatelor demonstrative ale conceptului arhitecturii. Suportul FPGA pentru implementări consolidate ale magistralelor standard din industrie (cum ar fi PCIe®, Gigabit Ethernet, XAUI, USB, CAN și altele) simplifică testarea asociată cu aceste interfețe. Cele mai noi familii de FPGA cu procesoare ARM on-chip (SoC FPGA) facilitează prototiparea implementărilor cu procesoare încorporate. Codul procesorului dezvoltat anterior poate fi portat pe prototip, iar codul nou poate fi creat în paralel cu efortul de proiectare hardware.

Această combinație între un procesor standard și magistrale de interfață standard face posibilă valorificarea ecosistemului vast de biblioteci de cod disponibile, drivere, API-uri funcționale, sisteme de operare în timp real și chiar sisteme de operare complete pentru a crea mult mai rapid un prototip funcțional. În plus, odată ce designul este solidificat, prototipul FPGA poate fi utilizat pentru a captura seturi extinse de teste de simulare (atât pentru stimul, cât și pentru răspuns) care reflectă datele reale ale sistemului. Aceste seturi de date pot fi neprețuite în crearea simulărilor finale pentru un ASIC sau o altă implementare de producție. Avansul...tagUtilizarea unui FPGA ca prototip poate reduce dramatic timpul de proiectare, validare, testare și analiza defecțiunilor pentru implementarea produsului final.
În ambele modele comune de utilizare a FPGA, flexibilitatea FPGA ca țintă de proiectare este un avantaj cheie.tage. Aceasta înseamnă că multe modificări și iterații de proiectare ar fi norma și, prin urmare, capacitatea de a depana rapid erorile de proiectare ar fi esențială pentru a permite cât mai multe opțiuni de proiectare posibil. Fără o capacitate eficientă de depanare, o mare parte din avantajtagFlexibilitatea proiectării FPGA va fi diminuată de timpul suplimentar de depanare necesar. Din fericire, FPGA-urile pot oferi și caracteristici hardware suplimentare care simplifică dramatic depanarea în timp real. Înainte de a analiza aceste capabilități, să analizăm mai întâi cele mai frecvente tipuri de probleme cu care s-ar putea confrunta un proiect FPGA, astfel încât să avem contextul adecvat pentru a evalua eficiența și compromisurile asociate diferitelor instrumente de depanare.

Probleme frecvente la depanarea proiectelor FPGA

Împreună cu capacitățile extinse pe care le aduc FPGA-urile moderne, complexitatea crescută asociată face mai dificilă crearea de proiecte fără erori. De fapt, s-a estimat că depanarea poate ocupa peste 50% din ciclul de proiectare a sistemelor integrate. Presiunile legate de timpul de lansare pe piață continuă să comprime ciclul de dezvoltare, depanarea hardware a sistemului inițial este relegată la o gândire ulterioară - prea adesea presupunând că verificarea (în sine un procent mare)...tage din programul de dezvoltare), va detecta toate erorile înainte de pornirea inițială a sistemului. Să analizăm doar câteva tipuri comune de probleme de sistem pentru a înțelege mai bine provocările cu care se va confrunta un design tipic în timpul pornirii inițiale a sistemului.

Erorile de definire funcțională pot fi de două ori mai dificil de găsit, deoarece proiectantul a înțeles greșit o anumită cerință, astfel încât eroarea poate fi trecută cu vederea chiar și atunci când se analizează cu atenție detaliile designului. Un exempluampO eroare comună de definire funcțională ar fi atunci când o tranziție a mașinii de stări nu ajunge în starea corectă. Erorile pot apărea și în interfețele sistemului ca o problemă de interacțiune. Latența interfeței, de exempluample, ar putea fi specificat incorect, rezultând o condiție neașteptată de depășire sau subfluxu buffer.
Problemele de sincronizare la nivel de sistem sunt o altă sursă foarte frecventă de erori de proiectare. Evenimentele asincrone, în special, sunt o sursă comună de erori atunci când efectele de sincronizare sau de încrucișare a domeniului de sincronizare nu sunt luate în considerare cu atenție. Atunci când se funcționează la viteză mare, aceste tipuri de erori pot fi foarte problematice și pot apărea foarte rar, poate doar atunci când se manifestă anumite modele de date. Multe încălcări comune ale sincronizarii se încadrează în această categorie și sunt de obicei foarte dificil, dacă nu chiar imposibil de simulat.

Încălcările de sincronizare pot fi, de asemenea, rezultatul unei fidelități scăzute a semnalului între circuitele integrate, în special în sistemele cu mai multe șine de alimentare pentru fiecare circuit. Fidelitatea scăzută a semnalului poate duce la zgomot de semnal, diafonie, reflexii, încărcare excesivă și probleme de interferență electromagnetică (EMI) care apar adesea ca încălcări de sincronizare. Problemele de alimentare cu energie, cum ar fi fenomenele tranzitorii (în special în timpul pornirii sau opririi sistemului), variațiile de sarcină și solicitările mari de disipare a puterii pot duce, de asemenea, la erori misterioase, adesea greu de urmărit până la o sursă de alimentare. Chiar și atunci când designul este complet corect, problemele de fabricație a plăcii pot duce la erori. Îmbinări de lipire defecte și conectori atașați necorespunzător, de exemplu...ampAdică, poate fi sursa erorilor și poate chiar depinde de temperatură sau de locația plăcii. Utilizarea tehnicilor avansate de împachetare FPGA poate îngreuna detectarea semnalelor de pe placa cu circuite imprimate, așa că simpla accesare a unui semnal dorit poate fi adesea problematică. Adesea, multe probleme de proiectare nu creează o eroare imediată și trebuie să se extindă în proiect până când eroarea se manifestă efectiv. Urmărirea erorii inițiale până la cauza principală poate fi adesea o sarcină frustrantă, dificilă și consumatoare de timp.

De exampDe exemplu, un singur bit greșit într-un tabel de traducere poate duce la o eroare abia după mai multe cicluri. Unele dintre instrumentele pe care le vom discuta mai târziu în această lucrare, care utilizează hardware dedicat de depanare în circuit, sunt special concepute pentru a face aceste „vânătoare de erori” mai rapide și mai ușoare. Înainte de a intra în detaliile acestor instrumente, să analizăm mai întâi o simulare populară a unei tehnici de depanare bazate pe software pentru a înțelege mai bine avantajele.tages și disadvantagutilizarea simulării pentru depanare.

Utilizarea simulării pentru depanare
De obicei, într-o simulare de proiectare, toate componentele din viața reală, din interiorul și din afara proiectului, sunt modelate matematic ca procese software care sunt executate secvențial pe un procesor standard. Aplicarea unei game largi de stimuli la proiectare și verificarea rezultatului așteptat în raport cu rezultatul proiectării simulate reprezintă o modalitate ușoară de a detecta cele mai evidente erori de proiectare. O fereastră care prezintă o simulare tipică este prezentată în Figura 1 de mai jos. Avantajele clare...tagAvantajul simulării față de depanarea bazată pe hardware este că simularea se poate face în software - nu este nevoie de proiectare și banc de testare bazate pe hardware. Simularea poate detecta rapid multe erori de proiectare, în special cele asociate cu specificații incorecte, înțelegere greșită a cerințelor de interfață, erori funcționale și multe alte tipuri „brute” de erori care sunt ușor detectate prin vectori de stimulare simpli.

Depanare Microsemi-In-Circuit-FPGA (1)

Simularea este deosebit de eficientă atunci când proiectantul are la dispoziție combinații extinse de stimuli, iar rezultatele sunt bine cunoscute. În aceste cazuri, simularea poate realiza un test aproape exhaustiv al unui design. Din păcate, majoritatea designurilor nu au acces facil la suite de teste extinse, iar procesul de creare a acestora poate consuma foarte mult timp. Crearea unei suite de teste care acoperă 100% din design este practic imposibilă pentru designurile mari bazate pe FPGA, iar pentru a încerca să acopere elementele cheie ale designului trebuie utilizate scurtături. O altă dificultate a simulării este că nu este o implementare „din lumea reală” și nu poate detecta evenimente asincrone, interacțiuni ale sistemului la viteză mare sau încălcări de temporizare. În cele din urmă, procesul de simulare poate fi foarte lent și, dacă sunt necesare multe iterații, simularea devine rapid cea mai consumatoare de timp și adesea cea mai costisitoare parte a procesului de dezvoltare.

Ca alternativă (sau poate mai bine spus, ca o completare la simulare), proiectanții FPGA au descoperit că pot adăuga hardware de depanare în designul FPGA pentru a observa și controla semnalele cheie din cadrul dispozitivului. Aceste tehnici s-au dezvoltat inițial ca abordări ad-hoc, dar s-au dezvoltat treptat într-o strategie standard de depanare hardware. Această utilizare a capacităților de depanare în circuit oferă avantaje semnificative.tagpentru designuri bazate pe FPGA, iar următoarea secțiune va explora cele mai comune trei strategii și diversele lor avantajetages și disadvantages.

Abordări comune de depanare în circuit pentru FPGA-uri
Cele mai comune tehnici de implementare a capabilităților de depanare în circuit în FPGA-uri utilizează fie un analizor logic încorporat, fie un echipament de testare extern, fie hardware dedicat pentru sonde de semnal încorporat în structura FPGA. Analizorul logic încorporat este de obicei implementat folosind structura FPGA și este inserat în proiectare. JTAG Portul este utilizat pentru a accesa analizorul, iar datele capturate pot fi afișate pe un PC. Când se utilizează echipamente de testare externe, designul FPGA testat este modificat astfel încât semnalele FPGA interne selectate să fie rutate către pinii de ieșire. Acești pini pot fi apoi observați prin intermediul echipamentului de testare extern. Când se utilizează hardware dedicat pentru sonde de semnal, o gamă largă de semnale interne poate fi citită în timp real. Unele implementări de sonde pot fi chiar utilizate pentru a scrie în registre sau locații de memorie, îmbunătățind și mai mult capacitățile de depanare. Să analizăm mai detaliat avantajeletages și disadvantagexemple ale fiecăreia dintre aceste tehnici și apoi uitați-vă la un exempluampproiectarea pentru a vedea cum aceste abordări diferite pot influența timpul total de depanare.

Analizator logic încorporat în depanare FPGA în circuit
Conceptul de analizor logic încorporat a fost un rezultat direct al capacităților de depanare ad-hoc în circuit pe care proiectanții le-au implementat atunci când FPGA-urile au fost utilizate pentru prima dată. Analizoarele logice încorporate au adăugat noi capacități și au eliminat necesitatea ca proiectantul să-și dezvolte propriul analizor. Majoritatea FPGA-urilor oferă aceste capacități, iar terții oferă analizoare standard (Identify®, de la Synopsys, este un exemplu popular).ample) care se poate interacționa ușor cu instrumente de nivel superior pentru a îmbunătăți și mai mult productivitatea.

Funcționalitatea analizorului logic este inserată în design, utilizând structura FPGA și blocuri de memorie încorporate ca buffere de urmărire, așa cum se ilustrează în Figura 2. De asemenea, sunt create resurse de declanșare astfel încât interacțiunile complexe ale semnalelor să poată fi ușor selectate și capturate. Accesul la analizor pentru control și transfer de date se face de obicei prin intermediul protocolului J standard.TAG port pentru a simplifica cerințele de interfață. Datele capturate pot fi afișate pe un PC folosind un port comun viewsoftware și de obicei oglindește o ieșire de formă de undă a unui simulator logic viewstil ing.

Depanare Microsemi-In-Circuit-FPGA (2)

AdvanultagAvantajele acestei abordări sunt că nu se utilizează pini I/O FPGA suplimentari, ci doar pinii standard JTAG semnale. Nucleele IP ale analizorului logic încorporat sunt de obicei relativ ieftine și, în unele cazuri, pot fi o opțiune pentru sinteza FPGA existentă sau pentru instrumentele de simulare. În unele cazuri, analizorul logic încorporat poate oferi, de asemenea, ieșiri suplimentare pe intrări/ieșiri neutilizate, dacă este mai convenabil. Unul dintre dezavantajetagAvantajul acestei abordări este că este necesară o cantitate mare de resurse FPGA. În special, dacă se utilizează buffere de urmărire, acest lucru va reduce numărul de memorii bloc disponibile. Dacă este nevoie de un buffer larg, acesta va fi, de asemenea, un compromis împotriva adâncimii memoriei (deoarece utilizarea unei memorii mai largi are ca rezultat o adâncime a memoriei mai mică) - un mare dezavantaj.tage. atunci când se utilizează dispozitive mai mici. Probabil cel mai mare dezavantaj al acestei tehnici este că, de fiecare dată când se face o ajustare a plasării sondelor, este necesară recompilarea și reprogramarea designului. Atunci când se utilizează un dispozitiv mare, acest proces poate dura o perioadă semnificativă de timp. Datorită modului în care sondele de semnal sunt plasate în design, poate fi dificil să se coreleze relațiile de temporizare ale semnalelor. În plus, întârzierile dintre sondele de semnal nu sunt consistente și, prin urmare, relațiile de temporizare sunt dificil de comparat. Aceasta este o dificultate deosebită atunci când se compară semnale asincrone sau semnale din domenii temporale diferite.

Depanare FPGA în circuit – Echipament de testare extern
Utilizarea codului de depanare în circuit împreună cu echipamente de testare externe a fost o dezvoltare naturală atunci când un analizor logic extern era deja disponibil pentru testarea sistemului. Prin crearea unui cod de depanare simplu pentru a identifica și selecta semnale de testare interne și a le aplica la intrările/ieșirile FPGA, așa cum se arată în Figura 3, a fost posibilă valorificarea capacităților avansate ale analizoarelor (cum ar fi buffere de urmărire mari, secvențe de declanșare complexe și multiple...). viewopțiuni de depanare) pentru a crea medii de depanare simple, dar puternice. Capacități mai complexe în circuit pentru opțiuni avansate de declanșare pot minimiza numărul de ieșiri necesare. De exempluampAdică, selectarea adreselor specifice pe o magistrală largă ar putea fi prohibitivă dacă ar fi necesari pini externi.
Utilizarea logicii interne FPGA reduce dramatic cerințele de I/O și poate chiar căuta modele de adrese specifice (poate o secvență de apel și returnare) pentru depanarea problemelor mai complexe. Dacă este disponibilă o interfață utilizator comună, aceasta poate simplifica curba de învățare și îmbunătățește productivitatea.

Depanare Microsemi-In-Circuit-FPGA (3)

AdvanultagAvantajul acestei abordări este că valorifică costul echipamentului de testare extern și, prin urmare, nu există costuri suplimentare pentru instrumente. Unele nuclee IP pentru circuite de depanare sunt disponibile de la producătorii de echipamente sau de la producătorii de FPGA și pot avea costuri foarte mici sau chiar gratuite. Cantitatea de resurse FPGA necesare pentru implementarea logicii de selecție a semnalului este foarte mică și, deoarece funcția de urmărire se realizează utilizând analizorul logic extern, nu sunt necesare memorii bloc. Deoarece logica de selecție este ieftină, poate fi suportat și un număr mare de canale cu declanșare largă. Analizorul logic poate funcționa atât în ​​modul de temporizare, cât și în modul de stare, ceea ce ajută la izolarea unor probleme de temporizare.
DisadvanultagPrintre dezavantajele acestei abordări se numără necesitatea achiziționării unui analizor logic, dacă acesta nu este deja alocat proiectului. Acest dezavantajtage poate fi suficient pentru a descuraja această abordare în multe cazuri. Rețineți însă că devin disponibile unele opțiuni de analizoare logice ieftine care utilizează PC-ul sau o tabletă pentru afișare, ceea ce face ca această opțiune să fie mult mai rentabilă pentru cerințe simple de depanare.
Numărul de pini FPGA consumați poate fi un alt dezavantajtagȘi dacă trebuie respectate magistrale largi, este necesară o planificare semnificativă pentru amplasarea plăcii și adăugarea de conectori de depanare. Această cerință este de cele mai multe ori dificil de prevăzut la începutul fazei de proiectare și reprezintă o altă complexitate nedorită. Similar abordării analizorului logic încorporat, strategia de testare externă necesită recompilarea și reprogramarea unui design, atunci când este necesar fiecare experiment nou.

Dezavantajul comuntagUnele dintre aceste două tehnici — utilizarea resurselor on-chip (care pot afecta, de asemenea, performanța de sincronizare a designului și pot crea cerințe suplimentare de depanare), necesitatea de a recompila și reprograma designul (ceea ce poate adăuga ore sau chiar zile la programul de depanare), planificarea inițială necesară pentru identificarea scenariilor de testare probabile și utilizarea resurselor suplimentare de intrare/ieșire pe cip au creat nevoia unei abordări fără aceste dezavantaje. Un răspuns a fost adăugarea unei logici de depanare dedicate în structura FPGA pe unele dispozitive. Rezultatul a fost depanarea în circuit folosind sonde hardware.

Depanare FPGA în circuit – Sonde hardware
Utilizarea sondelor hardware simplifică dramatic tehnicile de depanare în circuit pentru FPGA-uri. Această tehnică, implementată ca o funcție Live Probe pe dispozitivele SmartFusion2®SoC FPGA și IGLOO®2 FPGA, adaugă linii de sondă dedicate la structura FPGA pentru a observa ieșirea oricărui bit de registru al elementului logic. Așa cum se arată în diagrama bloc din Figura 4, sondele hardware sunt disponibile în două canale de sondă, A și B.

Depanare Microsemi-In-Circuit-FPGA (3)

Ieșirile de registru selectate (punctele sondei), precum cea afișată în partea de jos a figurii, sunt rutate deasupra celor două canale ale sondei și, dacă sunt selectate, pot fi aplicate fie canalului A, fie canalului B. Aceste semnale de canal în timp real pot fi apoi trimise către pinii dedicați Sondei A și Sondei B de pe dispozitiv. Semnalele Sondei A și Sondei B pot fi, de asemenea, rutate intern către un analizor logic încorporat.

Rețineți că caracteristicile de temporizare ale pinilor sondei sunt regulate și au o abatere neglijabilă de la un punct al sondei la altul, ceea ce face mult mai ușoară compararea caracteristicilor de temporizare ale semnalelor în timp real. Datele pot fi capturate la frecvențe de până la 100 MHz, ceea ce le face potrivite pentru majoritatea designurilor de țintă.
Poate cel mai important aspect este că locațiile punctelor de sondă, deoarece acestea nu sunt selectate ca parte a designului implementat (sunt selectate prin hardware dedicat în timp ce designul rulează pe FPGA), pot fi modificate rapid prin simpla trimitere a datelor de selecție către dispozitiv. Nu este necesară recompilarea și reprogramarea designului.
Pentru a simplifica și mai mult utilizarea capacității Live Probe, instrumentul software de depanare asociat are acces la toate locațiile semnalului sondei printr-un fișier de depanare generat automat. fileAșa cum se arată în Figura 5, numele semnalului poate fi selectat din lista de semnale și aplicat canalului dorit. Acest lucru se poate face chiar și în timp ce proiectul rulează, astfel încât activitatea de sondare în cadrul proiectului să fie fără probleme și foarte eficientă.

Depanare Microsemi-In-Circuit-FPGA (5)

În multe cazuri, capacitatea sondei hardware, cum ar fi Live Probe, poate fi utilizată împreună cu analizorul logic încorporat descris anterior și cu tehnicile de testare externe.

După cum se arată în Figura 6, capacitatea Live Probe de a selecta semnale „din mers” face posibilă modificarea rapidă și ușoară a semnalelor observate, fără a fi nevoie de recompilarea designului. Un analizor logic extern sau un osciloscop poate observa cu ușurință semnalele sondate, așa cum se ilustrează în partea dreaptă sus a figurii, pe pinii de ieșire dedicați ai sondei. Alternativ (sau poate chiar pe lângă) analizorul logic intern (blocul ILA Identify, prezentat în figură) poate fi utilizat pentru a observa pinii sondei. Semnalele sondei pot fi captate de ILA și observate în fereastra formei de undă. Locațiile sondelor pot fi modificate fără a fi nevoie de recompilarea designului țintă.
Rețineți că capabilitățile suplimentare de declanșare și urmărire pot fi utilizate pentru a îmbunătăți funcționalitatea sondei, facilitând identificarea chiar și a problemelor complexe de proiectare.

Depanare Microsemi-In-Circuit-FPGA (6)

Capacități suplimentare de depanare hardware sunt disponibile și pe dispozitivele SmartFusion2 SoC FPGA și IGLOO2 FPGA. Una dintre aceste capacități, numită Active Probe, poate citi sau scrie dinamic și asincron în orice bit de registru al elementului logic. O valoare scrisă persistă pentru un singur ciclu de ceas, astfel încât funcționarea normală poate continua, ceea ce o face un instrument de depanare foarte valoros. Active Probe este de interes deosebit dacă se dorește o observare rapidă a unui semnal intern (poate pur și simplu pentru a verifica dacă este activ sau în starea dorită, cum ar fi un semnal de resetare) sau dacă este nevoie să se testeze rapid o funcție logică prin scrierea într-un punct de sondă.
(poate pentru a iniția o tranziție a mașinii de stări prin setarea rapidă a unei valori de intrare pentru a izola o problemă a fluxului de control).

O altă funcționalitate de depanare oferită de Microsemi este Depanarea memoriei. Această caracteristică permite proiectantului să citească sau să scrie dinamic și asincron într-un bloc SRAM selectat dintr-o structură FPGA. Așa cum este ilustrat în captura de ecran a instrumentului de depanare (Figura 7), atunci când este selectată fila Blocuri de memorie, utilizatorul poate selecta memoria dorită pentru citire, poate executa o captură instantanee a memoriei, poate modifica valorile memoriei și apoi poate scrie valorile înapoi pe dispozitiv. Acest lucru poate fi util în special pentru verificarea sau setarea bufferelor de date utilizate în porturile de comunicații pentru blocuri de notițe orientate spre calcul sau chiar pentru cod executat de un procesor încorporat. Depanarea erorilor complexe dependente de date este semnificativ mai rapidă și mai ușoară atunci când memoriile pot fi observate și controlate atât de rapid.

Depanare Microsemi-In-Circuit-FPGA (7)

Odată ce un design este depanat, poate fi de dorit să se dezactiveze capacitățile de depanare hardware pentru a proteja informațiile sensibile. Un atacator ar putea folosi aceleași facilități pentru a citi informații critice sau pentru a modifica setările sistemului care ar putea permite accesul facil la porțiuni sensibile ale sistemului. Microsemi a adăugat funcții pentru a permite proiectantului să securizeze dispozitivul după finalizarea depanării. De exempluampAdică, accesul la Live Probe și Active Probe poate fi blocat pentru a dezactiva complet funcția ca posibil mijloc de atac (elimină chiar posibilitatea ca activitatea sondei să creeze orice tipare în curentul de alimentare care ar putea fi utilizate pentru a încerca să observe indirect datele sondei). Alternativ, accesul la anumite porțiuni ale designului poate fi blocat pentru a preveni accesul doar la acele secțiuni. Acest lucru poate fi convenabil dacă doar o porțiune a designului trebuie securizată, făcând restul designului accesibil pentru testarea pe teren sau analiza erorilor.

Diagramă comparativă de depanare în circuit
Acum că o reexaminare detaliatăview Dintre cele trei tehnici principale de depanare hardware în circuit, au fost descrise, a fost creată o diagramă rezumativă, așa cum se arată în Figura 8, care detaliază diversele avantajetages și disadvantagelemente ale fiecărei metode. Reținând că unele tehnici pot fi utilizate împreună (Live Probe și Internal Logic Analyzer (ILA), cum ar fi Synopsys Identify, de exempluamp(adică), putem vedea punctele forte și punctele slabe cheie ale fiecărei tehnici. Colecția de capabilități de depanare hardware în circuit (Live Probe, Active Probe și Memory Debug - denumite colectiv SmartDebug) este cea mai slabă în comparație cu celelalte tehnici când vine vorba de numărul total de sonde disponibile (cerc roșu) și este mai slabă decât cea mai bună (cerc galben) atunci când se ia în considerare viteza de captură (echipamentul de testare extern poate fi mai rapid).
Tehnicile bazate pe ILA, precum Synopsys Identify, sunt cele mai slabe în comparație cu alte tehnici și atunci când se iau în considerare cerințele de resurse FPGA. Tehnicile bazate pe echipamente de testare externe sunt cele mai slabe din cauza unei serii de considerații, costul, impactul timpului de proiectare și costurile generale de deplasare a sondelor (datorate necesității de a recompila designul) fiind cele mai împovărătoare. Poate că soluția optimă este o combinație între SmartDebug și una dintre celelalte tehnici, astfel încât slăbiciunea SmartDebug legată de numărul de canale și dezavantajul deplasării punctului sondei.tagși ale celorlalte tehnici reduse.

Depanare Microsemi-In-Circuit-FPGA (8)

Clasificări ale semnalelor
Se poate face o distincție utilă între unele dintre cele mai comune tipuri de semnale, iar acest lucru poate fi de ajutor la planificarea unei abordări de depanare. De exempluampAdică, semnalele care nu se modifică decât în ​​timpul pornirii sistemului, cum ar fi resetarea sistemului, resetarea blocului sau registrele de inițializare, pot fi clasificate drept semnale statice. Aceste tipuri de semnale sunt accesate cel mai eficient printr-o facilitate care poate observa și controla cu ușurință semnalul, fără a fi nevoie de un ciclu lung de recompilare. Active Probe este o facilitate excelentă pentru depanarea semnalelor statice. În mod similar, semnalele care se modifică mai frecvent, dar sunt încă statice pentru marea majoritate a timpului, pot fi clasificate drept pseudo-statice și sunt, de asemenea, depanate cel mai eficient folosind Active Probe. Semnalele care se modifică frecvent, cum ar fi semnalele de ceas, pot fi clasificate drept dinamice și nu sunt la fel de ușor accesibile prin Active Probe. Live Probe este o alegere mai bună pentru observarea acestor semnale.

Caz de utilizare de depanare simplă

Acum, că avem o mai bună înțelegere a diferitelor opțiuni de depanare în circuit, să ne uităm la un exemplu simplu de proiectare.ampVedeți cum funcționează aceste tehnici. Figura 9 prezintă un design FPGA simplu într-un dispozitiv SmartFusion2 SoC FPGA. Subsistemul microcontrolerului (MSS) este resetat de blocul CoreSF2Reset Soft IP. Intrările către acest bloc sunt resetarea la pornire, o resetare a User Fabric și o resetare externă. Ieșirile sunt o resetare a User Fabric, o resetare MSS și o resetare M3. Simptomele erorii sunt că nu există activitate pe I/O-uri, chiar dacă dispozitivul iese cu succes din starea POR. Cele trei opțiuni diferite pentru depanarea acestei erori sunt ilustrate și în figură: Caseta albastră (etichetată ETE) este pentru metoda External Test Equipment; caseta verde (etichetată ILA) este pentru metoda Internal Logic Analyzer; iar caseta portocalie (etichetată AP) este pentru metoda Active Probe. Vom presupune că cauzele principale potențiale ale erorii sunt intrări de resetare activate incorect către blocul CoreSF2Reset Soft IP.

Depanare Microsemi-In-Circuit-FPGA (9)

Să analizăm acum procesul de depanare pentru trei dintre metodele în circuit descrise anterior.

Echipament de testare extern
Folosind această metodă, se presupune că echipamentul de testare este disponibil și nu este utilizat de un proiect cu prioritate mai mare. În plus, este important să se planifice din timp, astfel încât unele intrări/ieșiri FPGA să fie disponibile și să poată fi conectate cu ușurință la echipamentul de testare. De exemplu, existența unui conector header pe PCB...amp„ar fi foarte util și ar reduce la minimum timpul petrecut încercând să identificăm și să conectăm la un „suspect probabil” sau la potențiala scurtcircuitare a pinților în timpul sondării. Designul va trebui recompilat pentru a selecta semnalele pe care dorim să le investigăm. Sperăm că nu vom „curăța ceapa” și va trebui să selectăm semnale suplimentare pentru investigații ulterioare, deoarece adesea investigația noastră inițială are ca rezultat mai multe întrebări. În orice caz, procesul de recompilare și reprogramare poate dura mult timp, iar dacă are ca rezultat încălcări ale temporizării, este necesară o reproiectare (cu toții suntem familiarizați cu cât de frustrantă poate fi încercarea de a rezolva problemele de închidere a temporizării, în special atunci când faceți modificări de design pentru a găsi o eroare de design - întregul proces poate dura de la minute la ore)! De asemenea, este important să ne amintim că, dacă designul nu are intrări/ieșiri libere pentru utilizatori, această metodă nu poate fi implementată. Mai mult, această metodă este intruzivă din punct de vedere structural pentru design - iar erorile legate de temporizare pot dispărea sau reapărea între iterații.”

Analizator logic intern
Folosind această metodă, ILA trebuie inserat în design folosind resurse fabric și apoi trebuie recompilat. Rețineți că, dacă ILA a fost deja instanțiat, semnalele pe care dorim să le investigăm pot să nu fi fost instrumentate, ceea ce ar necesita, de asemenea, o recompilare. Acest proces riscă modificarea designului original și încălcarea constrângerilor de temporizare. Dacă se respectă temporizarea, designul trebuie reprogramat și reinițializat. Întregul proces poate dura câteva minute sau chiar ore dacă timpii de recompilare sunt lungi și sunt necesare mai multe treceri. Această abordare este intruzivă din punct de vedere structural și poate duce la probleme similare cu cele descrise la utilizarea metodei de mai sus.

Sonda activă
Folosind această metodă, Active Probe poate fi direcționat către sursa diferitelor semnale de resetare, toate acestea fiind generate de ieșiri de registru (așa cum este obișnuit în orice practică bună de proiectare digitală). Semnalele sunt selectate unul câte unul, dintr-un meniu Active Probe prezentat în Figura 10 de mai jos. Valorile semnalului selectat pot fi citite și sunt afișate în fereastra de date Active Probe. Orice afirmații greșite sunt ușor de identificat. Acest test poate fi efectuat imediat, fără a fi nevoie de recompilare și reprogramare a dispozitivului și nu este intruziv din punct de vedere structural sau procedural. Întregul proces durează doar câteva secunde. Această metodă poate crea, de asemenea, controlabilitate (modificarea valorilor în mod asincron) pe care celelalte două metode nu o vor permite. În acest exemplu particular...ampAdică, semnalul de resetare furnizat de un registru poate fi ușor testat și descoperit ca fiind menținut în stare activă.

Comutarea momentană a semnalului de resetare poate fi realizată prin manipularea asincronă a registrului care generează semnalele de repaus.

Depanare Microsemi-In-Circuit-FPGA (10)

Caz de utilizare pentru depanare mai complexă
Designul de mai sus a fost foarte simplu și este util ca o introducere în utilizarea tehnicilor de proiectare descrise, dar un exemplu mai complexampAr putea fi chiar mai ilustrativ. De multe ori semnalul de interes nu este un semnal static, așa cum era în exemplul nostru simplu.ample, dar este dinamic. Un semnal dinamic comun este un ceas intermediar, probabil folosit pentru temporizarea unei strângeri de mână pentru o interfață serială. Figura 11 prezintă un astfel de design cu nucleul IP soft al utilizatorului, în acest caz, o interfață serială personalizată conectată la magistrala APB a sistemului. Simptomele erorii sunt că nu există activitate pe interfața serială personalizată a utilizatorului și că, atunci când un master al magistralei APB emite o tranzacție pentru a accesa interfața serială, acesta intră într-o condiție de excepție care indică o strângere de mână incorectă. Aceste condiții par să excludă o cauză statică, cum ar fi un semnal de resetare incorect, deoarece mașina de stare a tranzacțiilor pare să nu funcționeze la rata așteptată și, prin urmare, provoacă excepția. Se consideră că cauza principală este generatorul de frecvență a ceasului din cadrul nucleului IP al utilizatorului.

Dacă nu funcționează la frecvența corectă, vor apărea erorile descrise.

Depanare Microsemi-In-Circuit-FPGA (11)

În această situație, probabil că o strategie mai bună este să înlocuiți abordarea Active Probe cu Live Probe. Acest lucru este ilustrat în figura de mai sus prin caseta LP de culoare portocalie, folosind J.TAG semnal pentru selectarea sursei sondei.

Echipament de testare extern
În acest caz, metodologia este foarte similară cu exemplul simplu descris anterior.ampAdică, semnalul de ceas al utilizatorului este adus la punctul de testare (sperăm că într-un antet) și este necesară o recompilare care necesită mult timp. De asemenea, poate fi util să se aducă un semnal de referință, poate un ceas de sistem care este utilizat pentru a sincroniza adresa IP a utilizatorului, ca semnal de comparație. Vom fi din nou supuși necesității de a recompila și reprograma, astfel încât întregul proces ar putea dura mult timp.

Analizator logic intern
Acest caz este foarte similar cu exemplul simpluampAdică, ILA trebuie introdus sau semnalul dorit trebuie definit și un ciclu de recompilare și reprogramare trebuie executat. Toate problemele descrise anterior duc în continuare la un timp semnificativ al ciclului de depanare. Există însă o complexitate suplimentară. Ceasul care acționează ILA trebuie să fie sincron și, în mod ideal, mult mai rapid în raport cu ceasul care trebuie observat de la nucleul Soft IP al utilizatorului. Dacă aceste ceasuri sunt asincrone sau nu au relațiile de sincronizare corecte, captura de date va fi imprevizibilă și o posibilă sursă de confuzie pentru procesul de depanare.
Rețineți că, dacă ceasul Soft IP al utilizatorului nu este generat pe cip (poate este recuperat de la interfața serială), proiectantul poate fi nevoit să adauge un modul de ceas pentru a genera un ceas ILA mai rapid folosind resurse suplimentare și, eventual, creând o încălcare a temporizării.

Sondă live
Folosind această metodă, Live Probe poate fi rapid direcționat către sursa ceasului utilizatorului și către orice altă sursă de ceas dintr-un registru pentru a identifica cauza principală a erorii. Live Probe va afișa ieșirile de semnal selectate în timp real, iar orice relație de timp dintre semnale este astfel mult mai ușor de determinat. Întregul proces durează doar câteva secunde.

Alte funcții de depanare pentru interfețele seriale
De asemenea, este important de subliniat faptul că există multe capabilități suplimentare de depanare în dispozitivele SmartFusion2 SoC FPGA și IGLOO2 FPGA care pot fi utilizate pe interfețe seriale, cum ar fi cea din exemplul anterior.ampproiectare unde erorile sunt și mai complicate. Depanare SERDES, de exempluample, oferă capabilități specifice de depanare pentru interfețele seriale dedicate de mare viteză. Unele dintre caracteristicile de depanare SERDES includ suport pentru testarea PMA (cum ar fi generarea de modele PRBS și testarea loopback), suport pentru configurații multiple de testare SERDES cu reconfigurare la nivel de registru pentru a evita utilizarea fluxului complet de proiectare pentru a face modificări de configurație și rapoarte text care arată protocoalele configurate, registrele de configurare SERDES și registrele de configurare Lane. Aceste caracteristici fac depanarea SERDES mult mai ușoară și pot fi utilizate împreună cu Live Probe și Active Probe pentru a accelera și mai mult depanarea circuitelor complexe.
Instrumentul Memory Debug descris anterior poate fi utilizat și împreună cu SERDES Debug pentru a accelera testarea. Deoarece bufferele de memorie pot fi inspectate și modificate rapid și ușor cu Memory Debug, este posibil să se creeze rapid „pachete de testare” și să se observe rezultatele comunicațiilor loopback sau intersistem. Proiectantul poate valorifica aceste capabilități și, astfel, să minimizeze nevoia de „hamuri de testare” specializate care consumă structură FPGA suplimentară și care ar putea afecta sincronizarea cipului.

Concluzie
Această lucrare a descris în detaliu mai multe abordări diferite pentru implementarea depanării în circuit pentru FPGA-uri și FPGA-uri SoC - utilizarea unui analizor logic integrat, utilizarea echipamentelor de testare externe și utilizarea circuitelor sondă dedicate integrate în structura FPGA. Adăugarea de circuite sondă specializate și dedicate, cum ar fi Active Probe și Live Probe oferite de Microsemi pe dispozitivele SmartFusion2 SoC FPGA și IGLOO2 FPGA, s-a dovedit a accelera și simplifica semnificativ procesul de depanare. Capacitatea de a modifica rapid selecția semnalelor interne (fără a fi nevoie să se execute un ciclu de recompilare și reprogramare care consumă mult timp) și capacitatea de a sonda semnale interne (fără a fi nevoie să se utilizeze structura FPGA și să se introducă potențial încălcări de sincronizare) s-au dovedit a fi avantaje majore.tagla depanarea proiectelor FPGA. În plus, a fost descrisă utilizarea mai multor metodologii, care pot funcționa împreună pentru a oferi o capacitate de depanare și mai cuprinzătoare. În cele din urmă, două exempleampAu fost date cazuri de utilizare a depanării pentru a ilustra compromisurile dintre metodele descrise.

Pentru a afla mai multe

  1. FPGA-uri IGLOO2
  2. FPGA-uri SmartFusion2 SoC

Microsemi Corporation (Nasdaq: MSCC) oferă un portofoliu cuprinzător de soluții de sisteme și semiconductori pentru comunicații, apărare și securitate, piețe aerospațiale și industriale. Produsele includ circuite integrate analogice cu semnal mixt de înaltă performanță și întărite la radiații, FPGA, SoC și ASIC; produse de management al energiei; dispozitive de cronometrare și sincronizare și soluții de timp precise, stabilind standardul mondial pentru timp; Dispozitive de procesare a vocii; soluții RF; componente discrete; tehnologii de securitate și scalabil anti-tampproduse; circuite integrate Power-over-Ethernet și midspan-uri; precum și capacități și servicii de proiectare personalizate. Microsemi are sediul central în Aliso Viejo, California, și are aproximativ 3,400 de angajați la nivel global. Aflați mai multe la www.microsemi.com.

© 2014 Microsemi Corporation. Toate drepturile rezervate. Microsemi și sigla Microsemi sunt mărci comerciale ale Microsemi Corporation. Toate celelalte mărci comerciale și mărci de servicii sunt proprietatea deținătorilor respectivi.

Sediul Microsemi Corporate

FAQ

  • Î: Care este frecvența maximă de captare a datelor a dispozitivului?
    R: Dispozitivul acceptă captura de date la frecvențe de până la 100 MHz, potrivit pentru majoritatea modelelor de țintă.
  • Î: Trebuie să recompilez designul când utilizez circuite sondă pentru depanare?
    R: Nu, locațiile punctelor de sondă pot fi modificate rapid fără a fi necesară recompilarea sau reprogramarea proiectului.

Documente/Resurse

Depanare FPGA în circuit Microsemi [pdfInstrucțiuni
Depanare FPGA în circuit, Depanare FPGA, Depanare

Referințe

Lasă un comentariu

Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate *