Microsemi-logo

Microsemi In-Circuit FPGA Debug

Microsemi-In-Circuit-FPGA-Debug-proizvod

Informacije o proizvodu

Specifikacije

  • Tip uređaja: Microsemi SmartFusion2 SoC FPGA
  • Datum izlaska: maj 2014
  • Mogućnosti otklanjanja grešaka: In-Circuit FPGA Debug, Embedded Logic Analyzer
  • Maksimalna frekvencija hvatanja podataka: do 100MHz

Abstract
FPGA su moćni elementi dizajna u ugrađenim sistemima sa mnogo prednosti u dizajnutages, ali ovi uređaji mogu imati složen dizajn sa složenim problemima dizajna koji moraju biti otklonjeni. Praćenje problema dizajna kao što su greške u definiciji, problemi sa sistemskom interakcijom i sistemske vremenske greške može biti izazov. Uključivanje mogućnosti za otklanjanje grešaka unutar kola u FPGA može dramatično poboljšati hardversko otklanjanje grešaka i izbjeći broj sati frustracije. Ovaj rad opisuje nekoliko različitih pristupa otklanjanju grešaka u krugu za FPGA, identificira ključne kompromise i kroz exampLe dizajn, namenjen za Microsemi SmartFusion®2 SoC FPGA uređaj, pokazaće kako se nove mogućnosti mogu koristiti za ubrzanje otklanjanja grešaka i testiranja.

Uvod

FPGA su prodorni i moćni elementi dizajna i sada se nalaze u gotovo svakom ugrađenom sistemu. Sa povećanjem kapaciteta, uključivanjem složenih funkcionalnih blokova na čipu i naprednih serijskih sučelja, ovi uređaji također mogu imati složene probleme dizajna koje je potrebno otkloniti. Praćenje problema kao što su greške funkcionalne definicije (na FPGA ili sistemskom nivou), problemi funkcionalne interakcije sistema, problemi sistemskog vremena i problemi vernosti signala između IC-a (kao što su šum, preslušavanje ili refleksije) postaju mnogo složeniji kada se koriste napredni FPGA. Simulacija je svakako velika pomoć u prepoznavanju mnogih dizajnerskih problema, ali mnoge interakcije u stvarnom svijetu neće se pojaviti dok se dizajn ne implementira u hardver. Nekoliko različitih tehnika za otklanjanje grešaka složenih problema dizajna je razvijeno kako bi se pojednostavio proces. Pažljivo razumijevanje svake od ovih ključnih tehnika, uključujući različite prednostitages i disadvantages, korisno je kada se razmatra koja tehnika ili kombinacija tehnika je prikladna za određeni dizajn.
Bivšiample FPGA dizajn, namijenjen za Microsemi SmartFusion2 SoC FPGA uređaj, može se koristiti za demonstraciju nekih od prednostitages i disadvantage ovih standardnih tehnika kao i najnovije mogućnosti za otklanjanje grešaka u krugu. Ovaj ilustrativni prampće pokazati kako se ove različite tehnike mogu koristiti za ubrzanje identifikacije i eliminacije hardverskih problema tokom hardverskog otklanjanja grešaka.

Zašto je FPGA otklanjanje grešaka kritičan aspekt dizajna i razvoja sistema?
FPGA imaju dva glavna modela upotrebe koji ih razlikuju od ostalih elemenata dizajna. FPGA se mogu koristiti u proizvodnom proizvodu ili se mogu koristiti kao razvojno sredstvo za dokazivanje ili prototip koncepta proizvodnog dizajna. Kada se koriste kao proizvodno vozilo, FPGA mogu biti mnogo fleksibilnija meta nego ASIC ili CPU-bazirana proizvodna vozila. Ovo je posebno važno za novi dizajn, onaj koji još nije implementiran u hardver. Dizajni s različitim arhitektonskim opcijama mogu se lako kreirati i testirati kako bi se identificirao optimalni dizajn. FPGA sa on-chip procesorima (SoC FPGA) takođe omogućavaju kompromis procesiranja zasnovanog na CPU-u sa hardverski potpomognutim FPGA-baziranim funkcijama ubrzanja. Ovi advantages može dramatično smanjiti vrijeme potrebno za dizajn, validaciju, testiranje i analizu kvarova za razvoj novih proizvoda.
Kada se koristi za izradu prototipa dizajna, možda za proizvodni ASIC, fleksibilnost FPGA je ključna prednost. Stvarna hardverska platforma, čak i ona koja ne radi punom brzinom, čini mnogo lakšim dobijanje detaljnih metrika performansi sistema, podataka analize propusnosti i rezultata arhitekture dokaza o konceptu. FPGA podrška za ojačane implementacije industrijskih standardnih sabirnica (kao što su PCIe®, Gigabit Ethernet, XAUI, USB, CAN i drugi) pojednostavljuje testiranje povezano sa ovim interfejsima. Najnovije porodice FPGA sa ARM procesorima na čipu (SoC FPGA), olakšavaju prototip implementacije sa ugrađenim procesorima. Prethodno razvijeni procesorski kod može se prenijeti na prototip, a novi kod kreiran paralelno s naporima dizajna hardvera.

