Microsemi-logo

Debug Microsemi In-Circuit FPGA

Microsemi-In-Circuit-FPGA-Debug-product

Informazione di u produttu

Specificazioni

  • Tipu di Dispositivu: Microsemi SmartFusion2 SoC FPGA
  • Data di liberazione: maghju 2014
  • Capacità di debugging: Debug FPGA in circuitu, Analizatore logicu integratu
  • Frequenza massima di cattura di dati: Finu à 100 MHz

Astrattu
I FPGA sò elementi di cuncepimentu putenti in sistemi integrati cù assai avanzà di cuncepimentutages, ma sti dispusitivi ponu avè disinni cumplessi cù prublemi di disinnu cumplessi chì devenu esse debugati. Traccià i prublemi di disinnu cum'è l'errori di definizione, i prublemi d'interazzione di u sistema è l'errori di timing di u sistema pò esse una sfida. L'inclusione di capacità di debug in circuitu in un FPGA pò migliurà dramaticamente u debug di l'hardware è evità innumerevoli ore di frustrazione. Questu articulu descrive parechji approcci diversi à u debug in circuitu per FPGA, identifica i compromessi chjave è, attraversu un esempiu,ampu disignu, destinatu à un dispositivu Microsemi SmartFusion®2 SoC FPGA, mostrarà cumu e novi capacità ponu esse aduprate per accelerà a debug è a prova.

Introduzione

I FPGA sò elementi di cuncepimentu pervasivi è putenti è si trovanu avà in quasi ogni sistema integratu. Cù a capacità crescente, l'inclusione di blocchi funziunali cumplessi in chip è interfacce seriali avanzati, sti dispositi ponu ancu avè prublemi di cuncepimentu cumplessi chì anu da esse debugged. A traccia di prublemi cum'è l'errori di definizione funziunale (à u livellu FPGA o sistema), i prublemi di interazzione di u sistema funziunale, i prublemi di timing di u sistema è i prublemi di fideltà di u signale trà IC (cum'è rumore, diafonia, o riflessioni) diventanu assai più cumplessi quandu si usanu FPGA avanzati. A simulazione hè certamente un grande aiutu per identificà parechji prublemi di cuncepimentu, ma parechje interazzione in u mondu reale ùn si mostraranu micca finu à chì u disignu hè implementatu in hardware. Diversi tecnichi diffirenti per debugging prublemi di cuncepimentu cumplessu sò stati sviluppati per simplificà u prucessu. Una cunniscenza attenta di ognunu di sti tecnichi chjave, cumpresi i vari advantages è disadvantages, hè utile quandu cunsiderà quale tecnica o cumminazione di tecniche hè adattata per un disignu particulari.
Un esampu disignu FPGA, destinatu à un dispositivu FPGA SoC Microsemi SmartFusion2, pò esse usatu per dimustrà alcuni di l'avanzati.tages è disadvantages di sti tecnichi standard è ancu i più novi capacità di debug in-circuit. Questu ex illustratuampvi mostrarà cumu queste diverse tecniche ponu esse aduprate per accelerà l'identificazione è l'eliminazione di i prublemi di hardware durante u debug di hardware.

Perchè u debugging FPGA hè un aspettu criticu di u disignu è u sviluppu di u sistema?
I FPGA anu dui mudelli di usu principali chì li differenzianu da altri elementi di design. I FPGA ponu esse aduprati in u produttu di produzzione o ponu esse aduprati cum'è un veiculu di sviluppu per pruvà o prototipu un cuncettu di cuncepimentu di produzzione. Quandu s'utilice cum'è u veiculu di produzzione, i FPGA ponu esse un mira assai più flexible chì i veiculi di produzzione basati in ASIC o CPU. Questu hè particularmente impurtante per un novu disignu, quellu chì ùn hè ancu implementatu in hardware. Disegni cù diverse opzioni architettoniche ponu esse facilmente creati è pruvati per chì u disignu ottimali hè identificatu. FPGA cù processori in chip (SoC FPGA) facenu ancu pussibule di scambià u processamentu basatu in CPU cù funzioni di accelerazione basate in FPGA assistite da hardware. Questi avanzàtages ponu drasticamente riduce u tempu necessariu per u disignu, a validazione, a prova è l'analisi di fallimentu per i sviluppi di novi prudutti.
Quandu s'utilice per prototipà un disignu, forsi per un ASIC di produzzione, a flessibilità FPGA hè un benefiziu chjave. Una piattaforma hardware attuale, ancu una chì ùn funziona micca à piena velocità, rende assai più faciule per ottene metriche dettagliate di u rendiment di u sistema, dati di analisi di throughput è risultati di prova di cuncettu di l'architettura. U supportu FPGA per implementazioni rinforzate di bus standard di l'industria (cum'è PCIe®, Gigabit Ethernet, XAUI, USB, CAN, è altri) simplificà a prova assuciata à queste interfacce. E più recenti famiglie di FPGA cù processori ARM in chip (SoC FPGA), facilitanu l'implementazione di prototipi cù processori integrati. U codice di processore sviluppatu in precedenza pò esse purtatu à u prototipu è u novu codice creatu in parallelu cù u sforzu di disignu hardware.