Ova kombinacija standardnog procesora sa standardnim sabirnicama interfejsa omogućava da se iskoristi veliki ekosistem dostupnih biblioteka koda, drajvera, funkcionalnih API-ja, operativnih sistema u realnom vremenu, pa čak i kompletnih operativnih sistema za mnogo brže kreiranje radnog prototipa. Dodatno, kada se dizajn učvrsti, FPGA prototip se može koristiti za snimanje opsežnih simulacionih testnih skupova (i za stimulans i za odgovor) koji odražavaju stvarne sistemske podatke. Ovi skupovi podataka mogu biti od neprocjenjive vrijednosti u kreiranju konačnih simulacija za ASIC ili drugu proizvodnu implementaciju. AdvantagUpotreba FPGA kao prototipa dizajna može dramatično smanjiti vrijeme za dizajn, validaciju, testiranje i analizu grešaka za implementaciju finalnog proizvoda.
U oba ova uobičajena modela FPGA upotrebe, fleksibilnost FPGA kao cilja dizajna je ključna prednosttage. To znači da bi mnoge promjene dizajna i iteracije bile norma, i stoga bi sposobnost brzog otklanjanja grešaka u dizajnu bila kritična za omogućavanje što više opcija dizajna. Bez efikasne mogućnosti otklanjanja grešaka veliki dio prednostitagFleksibilnost FPGA dizajna će biti smanjena dodatnim potrebnim vremenom za otklanjanje grešaka. Srećom, FPGA takođe mogu pružiti dodatne hardverske karakteristike koje dramatično pojednostavljuju otklanjanje grešaka u realnom vremenu. Pre nego što pogledamo ove mogućnosti, hajde da prvo pogledamo najčešće tipove problema sa kojima se FPGA dizajn može suočiti kako bismo imali odgovarajuću pozadinu za procenu efikasnosti i povezanih kompromisa različitih alata za otklanjanje grešaka.

Uobičajeni problemi prilikom otklanjanja grešaka u FPGA dizajnu

Zajedno sa proširenim mogućnostima koje moderni FPGA donose, povezana povećana složenost otežava kreiranje dizajna bez grešaka. U stvari, procijenjeno je da otklanjanje grešaka može zauzeti više od 50% ciklusa dizajna ugrađenog sistema. S obzirom na to da pritisci vremena na tržište nastavljaju da sužavaju razvojni ciklus, otklanjanje grešaka u hardveru početnog sistema prebacuje se na zadnju misao—prečesto pod pretpostavkom da ta verifikacija (sama po sebi veliki procenattage plana razvoja), uhvatit će sve greške prije početnog pokretanja sistema. Pogledajmo samo nekoliko uobičajenih tipova sistemskih problema kako bismo bolje razumjeli izazove sa kojima će se tipičan dizajn suočiti tokom početnog pokretanja sistema.

Greške u funkcionalnoj definiciji može biti dvostruko teško pronaći jer je dizajner pogrešno shvatio određeni zahtjev, tako da se greška može previdjeti čak i kada se pažljivo pogledaju detalji dizajna. BivšiampUobičajena greška funkcionalne definicije bi bila kada tranzicija državnog stroja ne završi u pravom stanju. Greške se takođe mogu pojaviti u sistemskim interfejsima kao problem interakcije. Latencija interfejsa, nprample, može biti pogrešno specificirano, što rezultira neočekivanim prelivanjem me uspremnika ili uvjetom podtoka.
Problemi sa vremenom na sistemskom nivou su još jedan vrlo čest izvor grešaka u dizajnu. Asinhroni događaji su, posebno, čest izvor grešaka kada se efekti sinhronizacije ili ukrštanja vremenskih domena ne razmatraju pažljivo. Kada se radi velikom brzinom, ove vrste grešaka mogu biti vrlo problematične i mogu se pojaviti vrlo rijetko, možda samo kada se manifestiraju specifični obrasci podataka. Mnoga uobičajena kršenja vremena spadaju u ovu kategoriju i obično ih je vrlo teško, ako ne i nemoguće simulirati.

Kršenje vremena također može biti rezultat niske vjernosti signala između integriranih kola, posebno u sistemima s višestrukim šinama za napajanje za svako kolo. Niska vjernost signala može rezultirati šumom signala, preslušavanjem, refleksijama, prekomjernim opterećenjem i elektromagnetnim smetnjama (EMI) koje se često pokazuju kao kršenje vremena. Problemi sa napajanjem, kao što su tranzijenti (posebno tokom pokretanja ili gašenja sistema), varijacije u opterećenju i naprezanja velike disipacije energije takođe mogu dovesti do misterioznih grešaka, koje se često ne mogu lako pratiti do izvora napajanja. Čak i kada je dizajn potpuno ispravan, problemi u proizvodnji ploče mogu dovesti do grešaka. Neispravni lemni spojevi i nepravilno pričvršćeni konektori, nprample, može biti izvor grešaka i čak može ovisiti o temperaturi ili lokaciji ploče. Upotreba naprednih FPGA tehnika pakovanja može otežati ispitivanje signala na štampanoj ploči, tako da samo dobijanje pristupa željenom signalu često može biti problematično. Često mnogi problemi u dizajnu ne stvaraju trenutnu grešku i moraju se provlačiti kroz dizajn sve dok se greška zapravo ne manifestira. Praćenje početne greške do osnovnog uzroka često može biti frustrirajući, težak i dugotrajan zadatak.

Za nprampDakle, jedan bit pogrešan u tablici prijevoda možda neće rezultirati greškom sve do mnogo ciklusa kasnije. Neki od alata o kojima ćemo raspravljati kasnije u ovom radu, a koji koriste namjenski hardver za otklanjanje grešaka u krugu, posebno su usmjereni na to da ove 'trave grešaka' učine bržim i lakšim. Prije nego što uđemo u detalje ovih alata, pogledajmo simulaciju popularne softverske tehnike otklanjanja grešaka kako bismo bolje razumjeli prednostitages i disadvantage upotrebe simulacije za otklanjanje grešaka.

Upotreba simulacije za otklanjanje grešaka
Tipično u simulaciji dizajna, sve komponente iz stvarnog života unutar i izvan dizajna se matematički modeliraju kao softverski procesi koji se izvršavaju sekvencijalno na standardnom CPU-u. Primjena širokog raspona stimulansa na dizajn i provjera očekivanog izlaza u odnosu na izlaz simuliranog dizajna je jednostavan način da se uhvate najočitije greške u dizajnu. Prozor koji prikazuje tipičnu simulaciju dat je na slici 1 ispod. Jasan advantagE od simulacijskih stihova otklanjanja grešaka zasnovanog na hardveru, jeste da se simulacija može obaviti u softveru - nije potreban stvarni dizajn zasnovan na hardveru i testna stolica. Simulacija može brzo uhvatiti mnoge greške u dizajnu, posebno one povezane s netačnim specifikacijama, nerazumijevanjem zahtjeva interfejsa, greškama u funkciji i mnogim drugim 'grubim' tipovima grešaka koje se lako detektuju kroz jednostavne vektore stimulusa.

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

Simulacija je posebno efikasna kada su dizajneru dostupne opsežne kombinacije stimulusa i kada su rezultujući rezultati dobro poznati. U ovim slučajevima, simulacija može obaviti gotovo iscrpan test dizajna. Nažalost, većina dizajna nema lak pristup opsežnim testovima i proces njihovog kreiranja može potrajati. Stvaranje testnog paketa koji pokriva 100% dizajna je praktično nemoguće za velike dizajne zasnovane na FPGA i moraju se koristiti prečice da bi se pokušalo pokriti ključne elemente dizajna. Još jedna poteškoća sa simulacijom je da to nije implementacija u 'stvarnom svijetu' i da ne može uhvatiti asinhrone događaje, interakcije sistema pri brzini ili kršenja vremena. Konačno, proces simulacije može biti vrlo spor i ako je potrebno mnogo iteracija, simulacija brzo postaje najzahtjevniji, a često i najskuplji dio razvojnog procesa.

Kao alternativu (ili možda bolje rečeno, kao dodatak simulaciji) FPGA dizajneri su otkrili da mogu dodati hardver za otklanjanje grešaka u FPGA dizajn kako bi promatrali i kontrolirali ključne signale unutar uređaja. Ove tehnike su se prvobitno razvile kao ad-hoc pristupi, ali su se postepeno razvile u standardnu ​​strategiju za otklanjanje grešaka u hardveru. Ova upotreba mogućnosti za otklanjanje grešaka u krugu nudi značajan napredaktages za dizajne zasnovane na FPGA, a sljedeći odjeljak će istražiti tri najčešće strategije i njihove različite prednostitages i disadvantages.

Uobičajeni pristupi za otklanjanje grešaka u krugu za FPGA
Najčešće tehnike za implementaciju mogućnosti za otklanjanje grešaka u krugu u FPGA koriste ili ugrađeni logički analizator, eksternu opremu za testiranje ili namenski hardver sonde signala ugrađen u FPGA tkaninu. Ugrađeni logički analizator se obično implementira pomoću FPGA tkanine i ubacuje se u dizajn. The JTAG port se koristi za pristup analizatoru i snimljeni podaci se mogu prikazati na PC-u. Kada se koristi eksterna testna oprema, FPGA dizajn koji se testira se mijenja tako da se odabrani interni FPGA signali usmjeravaju na izlazne pinove. Ove igle se zatim mogu posmatrati preko eksterne opreme za testiranje. Kada se koristi namenski hardver za sondu signala, širok izbor internih signala može se očitati u realnom vremenu. Neke implementacije sonde mogu se čak koristiti za pisanje za registraciju ili memorijske lokacije čime se dodatno poboljšavaju mogućnosti otklanjanja grešaka. Pogledajmo detaljnije advantages i disadvantage svake od ovih tehnika, a zatim pogledajte bivšegample dizajnirati kako bi vidjeli kako ovi različiti pristupi mogu utjecati na ukupno vrijeme otklanjanja grešaka.

In-Circuit FPGA Debug-Embedded Logic Analyzer
Koncept ugrađenog logičkog analizatora bio je direktan rezultat ad-hoc mogućnosti za otklanjanje grešaka u krugu koje su dizajneri implementirali kada su FPGA prvi put korišteni. Ugrađeni logički analizatori dodali su nove mogućnosti i eliminisali zahtev za dizajnera da razvije sopstveni analizator. Većina FPGA nudi ove mogućnosti, a treće strane nude standardne analizatore (Identify®, iz Synopsysa, je jedan popularan bivšiample) koji se lako može povezati sa alatima višeg nivoa radi daljeg poboljšanja produktivnosti.

Funkcionalnost logičkog analizatora je umetnuta u dizajn, koristeći FPGA tkaninu i ugrađene memorijske blokove kao bafere praćenja, kao što je ilustrovano na slici 2. Resursi za pokretanje su također kreirani tako da se složene interakcije signala mogu lako odabrati i uhvatiti. Pristup analizatoru za kontrolu i prijenos podataka obično se obavlja preko standardnog JTAG port za pojednostavljenje zahteva interfejsa. Snimljeni podaci se mogu prikazati na PC-u koristeći common viewing softver i tipično odražava izlaz valnog oblika logičkog simulatora viewing style.

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