Questa cumminazione di un processore standard cù buss d'interfaccia standard permette di sfruttà u grande ecosistema di biblioteche di codice dispunibili, drivers, API funziunali, Sistemi Operativi in ​​Tempu Reale, è ancu Sistemi Operativi cumpleti per creà assai più rapidamente un prototipu di travagliu. Inoltre, una volta chì u disignu hè solidificatu, u prototipu FPGA pò esse usatu per catturà un vastu set di teste di simulazione (per stimulu è risposta) chì riflettenu i dati di u sistema attuale. Questi setti di dati ponu esse inestimabili in a creazione di simulazioni finali per un ASIC o altre implementazione di produzzione. L'avantitagL'usu di un FPGA cum'è prototipu di disignu pò riduce drasticamente u tempu di cuncepimentu, validazione, teste è analisi di fallimentu per l'implementazione finale di u produttu.
In i dui di sti mudelli d'usu FPGA cumuni, a flessibilità di l'FPGA cum'è destinazione di disignu hè un vantaghju chjavetage. Questu significa chì parechji cambiamenti di cuncepimentu è iterazioni seranu a norma, è cusì a capacità di debug rapidamente l'errori di disignu seria critica per attivà quante più opzioni di disignu pussibule. Senza una capacità di debug efficace assai di l'avanzatutagA flessibilità di u disignu FPGA serà diminuita da u tempu di debugging supplementu necessariu. Fortunatamente, i FPGA ponu ancu furnisce funzioni hardware supplementari chì simplificanu dramaticamente a debugging in tempu reale. Prima di guardà queste capacità, fighjemu prima i tipi di prublemi più cumuni chì un disignu FPGA puderia esse affruntatu cusì avemu u fondu propiu per valutà l'efficienza è i cummerci associati di vari strumenti di debugging.

Problemi cumuni quandu Debugging Designs FPGA

Inseme cù e capacità espanse chì i FPGA muderni portanu, a cumplessità aumentata assuciata rende più difficiule a creazione di disinni senza errori. In fatti, hè statu stimatu chì u debugging pò piglià più di u 50% di u ciclu di cuncepimentu di u sistema embedded. Cù e pressioni di u tempu di cummercializazione chì cuntinueghjanu à stringhje u ciclu di sviluppu, u debugging hardware di u sistema iniziale hè relegatu à un pensamentu dopu - troppu spessu supponendu chì a verificazione (ella stessa una grande percentuale)tage di u calendariu di sviluppu), catturà tutti i bug prima di u sistema iniziale. Fighjemu solu uni pochi tipi cumuni di prublemi di sistema per capisce megliu e sfide chì un disignu tipicu affruntà durante l'iniziu iniziale di u sistema.

L'errore di definizione funziunale pò esse doppiamente difficiuli di truvà, postu chì u designer hà malintendendu un requisitu particulari, cusì l'errore pò esse trascuratu ancu quandu guardate attentamente i dettagli di u disignu. Un exampLe di un errore di definizione funziunale cumuni seria induve una transizione di a macchina statale ùn finisce micca in u statu ghjustu. L'errori ponu ancu esse in l'interfacce di u sistema cum'è un prublema di interazzione. Latenza di l'interfaccia, per esample, pò esse specificatu in modu incorrectu, risultatu in una cundizione inesperu di buffer overflow o underflow.
I prublemi di timing à u nivellu di u sistema sò una altra fonte assai cumuni di errori di disignu. L'avvenimenti asincroni, in particulare, sò una fonte cumuni d'errori quandu a sincronizazione o l'effetti di u duminiu di u timing crossing ùn sò micca cunsiderate currettamente. Quandu operanu à a velocità, questi tipi d'errori ponu esse assai problematicu è ponu apparisce assai raramente, forsi solu quandu i mudelli di dati specifichi si manifestanu. Parechje violazioni di timing cumuni sò in questa categuria è sò generalmente assai difficiuli, se micca impussibile di simulà.

A violazione di u timing pò ancu esse u risultatu di a fideltà di u signale bassu trà i circuiti integrati, in particulare in sistemi cù rails multiplici per ogni circuitu. A fideltà di u signale bassu pò esse risultatu in u rumore di u signale, crosstalk, riflessioni, carichi eccessivu è prublemi di Interferenza Elettro-Magnetica (EMI) chì spessu appariscenu cum'è violazioni di timing. I prublemi di l'alimentazione, cum'è i transitori (in particulare durante l'iniziu o l'arrestu di u sistema), variazioni di carica è stress di dissipazione di l'alta putenza ponu ancu risultatu in errori misteriosi, spessu micca facilmente tracciati à una fonte di alimentazione. Ancu quandu u disignu hè cumplettamente currettu, i prublemi di fabricazione di u bordu pò esse risultatu in errori. Giunzioni di saldatura difettose è connettori mal attaccati, per esample, pò esse a surgente di errori è pò ancu esse temperatura o locu di bordu dipendente. L'usu di tecnichi avanzati di imballaggio FPGA pò fà difficiuli di sondare i segnali nantu à u circuitu stampatu, cusì ghjustu accede à un signalu desideratu pò esse spessu problematicu. Spessu, assai prublemi di cuncepimentu ùn creanu micca un errore immediatu è devenu ripiglià u disignu finu à chì l'errore si manifesta veramente. A traccia di l'errore di partenza torna à a causa radicali pò esse spessu un compitu frustrante, difficiule è tempu.

Per esampvale à dì, un solu bit sbagliatu in una tavula di traduzzione ùn pò micca dà un errore finu à parechji cicli dopu. Alcuni di l'arnesi chì discuteremu più tardi in questu articulu, chì utilizanu hardware di debug in circuitu dedicatu, sò specificamente destinati à fà chì queste "cacce à i bug" sianu più veloci è più facili. Prima di entre in i dettagli di questi arnesi, guardemu prima una simulazione di tecnica di debugging basata nantu à software pupulare per capisce megliu l'avanzamentu.tages è disadvantages di utilizà a simulazione per u debugging.