AdvantagPrednosti ovog pristupa su da se ne koriste dodatni FPGA I/O pinovi, već samo standardni JTAG signale. IP jezgre ugrađenog logičkog analizatora obično su relativno jeftine i u nekim slučajevima mogu biti opcija za postojeću FPGA sintezu ili alate za simulaciju. U nekim slučajevima, ugrađeni logički analizator može također pružiti dodatne izlaze na neiskorištenim I/O-ovima, ako je to pogodnije. Jedan od nedostatakatagZa ovaj pristup je potrebna velika količina FPGA resursa. Konkretno, ako se koriste međuspremnici praćenja, to će smanjiti broj dostupnih blok memorija. Ako je potreban širok međuspremnik, to će također biti kompromis protiv dubine memorije (pošto korištenje šire memorije rezultira manjom dubinom memorije) - veliki nedostataktage kada koristite manje uređaje. Možda je najveći nedostatak ove tehnike to što je svaki put kada se izvrši prilagodba postavljanja sonde potrebno ponovo kompajlirati i reprogramirati dizajn. Kada koristite veliki uređaj, ovaj proces može potrajati značajno vrijeme. Zbog načina na koji su signalne sonde postavljene u dizajn, može biti teško korelirati vremenske odnose signala. Dodatno, kašnjenja između signalnih sondi nisu konzistentna i stoga je vremenske odnose teško uporediti. Ovo predstavlja posebnu poteškoću kada se porede asinkroni signali ili signali iz različitih vremenskih domena.

In-Circuit FPGA Debug – Eksterna testna oprema
Upotreba koda za otklanjanje grešaka u krugu u kombinaciji sa eksternom opremom za testiranje bio je prirodan razvoj kada je eksterni logički analizator već bio dostupan za testiranje sistema. Kreiranjem jednostavnog koda za otklanjanje grešaka za identifikaciju i odabir internih test signala i njihovu primjenu na FPGA I/O, kao što je prikazano na slici 3, bilo je moguće iskoristiti napredne mogućnosti analizatora (kao što su veliki baferi tragova, složene sekvence pokretanja i višestruke viewopcije) za kreiranje jednostavnih, ali moćnih okruženja za otklanjanje grešaka. Složenije mogućnosti unutar kola za napredne opcije okidanja mogu minimizirati broj potrebnih izlaza. Za nprampDakle, odabir specifičnih adresa na širokoj magistrali mogao bi biti nedovoljan ako su vanjski pinovi potrebni.
Upotreba interne FPGA logike dramatično smanjuje I/O zahtjeve i čak može tražiti specifične obrasce adresa (možda sekvencu poziva i povratka) za otklanjanje složenijih problema. Ako je zajedničko korisničko sučelje dostupno, to može pojednostaviti krivulju učenja i poboljšati produktivnost.

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

AdvantagPrednosti ovog pristupa su u tome što povećava troškove eksterne opreme za testiranje i stoga nema dodatnih troškova alata. Neka IP jezgra kola za otklanjanje grešaka su dostupna od proizvođača opreme ili proizvođača FPGA, a mogu biti vrlo niska ili čak besplatna. Količina FPGA resursa potrebnih za implementaciju logike odabira signala je vrlo mala, a budući da se funkcija praćenja vrši korištenjem eksternog logičkog analizatora, memorije bloka nisu potrebne. Budući da je logika odabira jeftina, može se podržati i veliki broj kanala sa širokim okidanjem. Logički analizator može da radi i u režimu vremena i u režimu stanja koji pomaže da se izoluju neki problemi sa vremenom.
DisadvantagOvi pristupi mogu uključiti potrebu za kupovinom logičkog analizatora, ako on već nije dodijeljen projektu. Ovaj nedostataktage može biti dovoljno da obeshrabri ovaj pristup u mnogim slučajevima. Međutim, imajte na umu da neke jeftine opcije logičkog analizatora postaju dostupne koje koriste PC ili tablet za prikaz, što ovu opciju čini mnogo isplativijom za jednostavne zahtjeve za otklanjanje grešaka.
Broj utrošenih FPGA pinova može biti još jedan nedostataktage i ako je potrebno posmatrati široke magistrale, potrebno je značajno planiranje rasporeda ploče i dodavanje konektora za otklanjanje grešaka. Ovaj zahtjev je najčešće teško predvidjeti u ranoj fazi projektovanja i još jednu neželjenu složenost. Slično pristupu ugrađenog logičkog analizatora, strategija eksternog testiranja zahtijeva ponovno kompajliranje i reprogramiranje dizajna, kada je potreban svaki novi eksperiment.

Zajednički nedostataktagove dvije tehnike – korištenje resursa na čipu (koji također mogu utjecati na performanse vremena dizajna i stvoriti dodatne zahtjeve za otklanjanje grešaka), potreba za ponovnim kompajliranjem i reprogramiranjem dizajna (što može dodati sate ili čak dane rasporedu otklanjanja grešaka), unaprijed planiranje potrebno za identifikaciju vjerojatnih scenarija testiranja i korištenje dodatnih čipova za I/O pristup bez potrebe za tim resursima. Jedan odgovor je bio dodavanje namenske logike za otklanjanje grešaka u FPGA tkaninu na nekim uređajima. Rezultat je bio otklanjanje grešaka u krugu pomoću hardverskih sondi.

In-Circuit FPGA Debug – Hardverske sonde
Upotreba hardverskih sondi dramatično pojednostavljuje tehnike otklanjanja grešaka u krugu za FPGA. Ova tehnika implementirana kao Live Probe karakteristika na SmartFusion2®SoC FPGA i IGLOO®2 FPGA uređajima, dodaje namenske linije sonde u FPGA tkaninu kako bi se posmatrao izlaz bilo kog bita registra logičkog elementa. Kao što je prikazano na blok dijagramu na slici 4, hardverske sonde su dostupne u dva kanala sonde A i B.

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

Odabrani izlazi registra (tačke sonde), poput onog koji se nalazi na dnu slike, rutiraju se iznad dva kanala sonde i ako su odabrani mogu se primijeniti na A ili B kanal. Ovi signali kanala u realnom vremenu se zatim mogu poslati na namjenske pinove sonde A i sonde B na uređaju. Signali sonde A i sonde B također se mogu interno usmjeriti na ugrađeni logički analizator.

Imajte na umu da su vremenske karakteristike pinova sonde pravilne i da imaju zanemarivo odstupanje od jedne tačke sonde do druge, što čini mnogo lakšim upoređivanje vremenskih karakteristika signala u realnom vremenu. Podaci se mogu uhvatiti na frekvenciji do 100MHz što ga čini prikladnim za većinu ciljanih dizajna.
Možda je najvažnije da se lokacije tačaka sonde, budući da nisu odabrane kao dio implementiranog dizajna (odabrane su preko namjenskog hardvera dok se dizajn radi na FPGA), mogu brzo promijeniti jednostavnim slanjem podataka o odabiru na uređaj. Nije potrebno ponovno kompajliranje i reprogramiranje dizajna.
Da bi se još više pojednostavila upotreba mogućnosti Live Probe, pridruženi softverski alat za otklanjanje grešaka ima pristup svim lokacijama signala sonde putem automatski generiranog otklanjanja grešaka file. Kao što je prikazano na slici 5, naziv signala se može odabrati sa liste signala i primijeniti na željeni kanal. Ovo se može učiniti čak i dok je dizajn u toku, tako da je sondiranje unutar dizajna besprijekorno i vrlo efikasno.

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

U mnogim slučajevima, sposobnost hardverske sonde, kao što je Live Probe, može se koristiti u kombinaciji s prethodno opisanim ugrađenim logičkim analizatorom i eksternim tehnikama testiranja.

Kao što je prikazano na slici 6, sposobnost Live Probe za odabir signala 'u hodu' omogućava brzu i laku promjenu signala koji se posmatraju bez potrebe za ponovnim kompajliranjem dizajna. Eksterni logički analizator ili opseg može lako da posmatra sondirane signale, kao što je ilustrovano u gornjem desnom delu slike na namenskim izlaznim pinovima sonde. Alternativno (ili možda čak i kao dodatak) interni logički analizator (blok ILA Identify, prikazan na slici) može se koristiti za posmatranje pinova sonde. ILA može uhvatiti signale sonde i posmatrati ih na prozoru talasnog oblika. Lokacije sonde se mogu mijenjati bez potrebe za ponovnim kompajliranjem ciljnog dizajna.
Imajte na umu da se dodatne mogućnosti za okidanje i praćenje mogu koristiti za poboljšanje funkcionalnosti sonde, što olakšava uočavanje čak i složenih problema dizajna.

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

Dodatne mogućnosti hardverskog otklanjanja grešaka su takođe dostupne na SmartFusion2 SoC FPGA i IGLOO2 FPGA uređajima. Jedna od ovih mogućnosti, nazvana Active Probe, može dinamički i asinhrono čitati ili pisati u bilo koji registrski bit logičkog elementa. Napisana vrijednost ostaje za jedan ciklus takta tako da se normalan rad može nastaviti, što ga čini vrlo vrijednim alatom za otklanjanje grešaka. Aktivna sonda je od posebnog interesa ako se želi brzo promatranje internog signala (možda jednostavno kako bi se provjerilo da li je aktivan ili u željenom stanju, kao što je signal za resetiranje), ili ako postoji potreba da se brzo testira logička funkcija pisanjem u točku sonde.
(možda za pokretanje tranzicije državnog stroja brzim postavljanjem ulazne vrijednosti za izolaciju problema toka kontrole).

Još jedna mogućnost otklanjanja grešaka koju pruža Microsemi je Memory Debug. Ova karakteristika omogućava dizajneru da dinamički i asinhrono čita ili piše u odabrani FPGA fabric SRAM blok. Kao što je ilustrovano na snimku ekrana alata za otklanjanje grešaka (Slika 7), kada je odabrana kartica Memory Blocks, korisnik može odabrati željenu memoriju za čitanje, izvršiti snimak memorije, modificirati vrijednosti memorije, a zatim zapisati vrijednosti natrag u uređaj. Ovo može biti posebno korisno za provjeru ili postavljanje međuspremnika podataka koji se koriste u komunikacijskim portovima za računski orijentisanu greblicu ili čak za kod koji izvršava ugrađeni CPU. Otklanjanje grešaka složenih grešaka koje zavise od podataka je znatno brže i lakše kada se memorije mogu posmatrati i kontrolisati tako brzo.

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

Nakon što je dizajn otklonjen, možda bi bilo poželjno isključiti mogućnosti hardverskog otklanjanja grešaka kako bi se zaštitile osjetljive informacije. Napadač bi mogao koristiti te iste mogućnosti za čitanje kritičnih informacija ili promjenu postavki sistema koje bi mogle omogućiti lak pristup osjetljivim dijelovima sistema. Microsemi je dodao karakteristike koje omogućavaju dizajneru da osigura uređaj nakon što je otklanjanje grešaka završeno. Za nprampDakle, pristup Live Probe i Active Probe može se zaključati kako bi se potpuno onemogućila funkcija kao moguće sredstvo napada (čak eliminira mogućnost da aktivnost sonde stvara bilo kakve obrasce u struji napajanja koji bi se mogli koristiti za pokušaj indirektnog promatranja podataka sonde). Alternativno, pristup odabranim dijelovima dizajna može biti zaključan kako bi se spriječio pristup samo tim dijelovima. Ovo može biti zgodno ako samo dio dizajna mora biti siguran, čineći ostatak dizajna još uvijek dostupnim za testiranje na terenu ili analizu grešaka.