Utilizà a simulazione per u debugging
Tipicamente in una simulazione di cuncepimentu, tutti i cumpunenti di a vita reale in l'internu è fora di u disignu sò modellati matematicamente cum'è prucessi software chì sò eseguiti sequenzialmente nantu à un CPU standard. Applicà una larga gamma di stimuli à u disignu è cuntrollà l'output previstu contr'à l'output di disegni simulati, hè un modu faciule per catturà l'errori di disignu più evidenti. Una finestra chì mostra una corsa di simulazione tipica hè datu in Figura 1 sottu. L'avanti chjarutagA differenza trà a simulazione è u debugging basatu annantu à l'hardware hè chì a simulazione pò esse fatta in u software - ùn hè necessariu alcun cuncepimentu è bancu di prova basatu annantu à l'hardware. A simulazione pò rilevà rapidamente parechji errori di cuncepimentu, in particulare quelli assuciati à specifiche incorrette, incomprensione di i requisiti di l'interfaccia, errori di funzione è parechji altri tipi d'errori "grossi" chì sò facilmente rilevati attraversu vettori di stimulu simplici.

Debug Microsemi-In-Circuit-FPGA-(1)

A simulazione hè particularmente efficace quandu e cumminazzioni di stimuli sò dispunibili per u designer è i risultati risultanti sò ben cunnisciuti. In questi casi, a simulazione pò fà una prova guasi cumpleta di un cuncepimentu. Sfurtunatamente, a maiò parte di i cuncepimenti ùn anu micca un accessu faciule à suite di test cumplete è u prucessu di creazione pò piglià assai tempu. Creà una suite di test chì copre u 100% di u cuncepimentu hè praticamente impussibile per i grandi cuncepimenti basati nantu à FPGA è devenu esse aduprate scorciatoie per pruvà à copre l'elementi chjave di u cuncepimentu. Un'altra difficultà cù a simulazione hè chì ùn hè micca una implementazione di u "mondu reale" è ùn pò micca catturà eventi asincroni, interazzione di u sistema à velocità o violazioni di timing. Infine, u prucessu di simulazione pò esse assai lentu è se sò necessarie parechje iterazioni, a simulazione diventa rapidamente a parte più longa è spessu a più costosa di u prucessu di sviluppu.

Comu alternativa (o forse megliu dichjaratu, cum'è un aghjuntu à a simulazione) i diseggiani FPGA anu truvatu chì puderanu aghjunghje hardware di debug in u disignu FPGA per osservà è cuntrullà i segnali chjave in u dispusitivu. Queste tecniche sò sviluppate inizialmente cum'è approcci ad-hoc, ma si sò sviluppate gradualmente in una strategia standard di debug hardware. Stu usu di capacità di debug in-circuit offre un vantaghju significativutages per i disinni basati in FPGA è a sezione dopu scoprerà e trè strategie più cumuni è i so diversi avanzàtages è disadvantages.

Approcci di Debug In-Circuit cumuni per FPGA
I tecnichi più cumuni per implementà e capacità di debug in-circuit in FPGA utilizanu sia un analizzatore logicu integratu, un equipamentu di prova esternu, o un hardware di sonda di signale dedicatu integratu in u tissu FPGA. L'analizzatore di logica integrata hè tipicamente implementatu cù u tissu FPGA è hè inseritu in u disignu. U JTAG portu hè utilizatu per accede à l'analizzatore è i dati catturati ponu esse visualizati in un PC. Quandu l'equipaggiu di prova esternu hè utilizatu, u disignu FPGA in prova hè mudificatu in modu chì i segnali FPGA interni selezziunati sò diretti à i pin di output. Questi pins ponu esse osservati attraversu l'equipaggiu di prova esternu. Quandu si usa un hardware di sonda di signale dedicatu, una larga selezzione di signali interni pò esse lettu in tempu reale. Alcune implementazioni di sonda ponu ancu esse aduprate per scrive per registrà o locazioni di memoria per rinfurzà ancu e capacità di debug. Fighjemu in più detail à l'avanzatutages è disadvantages di ognuna di sti tecnichi e poi fighjulà un exampu disignu per vede cumu questi approcci diffirenti ponu impactà u tempu di debugging generale.

In-Circuit FPGA Debug-Embedded Logic Analyzer
U cuncettu di l'analizzatore di logica integrata era un risultatu direttu di e capacità di debugging in-circuit ad-hoc chì i diseggiani implementavanu quandu i FPGA sò stati utilizati per a prima volta. L'analizzatori di logica incrustati anu aghjustatu novi capacità è anu eliminatu u requisitu per u designer di sviluppà u so propiu analizatore. A maiò parte di l'FPGA offrenu sti capacità è terze parti offrenu analizzatori standard (Identify®, da Synopsys, hè un ex popularu).ample) chì ponu facilmente interfaccia cù strumenti di livellu più altu per migliurà a produtividade.

A funziunalità di l'analizzatore di logica hè inserita in u disignu, utilizendu u tessulu FPGA è i blocchi di memoria incrustati cum'è buffer di traccia, cum'è illustratu in a Figura 2. Risorsi di triggering sò ancu creati in modu chì l'interazzioni di signali cumplessi ponu esse facilmente selezziunati è catturati. L'accessu à l'analizzatore per u cuntrollu è u trasferimentu di dati hè tipicamente fattu attraversu u standard JTAG portu per simplificà i bisogni di l'interfaccia. I dati catturati ponu esse visualizati in un PC usendu cumuni viewsoftware è tipicamente riflette una uscita di forma d'onda di simulatore logicu viewin stile.

Debug Microsemi-In-Circuit-FPGA-(2)

L'avantitagE di questu approcciu sò chì ùn sò micca aduprati pin I / O FPGA supplementari, solu u standard JTAG signali. I nuclei IP di l'analizzatore di logica incrustati sò generalmente relativamente prezzu è in certi casi ponu esse una opzione per sintesi FPGA esistenti, o strumenti di simulazione. In certi casi, l'analizzatore logicu integratu pò ancu furnisce outputs supplementari nantu à I / O inutilizati, se hè più convenientu. Unu di i svantaghjitagL'aspettu negativu di questu approcciu hè chì hè necessaria una grande quantità di risorse FPGA. In particulare, se si utilizanu buffer di traccia, questu riducerà u numeru di memorie di blocchi dispunibili. Se hè necessariu un buffer largu, questu serà ancu un compromessu contr'à a prufundità di memoria (postu chì l'usu di una memoria più larga si traduce in una prufundità di memoria menu profonda) - un grande svantaghju.tage quandu cù i dispusitivi più chjuchi. Forsi u più grande svantaghju di sta tecnica hè chì ogni volta chì un aghjustamentu à a piazza di a sonda hè fatta, hè necessariu recompilà è riprogrammà u disignu. Quandu si usa un grande dispusitivu, stu prucessu pò piglià una quantità significativa di tempu. A causa di a manera chì i sondi di signale sò posti in u disignu, pò esse difficiule di correlate e relazioni di timing di signale. Inoltre, i ritardi trà e sonde di signale ùn sò micca coherenti è cusì e relazioni di timing sò difficiuli di paragunà. Questa hè una difficultà particulare quandu paragunate signali asincroni o segnali da diversi domini di u tempu.