Uporedni grafikon za otklanjanje grešaka u krugu
Sada kada je detaljno review opisane su tri glavne tehnike za otklanjanje grešaka u hardveru u krugu, kreiran je sažeti grafikon, kao što je prikazano na slici 8, koji detaljno opisuje različite prednostitages i disadvantages svake metode. Imajući na umu da se neke tehnike mogu koristiti zajedno (Live Probe i Internal Logic Analyzer (ILA), kao što je Synopsys Identify, npr.ample), možemo uočiti ključne prednosti i slabosti svake tehnike. Kolekcija hardverskih mogućnosti za otklanjanje grešaka u krugu (Live Probe, Active Probe i Memory Debug—zajedno nazvane SmartDebug), najslabije su u poređenju sa drugim tehnikama kada je u pitanju broj ukupnih dostupnih sondi (crveni krug) i slabije su od najbolje (žuti krug) kada se uzme u obzir brzina snimanja (eksterna testna oprema).
Tehnike zasnovane na ILA, kao što je Synopsys Identify, najslabije su u poređenju sa drugim tehnikama i kada se uzmu u obzir zahtjevi za FPGA resursima. Tehnike bazirane na opremi za eksterno testiranje su najslabije u odnosu na brojna razmatranja, a najzahtjevniji su trošak, vremenski uticaj na dizajn i opterećenje sonde (zbog potrebe ponovnog kompajliranja dizajna). Možda je optimalno rješenje kombinacija SmartDebug-a i jedne od drugih tehnika, tako da se broj kanala slabosti SmartDebuga može ublažiti, a pomicanje tačke sonde umanjiti.tagsmanjene su i druge tehnike.

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

Klasifikacije signala
Može se napraviti korisna razlika između nekih od najčešćih tipova signala i to može pomoći pri planiranju pristupa otklanjanju grešaka. Za nprampDakle, signali koji se ne menjaju osim tokom pokretanja sistema, kao što su resetovanje sistema, resetovanje bloka ili registri inicijalizacije mogu se klasifikovati kao statički signali. Ovim vrstama signala se najefikasnije pristupa putem uređaja koji lako može posmatrati, kao i kontrolisati signal, bez potrebe za dugim ciklusom ponovnog kompajliranja. Active Probe je odlično sredstvo za otklanjanje grešaka u statičkim signalima. Slično tome, signali koji se češće mijenjaju, ali su i dalje statični u velikoj većini vremena, mogu se klasificirati kao pseudo-statički i također se najefikasnije otklanjaju greškama pomoću Active Probe. Signali koji se često mijenjaju, poput signala sata, mogu se klasificirati kao dinamički i nije im tako lako pristupiti putem aktivne sonde. Live Probe je bolji izbor za posmatranje ovih signala.

Jednostavan slučaj upotrebe za otklanjanje grešaka

Sada kada imamo bolje razumijevanje različitih opcija za otklanjanje grešaka u krugu, pogledajmo jednostavan dizajn npr.ampda vidimo kako ove tehnike rade. Slika 9 prikazuje jednostavan FPGA dizajn u SmartFusion2 SoC FPGA uređaju. Podsistem mikrokontrolera (MSS) se resetuje pomoću CoreSF2Reset Soft IP bloka. Ulazi za ovaj blok su resetovanje po uključenju, resetovanje korisničkog tkanja i eksterno resetovanje. Izlazi su resetovanje korisničkog tkanja, resetovanje MSS-a i resetovanje M3. Simptomi greške su da nema aktivnosti na I/O-ovima iako uređaj uspješno izlazi iz POR stanja. Tri različite opcije za otklanjanje grešaka u ovoj grešci su takođe ilustrovane na slici: Plava kutija (označena ETE) je za metodu eksterne opreme za testiranje; zelena kutija (označena ILA) je za metodu Internal Logic Analyzer; a narandžasta kutija (označena AP) je za metodu Active Probe. Pretpostavićemo da su potencijalni osnovni uzroci greške neispravno potvrđeni ulazi za resetovanje u CoreSF2Reset Soft IP blok.

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

Pogledajmo sada proces otklanjanja grešaka za tri prethodno opisane metode u krugu.

Eksterna testna oprema
Koristeći ovu metodu, pretpostavlja se da je testna oprema dostupna i da je ne koristi projekt višeg prioriteta. Uz to, važno je planirati unaprijed kako bi neki FPGA I/O uređaji bili dostupni i mogli se lako povezati na opremu za testiranje. Imati zaglavlje na PCB-u nprample, bilo bi od velike pomoći i minimiziralo bi vrijeme utrošeno na identifikaciju i povezivanje s 'vjerovatnim osumnjičenim' ili potencijalni kratki spoj pinova tokom sondiranja. Dizajn će se morati ponovo kompajlirati kako bismo odabrali signale koje želimo istražiti. Nadamo se da nećemo 'ljuštiti luk' i da ćemo morati odabrati dodatne signale za dalju istragu, jer često naša početna istraga samo rezultira dodatnim pitanjima. U svakom slučaju, proces ponovnog kompajliranja i reprogramiranja može potrajati značajno vrijeme, a ako rezultira kršenjem vremena, potreban je redizajn (svi smo upoznati s tim koliko frustrirajući pokušaj rješavanja problema zatvaranja vremena može biti, posebno kada unosite promjene u dizajn da biste pronašli grešku u dizajnu – cijeli proces može trajati od minuta do sati)! Takođe je važno zapamtiti da ako dizajn nema slobodne korisničke I/O, ovaj metod se ne može implementirati. Štaviše, ova metoda je strukturalno nametljiva u dizajnu — a greške vezane za vrijeme mogu nestati ili se ponovo pojaviti između iteracija.

Interni logički analizator
Koristeći ovu metodu, ILA mora biti umetnuta u dizajn koristeći materijalne resurse, a zatim se mora ponovo kompajlirati. Imajte na umu da ako je ILA već instancirana, signali koje želimo istražiti možda nisu instrumentirani, što bi također zahtijevalo ponovno kompajliranje. Ovaj proces rizikuje promjenu originalnog dizajna i kršenje vremenskih ograničenja. Ako je tajming ispunjen, dizajn treba reprogramirati i ponovo inicijalizirati. Cijeli ovaj proces može potrajati nekoliko minuta ili čak sati ako su vremena ponovnog kompajliranja dugačka i potrebno je više prolaza. Ovaj pristup je strukturalno nametljiv i može rezultirati sličnim problemima onima koji su opisani kada se koristi gornja metoda.

Aktivna sonda
Koristeći ovu metodu, aktivna sonda može biti usmjerena na izvor različitih signala resetovanja, od kojih svi potiču iz izlaza registra (kao što je uobičajeno u svakoj dobroj praksi digitalnog dizajna). Signali se biraju jedan po jedan, iz menija Active Probe prikazanog na slici 10 ispod. Odabrane vrijednosti signala mogu se pročitati i prikazati u prozoru podataka Active Probe. Sve pogrešne tvrdnje se lako prepoznaju. Ovaj test se može uraditi odmah bez potrebe za ponovnim kompajliranjem i reprogramiranjem uređaja i nije strukturno ili proceduralno nametljiv. Cijeli proces traje samo nekoliko sekundi. Ova metoda također može stvoriti upravljivost (asinhrono mijenjanje vrijednosti) što druge dvije metode neće dozvoliti. U ovom konkretnom prampDakle, signal resetovanja koji potiče iz registra može se lako ispitati i otkriti da se drži u aktivnom stanju.

Trenutačno prebacivanje signala za resetovanje može se postići asinhronim manipulisanjem registrom koji generiše ostale signale.

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

Složeniji slučaj upotrebe za otklanjanje grešaka
Gore navedeni dizajn bio je vrlo jednostavan i koristan je kao uvod u korištenje opisanih tehnika dizajna, ali složeniji npr.ampto bi moglo biti još ilustrativnije. Mnogo puta signal od interesa nije statički signal kao što je bio u našem jednostavnom primjeruample ali je dinamičan. Uobičajeni dinamički signal je srednji sat, koji se možda koristi za mjerenje vremena rukovanja za serijski interfejs. Slika 11 prikazuje takav dizajn sa korisničkim Soft IP jezgrom, u ovom slučaju, prilagođenim serijskim interfejsom povezanim na sistemsku APB magistralu. Simptomi greške su da nema aktivnosti na korisničkom prilagođenom serijskom sučelju i da kada master APB sabirnice izda transakciju za pristup serijskom sučelju, ona prelazi u stanje izuzetka što ukazuje na neispravno rukovanje. Čini se da ovi uvjeti isključuju statički uzrok, poput neispravnog signala resetiranja, budući da se čini da mašina stanja transakcije ne radi očekivanom brzinom i na taj način uzrokuje izuzetak. Smatra se da je osnovni uzrok generator frekvencije takta unutar korisničkog IP jezgra.

Ako ne radi na ispravnoj frekvenciji, nastale bi opisane greške.

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

U ovoj situaciji je vjerovatno bolja strategija zamijeniti pristup Active Probe sa Live Probe. Ovo je ilustrovano na gornjoj slici narandžastom LP kutijom, koristeći JTAG signal za izbor izvora sonde.

Eksterna testna oprema
Za ovaj slučaj, metodologija je vrlo slična prethodno opisanom jednostavnom nprample. Signal korisničkog sata se dovodi do testne tačke (nadajmo se na zaglavlju) i potrebno je ponovno kompajliranje koje oduzima mnogo vremena. Takođe može biti od pomoći da se iznese referentni signal, možda sistemski sat koji se koristi za taktiranje IP korisnika kao signal za poređenje. Ponovo ćemo biti podvrgnuti potrebi za rekompajliranjem i reprogramiranjem kako bi cijeli proces mogao potrajati značajno vrijeme.

Interni logički analizator
Ovaj slučaj je vrlo sličan jednostavnom primjeruample. ILA mora biti umetnut, ili željeni signal definiran, a ciklus ponovnog kompajliranja i reprogramiranja mora se izvršiti. Svi prethodno opisani problemi i dalje rezultiraju značajnim vremenom ciklusa otklanjanja grešaka. Međutim, postoji dodatna složenost. Sat koji pokreće ILA treba da bude sinhroni, i idealno mnogo brži u odnosu na sat koji se posmatra iz korisničkog Soft IP jezgra. Ako su ovi satovi asinhroni ili nemaju ispravne vremenske odnose, hvatanje podataka će biti nepredvidivo i mogući izvor zabune u procesu otklanjanja grešaka.
Imajte na umu da ako korisnički Soft IP sat nije generisan na čipu (možda je oporavljen iz serijskog interfejsa), dizajner će možda morati da doda modul takta da generiše brži ILA takt koristeći dodatne resurse i eventualno kreiranje kršenja vremena.