Debug FPGA in circuitu - Apparatu di prova esternu
L'usu di codice di debug in-circuit in cunghjunzione cù l'equipaggiu di teste esternu era un sviluppu naturali quandu un analizatore di logica esterna era digià dispunibule per a prova di u sistema. Creendu un còdice simplice di debug per identificà è selezziunà i segnali di prova interni è l'applicà à l'I / O FPGA, cum'è mostratu in a Figura 3, hè statu pussibule di sfruttà e capacità avanzate di l'analizzatori (cum'è grandi buffer di traccia, sequenze di attivazione cumplesse è multiple). viewopzioni di debug) per creà ambienti di debug simplici ma potenti. Capacità più cumplesse in-circuit per opzioni di attivazione avanzate ponu minimizzà u numeru di outputs necessariu. Per esample, selezziunà indirizzi specifichi nantu à un bus largu puderia esse pruibitivu s'ellu era necessariu pins esterni.
Utilizà a logica interna FPGA riduce dramaticamente i requisiti I / O è pò ancu cercà mudelli di indirizzu specifichi (forse una sequenza di chjama è di ritornu) per debugging prublemi più cumplessi. Se una interfaccia d'utilizatore cumuni hè dispunibule, questu pò simplificà a curva di apprendimentu è migliurà a produtividade.

Debug Microsemi-In-Circuit-FPGA-(3)

L'avantitagEs di stu approcciu hè chì leverages u costu di l 'attrezzatura di prova esterni è cusì ùn ci hè micca costu strumentu aghjuntu. Certi nuclei IP di circuitu di debug sò dispunibuli da i fabricatori di l'equipaggiu o da i fabricatori FPGA, è ponu esse assai low cost o ancu gratuiti. A quantità di risorse FPGA necessarie per implementà a logica di selezzione di signale hè assai chjuca, è postu chì a funzione di traccia hè fatta cù l'analizzatore logicu esternu, ùn ci hè micca bisognu di ricordi di bloccu. Siccomu a logica di selezzione ùn hè micca caru, un gran numaru di canali cù attivazione larga pò esse supportatu ancu. L'analizzatore logicu pò operà sia in un modu Timing sia in un modu Statu chì aiuta à isolà certi prublemi di timing.
U disadvantages di stu approcciu pò include u bisognu di cumprà un analizzatore di logica, se unu ùn hè digià attribuitu à u prugettu. Stu svantaghjutagE pò esse abbastanza per scoraggià stu approcciu in parechji casi. Innota, però, chì alcune opzioni di analizatori di logica à pocu costu sò diventate dispunibuli chì utilizanu u PC o una tableta per a visualizazione, facendu sta opzione assai più costu-efficace per esigenze simplici di debug.
U numaru di pins FPGA cunsumati pò esse un altru disadvantage è se l'autobus largu deve esse osservatu, hè necessariu una pianificazione significativa per u layout di bordu è l'aghjunzione di connettori di debug. Stu requisitu hè a maiò parte di i tempi difficiuli di predichendu prima in a fase di cuncepimentu è un'altra cumplessità indesiderata. Simile à l'approcciu di l'analizzatore di logica integrata, a strategia di prova esterna richiede a ricompilazione è a riprogrammazione di un disignu, quandu ogni novu esperimentu hè necessariu.

U svantaghju cumunitagL'usu di queste duie tecniche - l'usu di risorse in chip (chì ponu ancu influenzà e prestazioni di timing di u disignu è creà esigenze di debugging supplementari) a necessità di ricompilà è riprogrammà u disignu (chì pò aghjunghje ore o ancu ghjorni à u calendariu di debug) a pianificazione iniziale necessaria per identificà scenarii di test probabili, è l'usu di risorse I/O di chip supplementari anu creatu a necessità di un approcciu senza questi inconvenienti. Una risposta hè stata l'aghjunta di una logica di debug dedicata in u fabric FPGA in certi dispositivi. U debug in circuitu utilizendu sonde hardware hè statu u risultatu.

Debug FPGA in circuitu - Sonde hardware
L'usu di sonde hardware simplifica drasticamente e tecniche di debug in-circuit per FPGA. Questa tecnica implementata cum'è una funzione Live Probe in i dispositi SmartFusion2®SoC FPGA è IGLOO®2 FPGA, aghjunghjenu linee di sonda dedicate à u tissu FPGA per osservà l'output di qualsiasi bit di registru di l'elementu logicu. Comu mostra in u schema di bloccu in a Figura 4, e sonde hardware sò dispunibuli in dui canali di sonda A è B.

Debug Microsemi-In-Circuit-FPGA-(3)

L'outputs di u registru selezziunati (punti di sonda), cum'è quellu chì si trova in u fondu di a figura, sò diretti sopra i dui canali di sonda è, se selezziunati, ponu esse appiicati à u canali A o B. Questi signali di canali in tempu reale ponu esse mandati à i pins dedicati di Probe A è Probe B in u dispusitivu. I segnali Probe A è Probe B ponu ancu esse diretti internamente à un analizzatore logicu integratu.

Nota chì e caratteristiche di timing di i pins di sonda sò regularmente è anu una deviazione insignificante da un puntu di sonda à l'altru, facendu assai più faciule per paragunà e caratteristiche di timing di i signali in tempu reale. I dati ponu esse catturati finu à 100MHz facendu adattatu per a maiò parte di i disinni di destinazione.
Forsi u più impurtante i lochi di i punti di sonda, postu chì ùn sò micca scelti cum'è parte di u disignu implementatu (sò scelti per un hardware dedicatu mentre u disignu hè in esecuzione nantu à a FPGA), pò esse cambiatu rapidamente da solu mandà i dati di selezzione à u dispusitivu. Nisuna ricumpilazione di disignu è riprogrammazione hè necessaria.
Per simplificà ancu di più l'usu di a capacità Live Probe, l'uttellu di software di debug associatu hà accessu à tutti i lochi di segnali di sonda attraversu un debug generatu automaticamente. file. Comu mostra in a Figura 5, u nome di u signale pò esse sceltu da a lista di signali è appiicata à u canali desideratu. Questu pò esse fattu ancu mentre u disignu hè in esecuzione per chì l'attività di sonda in u disignu sia senza saldatura è assai efficace.

Debug Microsemi-In-Circuit-FPGA-(5)

In parechji casi, a capacità di sonda hardware, cum'è Live Probe, pò esse aduprata in cungiunzione cù l'analizzatore di logica integrata descritta prima è e tecniche di teste esterne.

Cum'è mostratu in a Figura 6, a capacità di Live Probe di selezziunà i signali "à u volu" permette di cambià rapidamente è facilmente i signali sottu osservazione senza avè bisognu di ricompilà u disignu. Un analizzatore logicu esternu o un oscilloscopiu pò facilmente osservà i signali sondati, cum'è illustratu in a parte superiore destra di a figura nantu à i pin di uscita di a sonda dedicati. In alternativa (o forse ancu in più di) l'analizatore logicu internu (u bloccu ILA Identify, mostratu in a figura) pò esse adupratu per osservà i pin di a sonda. I signali di a sonda ponu esse catturati da l'ILA è osservati nantu à a finestra di forma d'onda. E pusizioni di e sonde ponu esse cambiate senza avè bisognu di ricompilà u disignu di destinazione.
Nota chì e capacità supplementari per l'attivazione è a traccia ponu esse aduprate per rinfurzà a funziunalità di a sonda, facendu faciule per vede ancu i prublemi di cuncepimentu cumplessi.

Debug Microsemi-In-Circuit-FPGA-(6)

Capacità di debug hardware supplementari sò ancu dispunibili nantu à i dispositivi SmartFusion2 SoC FPGA è IGLOO2 FPGA. Una di queste capacità, chjamata Active Probe, pò leghje o scrive dinamicamente è asincronamente in qualsiasi bit di registru di l'elementu logicu. Un valore scrittu persiste per un solu ciclu di clock per chì u funziunamentu nurmale possa cuntinuà, ciò chì ne face un strumentu di debug assai preziosu. Active Probe hè di particulare interessu se si desidera una rapida osservazione di un segnale internu (forse semplicemente per verificà chì hè attivu o in u statu desideratu, cum'è un segnale di reset), o se ci hè bisognu di testà rapidamente una funzione logica scrivendu in un puntu di sonda.
(forse per inizià una transizione di macchina à stati impostendu rapidamente un valore d'ingressu per isolà un prublema di flussu di cuntrollu).

Un'altra capacità di debug furnita da Microsemi hè Memory Debug. Questa funzione permette à u designer di leghje o scrive in modu dinamicu è asincronu in un bloccu SRAM di tissu FPGA sceltu. Cum'è illustratu in a screen shot di Debug Tool (Figura 7), quandu a tabulazione Blocchi di Memoria hè selezziunata, l'utilizatore pò selezziunà a memoria desiderata per leghje, eseguisce una cattura d'istantanea di a memoria, mudificà i valori di memoria, è poi scrive i valori à u dispusitivu. Questu pò esse particularmente utile per verificà o stabilisce i buffer di dati utilizati in i porti di cumunicazione per u scratch-pad orientatu à u calculu o ancu per u codice eseguitu da un CPU integratu. Debugging errori dipendente di dati cumplessi hè significativamente più veloce è faciule quandu i ricordi ponu esse osservati è cuntrullati cusì rapidamente.

Debug Microsemi-In-Circuit-FPGA-(7)

Una volta chì un disignu hè debuggatu, pò esse desideratu di disattivà e capacità di debug hardware per prutege l'infurmazioni sensibili. Un attaccu puderia utilizà sti stessi facilità per leghje l'infurmazioni critichi o cambià i paràmetri di u sistema chì puderanu permette un accessu faciule à e porzioni sensittivi di u sistema. Microsemi hà aghjustatu funziunalità per permette à u designer di assicurà u dispusitivu dopu a debugging hè cumpletu. Per esample, l'accessu à Live Probe è Active Probe pò esse chjusu à disattivà cumplettamente a funzione cum'è un pussibbili mezzu di attaccu (ancu elimina a pussibilità di l'attività di sonda chì creanu qualsiasi mudelli in u currente di furnimentu chì puderia esse usatu per pruvà è osservà i dati sonda indirettu). In alternativa, l'accessu à e porzioni selezziunate di u disignu pò esse chjusu per impediscenu l'accessu à queste sezioni. Questu pò esse convenientu se solu una parte di u disignu deve esse sicura chì u restu di u disignu hè sempre accessibile per a prova di campu o l'analisi di errore.

Graficu di paragone di Debug In-Circuit
Avà chì un re detallatuview di e trè tecniche principali di debug di hardware in-circuit sò state descritte un graficu riassuntu, cum'è mostra in a Figura 8, hè statu creatu chì detalla i vari advan.tages è disadvantages di ogni metudu. Ricurdativi chì alcune tecniche ponu esse aduprate in cunghjunzione (Live Probe è Internal Logic Analyzer (ILA), cum'è Synopsys Identify, per ex.ample), pudemu vede i punti di forza è di debulezza chjave di ogni tecnica. L'inseme di capacità di debug di hardware in circuitu (Live Probe, Active Probe, è Memory Debug - chjamate cullettivamente SmartDebug), sò e più debuli in paragone à l'altre tecniche quandu si tratta di u numeru tutale di sonde dispunibili (un cerchju rossu) è sò più debuli di e migliori (cerchju giallu) quandu si cunsidereghja a velocità di cattura (l'equipaggiu di prova esternu pò esse più veloce).
I tecnichi basati in ILA, cum'è Synopsys Identify, sò i più debuli quandu paragunate à l'altri tecniche è quandu i requisiti di risorse FPGA sò cunsiderati. I tecnichi basati nantu à l'equipaggiu di prova esterni sò i più debuli nantu à una quantità di considerazioni cù u costu, l'impattu di u tempu di cuncepimentu è u muvimentu di a sonda sopra (per via di a necessità di ricumpià u disignu) u più oneroso. Forsi a suluzione ottima hè una cumminazione di SmartDebug è una di l'altri tecniche, cusì chì u numeru di canali debulezza di SmartDebug pò esse mitigatu è u muvimentu di u puntu di sonda disadvan.tages di l 'àutri tecnichi ridutta oltri.

Debug Microsemi-In-Circuit-FPGA-(8)

Classificazioni di signali
Una distinzione utile pò esse fatta trà alcuni di i tipi più cumuni di signali è questu pò aiutà à pianificà un approcciu di debugging. Per esampVale à dì, i signali chì ùn cambianu micca altru ch'è durante l'avviu di u sistema, cum'è u reset di u sistema, u reset di bloccu o i registri d'inizializazione ponu esse classificati cum'è signali statichi. Sti tipi di signali sò accessibili in modu più efficiente attraversu una facilità chì pò facilmente osservà è cuntrullà u signale, senza bisognu di un longu ciclu di ricompilazione. Active Probe hè una facilità eccellente per u debugging di signali statichi. In listessu modu, i signali chì cambianu più spessu, ma sò sempre statichi per a grande maggioranza di u tempu, ponu esse classificati cum'è pseudo-statici è sò ancu debugati in modu più efficace cù Active Probe. I signali chì cambianu spessu, cum'è i signali di clock, ponu esse classificati cum'è dinamici è ùn sò micca cusì facilmente accessibili attraversu Active Probe. Live Probe hè una scelta megliu per osservà sti signali.

Casu d'usu di debug simplice

Avà chì avemu un megliu capiscenu di e diverse opzioni di debug in-circuit, fighjemu un disignu simplice ex.ample per vede cumu queste tecniche facenu. A Figura 9, mostra un disignu FPGA simplice in un dispositivu SmartFusion2 SoC FPGA. U Subsistema di Microcontroller (MSS) hè resettatu da u coreSF2Reset Soft IP block. L'inputs à stu bloccu sò u Power On Reset, un User Fabric Reset, è un Reset Esternu. L'outputs sò un reset à u Fabric User, un reset MSS, è un reset M3. I sintomi d'errore sò chì ùn ci hè micca attività nantu à l'I / O ancu s'è u dispusitivu esce da u statu POR cun successu. I trè opzioni diffirenti per debugging stu errore sò illustrati ancu in a figura: A scatula blu (etichettata ETE) hè per u metudu di l'equipaggiu di prova esternu; a casella verde (labelled ILA) hè per u metudu Internal Logic Analyzer; è a casella aranciu (etichettata AP) hè per u metudu Active Probe. Assumiremu chì e putenziali cause di l'errore sò impropriamente affirmate reset inputs à u blocu IP CoreSF2Reset Soft.

Debug Microsemi-In-Circuit-FPGA-(9)

Fighjemu avà u prucessu di debug per trè di i metudi in-circuit descritti prima.

Apparecchiatura di prova esterna
Utilizendu stu metudu, si assume chì l'equipaggiu di prova hè dispunibule è ùn hè micca usatu da un prughjettu di priorità più altu. Inoltre, hè impurtante avè pianificatu in anticipu per chì alcuni I / O FPGA sò dispunibili è ponu esse facilmente cunnessi à l'equipaggiu di prova. Avè un capu nantu à u PCB per example, saria assai utile è minimizerebbe u tempu passatu à pruvà à identificà è cunnette si à un "probabile suspettu" o u putenziale cortocircuitu di i pin durante a sonda. U disignu duverà esse ricompilatu per selezziunà i signali chì vulemu investigà. Speremu chì ùn "sbucciaremu micca a cipolla" è duveremu selezziunà signali supplementari per ulteriori investigazioni, postu chì spessu a nostra investigazione iniziale porta solu à più dumande. In ogni casu, u prucessu di ricompilazione è riprogrammazione pò piglià assai tempu, è s'ellu porta à violazioni di timing, hè necessaria una riprogettazione (simu tutti familiarizati cù quantu frustrante pò esse pruvà à risolve i prublemi di chjusura di timing, in particulare, quandu si facenu i cambiamenti di cuncepimentu per truvà un bug di cuncepimentu - tuttu u prucessu pò piglià da minuti à ore)! Hè ancu impurtante di ricurdà chì se u disignu ùn hà micca I/O d'utilizatori liberi, stu metudu ùn pò esse implementatu. Inoltre, stu metudu hè strutturalmente intrusivu per u disignu - è i bug ligati à u timing ponu sparisce o riapparisce trà l'iterazioni.

Analizzatore logicu internu
Utilizendu stu metudu, l'ILA deve esse inseritu in u disignu utilizendu risorse di tela, è dopu deve esse ricompilatu. Innota chì se l'ILA hè digià statu instanziatu, i signali chì vulemu investigà ùn anu micca statu instrumentatu, chì avaristi ancu esse bisognu di una recompilazione. Stu prucessu rischia di cambià u disignu uriginale è di violà e limitazioni di timing. Se u timing hè cumpletu, u disignu deve esse riprogrammatu è reinizializatu. Stu prucessu tutale pò piglià parechji minuti o ancu ore se i tempi di ricumpilazione sò longu è parechji passaghji sò necessarii. Stu approcciu hè strutturalmente intrusive è pò esse risultatu in prublemi simili à quelli descritti quandu si usa u metudu sopra.

Sonda Attiva
Utilizendu stu metudu, l'Active Probe pò esse indicatu à a fonte di i diversi segnali di reset, chì sò tutti provenienti da uscite di u registru (cum'è cumuni in ogni bona pratica di cuncepimentu digitale). I signali sò selezziunati unu à u tempu, da un menù Active Probe mostratu in a Figura 10 sottu. I valori di signale selezziunati ponu esse leghjiti è sò visualizati nantu à a finestra di dati Active Probe. Ogni mis-asserzioni sò facilmente identificati. Questa prova pò esse fatta immediatamente senza a necessità di ricumpià è riprogrammà u dispusitivu è ùn hè micca strutturalmente o proceduralmente intrusiva. U prucessu tutale dura solu uni pochi di seconde. Stu metudu pò ancu creà cuntrollu (alterendu i valori in modu asincronu) chì l'altri dui metudi ùn permettenu micca. In questu particulari example, u signale reset sourced da un registru pò esse facirmenti probed è scupertu à esse tenutu in statu attivu.

A basculazione momentanea di u signale di reset pò esse ottenuta manipulendu in modu asincronu u registru chì genera i segnali di restu.

Debug Microsemi-In-Circuit-FPGA-(10)

Casu d'usu di debug più cumplessu
U disignu sopra era assai simplice è hè utile cum'è una introduzione à l'usu di e tecniche di cuncepimentu descritte, ma un ex più cumplessuamppò esse ancu più illustrative. Parechje volte u signale di interessu ùn hè micca un signalu staticu cum'è era in u nostru ex simpliceampma hè dinamica. Un signale dinamicu cumuni hè un clock intermediu, forsi usatu per timing una stretta di manu per una interfaccia seriale. A Figura 11 mostra un tali disignu cù u core Soft IP di l'utilizatore, in questu casu, una interfaccia seriale persunalizata cunnessa à u bus APB di u sistema. I sintomi di l'errore sò chì ùn ci hè micca attività nantu à l'interfaccia seriale persunalizata di l'utilizatori, è chì quandu un maestru di l'autobus APB emette una transazzione per accede à l'interfaccia seriale entra in una cundizione d'eccezzioni chì indica una stretta di manu incorrecta. Queste cundizioni parenu escludiri una causa statica, cum'è un signalu di reset incorrectu, postu chì a macchina di u statu di transazzione ùn pare micca esse operatu à u ritmu previstu è cusì provoca l'eccezzioni. A causa principale hè pensata per esse u generatore di frequenza di clock in u core IP di l'utilizatori.

S'ellu ùn funziona micca à a freccia curretta, l'errori descritti seranu risultatu.

Debug Microsemi-In-Circuit-FPGA-(11)

In questa situazione, hè probabilmente una strategia megliu per rimpiazzà l'approcciu Active Probe cù u Live Probe. Questu hè illustratu in a figura sopra da a casella LP di culore aranciu, utilizendu u JTAG signale per a selezzione di a fonte di sonda.

Apparecchiatura di prova esterna
Per questu casu, a metodulugia hè assai simile à l'esempiu simplice discritta primaample. U signale di u clock di l'utilizatori hè purtatu à u puntu di prova (sperendu nantu à un header) è hè necessariu un ricumpiu di tempu. Puderia ancu esse d'utile per esce un signalu di riferimentu, forsi un clock di u sistema chì hè utilizatu per clock l'IP di l'utilizatori cum'è un signalu di paraguni. Seremu di novu sottumessi à a necessità di ricumpià è riprogrammà cusì u prucessu tutale puderia piglià una quantità significativa di tempu.

Analizzatore logicu internu
Stu casu hè assai simili à u sèmplice example. L'ILA deve esse inseritu, o u signale desideratu definitu, è un ciclu di recompilazione è riprogramma eseguitu. Tutti i prublemi descritti prima risultanu sempre in un tempu di ciclu di debug significativu. Ci hè una cumplessità supplementu, però. U clock chì guida l'ILA deve esse sincronu, è idealmente assai più veloce in quantu à u clock per esse osservatu da l'usu Soft IP core. Sì sti orologi sò asincroni, o ùn anu micca e relazioni di timing currette, a cattura di dati serà imprevisible è una pussibuli fonte di cunfusione per u prucessu di debug.
Nota chì se l'utente Soft IP clock ùn hè micca generatu in chip (forse hè ricuperatu da l'interfaccia seriale) u designer pò avè bisognu di aghjunghje un modulu di clock per generà un clock ILA più veloce utilizendu risorse supplementari è possibbilmente creendu una violazione di u timing.

Sonda Live
Utilizendu stu metudu, u Live Probe pò esse indicatu rapidamente à a fonte di u clock d'utilizatore è qualsiasi altra fonte di clock da un registru per perseguite a causa di l'errore. U Live Probe mostrarà l'output di signali selezziunati in tempu reale è ogni relazione di timing trà i segnali hè cusì assai più faciule da determinà. U prucessu tutale dura solu uni pochi di seconde.

Altre funzioni di debug per l'interfaccia seriale
Hè impurtante ancu di nutà chì ci sò parechje capacità di debug supplementari in i dispositi SmartFusion2 SoC FPGA è IGLOO2 FPGA chì ponu esse aduprati in interfacce seriali, cum'è quellu in l'ex precedente.ampu disignu induve l'errori sò ancu più cumplicati. SERDES Debug, per esempiuample, furnisce capacità di debug specifiche per l'interfaccia seriale dedicata à alta velocità. Alcune di e funzioni di SERDES Debug includenu supportu di teste PMA (cum'è a generazione di mudelli PRBS è a prova di loopback) supportu per parechje cunfigurazioni di teste SERDES cù ricunfigurazione à livellu di registru per evità l'usu di u flussu di cunfigurazione cumpletu per fà cambiamenti di cunfigurazione, è rapporti di testu chì mostranu protokolli cunfigurati, registri di cunfigurazione SERDES è registri di cunfigurazione Lane. Queste caratteristiche facenu a debug di SERDES assai più faciule è ponu esse aduprate in cunjunzione cù Live Probe è Active Probe per più veloce di debugging di circuiti cumplessi.
U strumentu di debug di memoria discrittu prima pò ancu esse adupratu in cunghjunzione cù SERDES Debug per accelerà i testi. Siccomu i buffer di memoria ponu esse ispezionati è cambiati rapidamente è facilmente cù Memory Debug, hè pussibule creà rapidamente "pacchetti di test" è osservà i risultati di cumunicazioni in loopback o inter-sistema. U designer pò sfruttà queste capacità è cusì minimizà a necessità di "cablaggi di test" specializati chì cunsumanu un tessutu FPGA supplementu è chì puderanu influenzà u timing di u chip.

Cunclusioni
Stu documentu hà discrittu in dettagliu parechji approcci diffirenti per implementà u debug in circuitu per FPGA è SoC FPGA - l'usu di un Analizatore Logicu Integratu, l'usu di apparecchiature di test esterne è l'usu di circuiti di sonda dedicati integrati in u tessutu FPGA. L'aghjunta di circuiti di sonda specializati è dedicati, cum'è Active Probe è Live Probe offerti da Microsemi nantu à i dispositivi SmartFusion2 SoC FPGA è IGLOO2 FPGA, hè stata dimustrata per accelerà è simplificà significativamente u prucessu di debug. A capacità di mudificà rapidamente a selezzione di signali interni (senza a necessità di eseguisce un ciclu di ricompilazione è riprogrammazione chì richiede assai tempu), è a capacità di sondà i signali interni (senza a necessità di utilizà u tessutu FPGA è potenzialmente introduce violazioni di timing) sò state dimustrate cum'è un vantaghju maiò.taghè quandu debugging disinni FPGA. Inoltre, hè statu descrittu l'usu di più metodulugii, chì ponu travaglià inseme per furnisce una capacità di debug ancu più cumpleta. Infine, dui exampi casi d'usu di debug sò stati dati per illustrà i scambii trà i metudi descritti.

Per sapè di più

  1. FPGA IGLOO2
  2. FPGA SoC SmartFusion2

Microsemi Corporation (Nasdaq: MSCC) offre una cartera cumpleta di soluzioni di semiconduttori è sistemi per i mercati di cumunicazioni, difesa è sicurità, aerospaziale è industriale. I prudutti includenu circuiti integrati di signali mixti analogici d'alta prestazione è radiazioni, FPGA, SoC è ASIC; prudutti di gestione di energia; i dispusitivi di timing è di sincronizazione è suluzione di u tempu precisu, chì stabiliscenu u standard di u mondu per u tempu; dispusitivi di trasfurmazioni di voce; suluzione RF; cumpunenti discreti; tecnulugia di sicurità è scalable anti-tamper prudutti; Circuiti integrati Power-over-Ethernet è midspan; è ancu capacità è servizii di cuncepimentu persunalizatu. Microsemi hà a so sede in Aliso Viejo, California, è hà circa 3,400 impiegati in u mondu sanu. Amparate di più à www.microsemi.com.

© 2014 Microsemi Corporation. Tutti i diritti riservati. Microsemi è u logo Microsemi sò marchi di Microsemi Corporation. Tutti l'altri marchi è marchi di serviziu sò a pruprietà di i so rispettivi pruprietarii.

Sede centrale di Microsemi

FAQ

  • Q: Chì ghjè a frequenza massima di cattura di dati di u dispusitivu?
    A: U dispusitivu supporta l'acquisizione di dati finu à 100 MHz, adattatu per a maiò parte di i disinni di target.
  • Q: Aghju bisognu di ricumpià u disignu quandu utilizate circuiti di sonda per a debugging?
    A: Innò, i lochi di i punti di sonda ponu esse cambiati rapidamente senza richiede a ricompilazione o a riprogrammazione di u disignu.

Documenti / Risorse

Debug Microsemi In-Circuit FPGA [pdf] Istruzzioni
Debug FPGA In-Circuit, Debug FPGA, Debug

Referenze

Lascia un cumentu

U vostru indirizzu email ùn serà micca publicatu. I campi obbligatori sò marcati *