Live Probe
Koristeći ovu metodu, Live Probe se može brzo usmjeriti na izvor korisničkog sata i bilo koji drugi izvor takta iz registra kako bi se pronašao osnovni uzrok greške. Live Probe će prikazati odabrane izlazne signale u realnom vremenu i stoga je bilo koji vremenski odnos između signala mnogo lakše odrediti. Cijeli proces traje samo nekoliko sekundi.

Ostale funkcije za otklanjanje grešaka za serijska sučelja
Također je važno istaći da postoje mnoge dodatne mogućnosti otklanjanja grešaka u SmartFusion2 SoC FPGA i IGLOO2 FPGA uređajima koji se mogu koristiti na serijskim sučeljima, poput onog u prethodnom example dizajn u kojem su greške još komplikovanije. SERDES Debug, nprample, pruža specifične mogućnosti za otklanjanje grešaka za namjenska brza serijska sučelja. Neke od karakteristika SERDES Debug uključuju podršku za PMA test (kao što je generiranje PRBS šablona i testiranje povratne petlje) podršku za višestruke SERDES test konfiguracije s rekonfiguracijom na razini registra kako bi se izbjeglo korištenje punog toka dizajna za promjenu konfiguracije i tekstualne izvještaje koji prikazuju konfigurirane protokole, SERDES konfiguracijske registre i registre konfiguracije trake. Ove karakteristike čine SERDES otklanjanje grešaka mnogo lakšim i mogu se koristiti zajedno sa Live Probe i Active Probe radi daljeg ubrzanja otklanjanja grešaka složenih kola.
Prethodno opisani alat za otklanjanje grešaka u memoriji se takođe može koristiti u kombinaciji sa SERDES Debug-om za ubrzanje testiranja. Pošto se memorijski baferi mogu brzo i lako pregledati i promeniti pomoću Memory Debug-a, moguće je brzo kreirati 'test pakete' i posmatrati rezultate povratne petlje ili međusistemske komunikacije. Dizajner može iskoristiti ove mogućnosti i na taj način minimizirati potrebu za specijaliziranim 'testnim uprtačima' koji troše dodatnu FPGA tkaninu i koji bi mogli utjecati na tajming čipa.

Zaključak
Ovaj rad je detaljno opisao nekoliko različitih pristupa implementaciji in-ciruit debug-a za FPGA i SoC FPGA-upotrebu integrisanog logičkog analizatora, upotrebu eksterne opreme za testiranje i upotrebu namenskih kola sonde integrisanih u FPGA tkaninu. Dodavanje specijalizovanih i namenskih kola sonde, kao što su Active Probe i Live Probe koje nudi Microsemi na SmartFusion2 SoC FPGA i IGLOO2 FPGA uređajima, pokazalo se da značajno ubrzava i pojednostavljuje proces otklanjanja grešaka. Sposobnost brzog modificiranja odabira internih signala (bez potrebe za izvršavanjem dugotrajnog ciklusa ponovnog kompajliranja i ponovnog programiranja), te mogućnost sondiranja internih signala (bez potrebe za korištenjem FPGA tkanine i potencijalnog uvođenja vremenskih kršenja) pokazali su se kao glavni prednostitages prilikom otklanjanja grešaka u FPGA dizajnu. Dodatno, opisana je upotreba više metodologija, koje mogu raditi zajedno kako bi pružile još sveobuhvatniju mogućnost otklanjanja grešaka. Konačno, dva bivampDati su slučajevi upotrebe debug-a kako bi se ilustrovali kompromisi između opisanih metoda.

Da biste saznali više

  1. IGLOO2 FPGAs
  2. SmartFusion2 SoC FPGA

Microsemi Corporation (Nasdaq: MSCC) nudi sveobuhvatan portfelj poluprovodničkih i sistemskih rješenja za komunikacije, odbranu i sigurnost, avio i industrijska tržišta. Proizvodi uključuju visoke performanse i radijacijom ojačana analogna integrirana kola mješovitog signala, FPGA, SoC i ASIC; proizvodi za upravljanje napajanjem; uređaji za merenje vremena i sinhronizacije i precizna vremenska rešenja, postavljajući svetske standarde za vreme; Uređaji za obradu glasa; RF rješenja; diskretne komponente; sigurnosne tehnologije i skalabilni anti-tamper products; Power-over-Ethernet IC-ovi i srednji rasponi; kao i mogućnosti i usluge prilagođenog dizajna. Microsemi ima sjedište u Aliso Viejo, Kalifornija, i ima oko 3,400 zaposlenih širom svijeta. Saznajte više na www.microsemi.com.

© 2014 Microsemi Corporation. Sva prava zadržana. Microsemi i Microsemi logo su zaštitni znakovi Microsemi Corporation. Svi ostali zaštitni znakovi i uslužni znaci vlasništvo su njihovih vlasnika.

Microsemi korporativno sjedište

FAQ

  • P: Koja je maksimalna frekvencija hvatanja podataka na uređaju?
    O: Uređaj podržava hvatanje podataka do 100MHz, pogodno za većinu ciljnih dizajna.
  • P: Da li trebam ponovo kompajlirati dizajn kada koristim kola sonde za otklanjanje grešaka?
    O: Ne, lokacije tačaka sonde mogu se brzo promijeniti bez potrebe za ponovnom kompilacijom ili reprogramiranjem dizajna.

Dokumenti / Resursi

Microsemi In-Circuit FPGA Debug [pdfUpute
In-Circuit FPGA Debug, FPGA Debug, Debug

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *