Microsemi In-Circuit FPGA silumine
Tooteteave
Tehnilised andmed
- Seadme tüüp: Microsemi SmartFusion2 SoC FPGA
- Ilmumiskuupäev: mai 2014
- Silumisvõimalused: vooluringisisene FPGA silumine, sisseehitatud loogikaanalüsaator
- Maksimaalne andmehõive sagedus: kuni 100 MHz
Abstraktne
FPGA-d on võimsad disainielemendid manustatud süsteemides, millel on palju disainilahendusitages, kuid nendel seadmetel võib olla keeruline disain ja keerukad disainiprobleemid, mida tuleb siluda. Disainiprobleemide, nagu määratlusvead, süsteemi interaktsiooniprobleemid ja süsteemi ajastusvead, jälitamine võib olla väljakutse. Voolusiseste silumisvõimaluste lisamine FPGA-sse võib märkimisväärselt parandada riistvara silumist ja vältida lugematuid tunde pettumust. Selles artiklis kirjeldatakse mitut erinevat lähenemisviisi FPGA-de ahelasiseseks silumiseks, tuvastatakse peamised kompromissid ja eks.ampLe design, mis on suunatud Microsemi SmartFusion®2 SoC FPGA seadmele, näitab, kuidas saab silumise ja testimise kiirendamiseks kasutada uusi võimalusi.
Sissejuhatus
FPGA-d on laialt levinud ja võimsad disainielemendid ning neid leidub nüüd peaaegu kõigis manussüsteemides. Kasvava võimsuse, keerukate kiibisiseste funktsionaalplokkide ja täiustatud jadaliideste kaasamise tõttu võib nendel seadmetel esineda ka keerulisi disainiprobleeme, mida tuleb siluda. Täiustatud FPGA-de kasutamisel muutub selliste probleemide jälitamine nagu funktsionaalsed definitsioonivead (FPGA või süsteemi tasemel), funktsionaalse süsteemi interaktsiooniprobleemid, süsteemi ajastuse probleemid ja IC-de vahelise signaali täpsusega seotud probleemid (nt müra, läbirääkimine või peegeldused). Simulatsioon on kindlasti suureks abiks paljude disainiprobleemide tuvastamisel, kuid paljud tegelikud interaktsioonid ilmnevad alles siis, kui disain on riistvaras juurutatud. Protsessi lihtsustamiseks on välja töötatud mitu erinevat tehnikat keerukate disainiprobleemide silumiseks. Kõigi nende võtmetehnikate, sealhulgas erinevate advanide hoolikas mõistminetages ja puudusedtages on kasulik, kui kaalute, milline tehnika või tehnikate kombinatsioon konkreetse disaini jaoks sobib.
Endineample FPGA disaini, mis on suunatud Microsemi SmartFusion2 SoC FPGA seadmele, saab kasutada mõningate eeliste demonstreerimiseks.tages ja puudusedtagnii nende standardtehnikate kui ka uusimate vooluringisisese silumisvõimaluste jaoks. See illustreeriv eksample näitab, kuidas neid erinevaid tehnikaid saab kasutada riistvaraprobleemide tuvastamise ja kõrvaldamise kiirendamiseks riistvara silumise ajal.
Miks on FPGA silumine süsteemi kavandamise ja arendamise oluline aspekt?
FPGA-del on kaks peamist kasutusmudelit, mis eristavad neid teistest disainielementidest. FPGA-sid saab kasutada tootmistootes või kasutada arendusvahendina tootmisdisaini kontseptsiooni tõestamiseks või prototüübiks. Tootmisvahendina kasutamisel võivad FPGA-d olla palju paindlikum sihtmärk kui ASIC- või CPU-põhised tootmissõidukid. See on eriti oluline uue kujunduse puhul, mida pole veel riistvaras rakendatud. Erinevate arhitektuursete võimalustega kavandeid saab hõlpsasti luua ja katsetada, et tuvastada optimaalne disain. Kiibisiseste protsessoritega FPGA-d (SoC FPGA-d) võimaldavad ka CPU-põhist töötlemist riistvaralise abiga FPGA-põhiste kiirendusfunktsioonidega. Need advantagSee võib oluliselt vähendada uute tootearenduste kavandamiseks, valideerimiseks, testimiseks ja tõrkeanalüüsiks kuluvat aega.
Kui seda kasutatakse disaini prototüüpimiseks, võib-olla tootmis-ASIC-i jaoks, on FPGA paindlikkus peamine eelis. Tegelik riistvaraplatvorm, isegi see, mis ei tööta täiskiirusel, muudab üksikasjalike süsteemi jõudlusmõõdikute, läbilaskevõime analüüsi andmete ja arhitektuuri kontseptsiooni tõendamise tulemuste hankimise palju lihtsamaks. FPGA-tugi tööstusstandardi siinide (nt PCIe®, Gigabit Ethernet, XAUI, USB, CAN ja teised) tugevdatud juurutuste jaoks lihtsustab nende liidestega seotud testimist. Uusimad FPGA-de perekonnad koos kiibisiseste ARM-protsessoritega (SoC FPGA-d) muudavad sisseehitatud protsessoritega rakenduste prototüüpide loomise lihtsaks. Varem väljatöötatud protsessori koodi saab prototüübile portida ja uut koodi luua paralleelselt riistvara projekteerimisega.
See standardse protsessori ja standardsete liidesesiinide kombinatsioon võimaldab kasutada olemasolevate kooditeekide, draiverite, funktsionaalsete API-de, reaalajas operatsioonisüsteemide ja isegi täielike operatsioonisüsteemide suurt ökosüsteemi, et luua palju kiiremini töötav prototüüp. Peale selle, kui disain on tahkestunud, saab FPGA prototüüpi kasutada ulatuslike simulatsioonitestide (nii stiimuli kui ka vastuse jaoks) jäädvustamiseks, mis kajastavad tegelikke süsteemiandmeid. Need andmekogumid võivad olla ASIC-i või muu tootmisrakenduse lõplike simulatsioonide loomisel hindamatud. AdvantagFPGA kasutamine disaini prototüübina võib järsult vähendada lõpptoote juurutamise projekteerimise, valideerimise, testimise ja tõrkeanalüüsi aega.
Mõlemas levinud FPGA kasutusmudelis on FPGA kui disaini sihtmärgi paindlikkus võtmetähtsusega eelistage. See tähendab, et paljud kujunduse muudatused ja iteratsioonid oleksid normiks ning seega oleks disainivigade kiire silumise võimalus võimalikult paljude kujundusvalikute võimaldamiseks ülioluline. Ilma tõhusa silumisvõimaluseta suur osa advanisttagFPGA disaini paindlikkus väheneb silumiseks vajaliku lisaaja tõttu. Õnneks võivad FPGA-d pakkuda ka täiendavaid riistvarafunktsioone, mis oluliselt lihtsustavad reaalajas silumist. Enne nende võimaluste uurimist vaatleme esmalt kõige levinumaid probleeme, millega FPGA-disain võib kokku puutuda, nii et meil on piisav taust erinevate silumistööriistade tõhususe ja nendega seotud kompromisside hindamiseks.
Levinud probleemid FPGA kujunduste silumisel
Koos kaasaegsete FPGA-de pakutavate laiendatud võimalustega muudab sellega seotud suurenenud keerukus vigadeta disainilahenduste loomise keerulisemaks. Tegelikult on hinnatud, et silumine võib võtta üle 50% manustatud süsteemi projekteerimistsüklist. Kuna turule jõudmise aeg piirab arendustsüklit jätkuvalt, jäetakse esialgse süsteemi riistvara silumine tagantjärele – liiga sageli eeldades, et kontrollimine (isegi suur protsenttagarendusgraafiku e) tuvastab kõik vead enne süsteemi esmast käivitamist. Vaatleme vaid mõnda levinumat tüüpi süsteemiprobleeme, et paremini mõista probleeme, millega tüüpiline disain süsteemi esmasel käivitamisel kokku puutub.
Funktsionaalsete määratluste vigade leidmine võib olla kahekordselt raske leida, kuna disainer on konkreetsest nõudest valesti aru saanud, mistõttu võib viga kahe silma vahele jääda isegi siis, kui vaadata hoolikalt disaini üksikasju. EndineampLevinud funktsionaalse definitsiooni vea puhul on olukord, kus olekumasina üleminek ei jõua õigesse olekusse. Vead võivad ilmneda ka süsteemiliidestes interaktsiooniprobleemina. Liidese latentsus, ntample, võib olla valesti määratud, mille tulemuseks on ootamatu puhvri üle- või alatäitumine.
Süsteemitaseme ajastusprobleemid on veel üks väga levinud disainivigade allikas. Eelkõige on asünkroonsed sündmused sagedaseks vigade allikaks, kui sünkroonimise või ajastamisdomeeni mõjusid ei arvestata hoolikalt. Kiirusega töötades võivad seda tüüpi vead olla väga problemaatilised ja võivad ilmneda väga harva, võib-olla ainult siis, kui ilmnevad konkreetsed andmemustrid. Sellesse kategooriasse kuuluvad paljud levinumad ajastuse rikkumised ja neid on tavaliselt väga raske, kui mitte võimatu simuleerida.
Ajastuse rikkumised võivad tuleneda ka madalast signaalitäpsusest integraallülituste vahel, eriti süsteemides, kus iga vooluahela jaoks on mitu toitesiini. Madal signaali täpsus võib põhjustada signaali müra, ülekõla, peegeldusi, liigset koormust ja elektromagnetiliste häirete (EMI) probleeme, mis sageli ilmnevad ajastuse rikkumisena. Toiteallikaga seotud probleemid, nagu siirded (eriti süsteemi käivitamise või seiskamise ajal), koormuse kõikumised ja suured võimsuse hajumise pinged, võivad samuti põhjustada salapäraseid vigu, mida ei ole sageli lihtne toiteallikast tuvastada. Isegi kui disain on täiesti õige, võivad plaadi valmistamise probleemid põhjustada vigu. Vigased jooteühendused ja valesti kinnitatud pistikud, ntample, võib olla vigade allikas ja võib isegi sõltuda temperatuurist või plaadi asukohast. Täiustatud FPGA pakkimistehnikate kasutamine võib raskendada trükkplaadil olevate signaalide kontrollimist, nii et soovitud signaalile juurdepääsu saamine võib sageli olla problemaatiline. Sageli ei tekita paljud disainiprobleemid kohest viga ja peavad läbi kujunduse lainetama, kuni viga tegelikult avaldub. Käivitusvea algpõhjuseni jälitamine võib sageli olla masendav, keeruline ja aeganõudev ülesanne.
Näiteksample, võib tõlketabelis vigane bitt põhjustada tõrke alles mitu tsüklit hiljem. Mõned tööriistad, mida me selles artiklis hiljem käsitleme ja mis kasutavad spetsiaalset ahelasisest silumisriistvara, on spetsiaalselt suunatud nende "veaotsingute" kiiremaks ja lihtsamaks muutmisele. Enne nende tööriistade üksikasjadesse laskumist vaatame esmalt populaarset tarkvarapõhist silumistehnika simulatsiooni, et edusamme paremini mõista.tages ja puudusedtagsimulatsiooni kasutamine silumiseks.
Simulatsiooni kasutamine silumiseks
Tavaliselt modelleerimise simulatsioonis modelleeritakse kõik reaalses elus olevad komponendid disaini sees ja väljaspool matemaatiliselt tarkvaraprotsessidena, mida täidetakse järjestikku standardse protsessoriga. Disainile mitmesuguste stiimulite rakendamine ja eeldatava väljundi võrdlemine simuleeritud kujunduse väljundiga on lihtne viis kõige ilmsemate disainivigade tuvastamiseks. Aken, mis näitab tüüpilist simulatsiooni käitamist, on toodud alloleval joonisel 1. Selge advantagRiistvarapõhise silumise simulatsiooni värsside hulgas on see, et simulatsiooni saab teha tarkvaras – pole vaja tegelikku riistvarapõhist disaini ja testpinki. Simulatsioon võib kiiresti tabada paljusid disainivigu, eriti neid, mis on seotud valede spetsifikatsioonidega, liidese nõuete valesti mõistmisega, funktsioonivigadega ja paljude muude "jämedate" vigadega, mis on hõlpsasti tuvastatavad lihtsate stiimulivektorite abil.
Simulatsioon on eriti tõhus, kui disainerile on saadaval ulatuslikud stiimulikombinatsioonid ja nende väljundid on hästi teada. Sellistel juhtudel võib simulatsioon läbi viia disaini peaaegu ammendava testi. Kahjuks ei ole enamikul disainilahendustel hõlpsat juurdepääsu ulatuslikele testkomplektidele ja nende loomine võib olla väga aeganõudev. 100% kujundusest katva testkomplekti loomine on suurte FPGA-põhiste kujunduste puhul praktiliselt võimatu ja kujunduse põhielementide katmiseks tuleb kasutada otseteid. Teine simulatsiooniga seotud raskus seisneb selles, et see ei ole "pärismaailma" rakendus ja ei suuda tabada asünkroonseid sündmusi, kiireid süsteemi interaktsioone ega ajastuse rikkumisi. Lõpuks võib simulatsiooniprotsess olla väga aeglane ja kui on vaja palju iteratsioone, muutub simulatsioon kiiresti arendusprotsessi kõige aeganõudvamaks ja sageli ka kõige kulukamaks osaks.
Alternatiivina (või võib-olla paremini öeldud, simulatsiooni lisana) leidsid FPGA disainerid, et nad võivad lisada FPGA disaini silumisriistvara, et jälgida ja juhtida seadme põhisignaale. Need tehnikad töötati algselt välja ad hoc lähenemisviisidena, kuid on järk-järgult arenenud standardseks riistvara silumisstrateegiaks. Selline vooluringisiseste silumisvõimaluste kasutamine pakub märkimisväärset edutages FPGA-põhiste disainilahenduste jaoks ja järgmises osas uuritakse kolme kõige levinumat strateegiat ja nende erinevaid eeliseidtages ja puudusedtages.
Levinud ahelasisesed silumismeetodid FPGA-de jaoks
Kõige levinumad tehnikad FPGA-des vooluringisiseste silumisvõimaluste rakendamiseks kasutavad kas sisseehitatud loogikaanalüsaatorit, välist testimisseadet või spetsiaalset signaalisondi riistvara, mis on manustatud FPGA kangasse. Manustatud loogikaanalüsaatorit rakendatakse tavaliselt FPGA kanga abil ja see sisestatakse disaini. JTAG porti kasutatakse analüsaatorile juurdepääsuks ja salvestatud andmeid saab kuvada arvutis. Välise testimisseadme kasutamisel muudetakse testitavat FPGA disaini nii, et valitud sisemised FPGA signaalid suunatakse väljundviigudesse. Neid tihvte saab seejärel välise katseseadme kaudu jälgida. Spetsiaalse signaalianduri riistvara kasutamisel saab reaalajas lugeda laia valikut sisesignaale. Mõnda proovirakendust saab kasutada isegi registrisse või mälu asukohtadesse kirjutamiseks, mis parandab veelgi silumisvõimalusi. Vaatame advani üksikasjalikumalttages ja puudusedtagiga neist tehnikatest ja seejärel vaadake endistampdisaini, et näha, kuidas need erinevad lähenemisviisid võivad üldist silumisaega mõjutada.
In-Circuit FPGA silumis-manustatud loogikaanalüsaator
Sisseehitatud loogikaanalüsaatori kontseptsioon oli otsene tulemus ad-hoc-ahelasisesest silumisvõimalusest, mida disainerid FPGA-de esmakordsel kasutamisel rakendasid. Sisseehitatud loogikaanalüsaatorid lisasid uusi võimalusi ja kaotasid nõude, et disainer arendaks oma analüsaatorit. Enamik FPGA-sid pakub neid võimalusi ja kolmandad osapooled pakuvad standardseid analüsaatoreid (Identify®, firmalt Synopsys, on üks populaarne example), mis saavad tootlikkuse edasiseks parandamiseks hõlpsasti liidestada kõrgema taseme tööriistadega.
Loogikaanalüsaatori funktsionaalsus sisestatakse disaini, kasutades jälgimispuhvritena FPGA-kangast ja manustatud mäluplokke, nagu on näidatud joonisel 2. Samuti luuakse käivitamisressursid, et keerukaid signaaliinteraktsioone saaks hõlpsasti valida ja jäädvustada. Juurdepääs analüsaatorile juhtimiseks ja andmete edastamiseks toimub tavaliselt standardse J kauduTAG liidese nõuete lihtsustamiseks. Jäädvustatud andmeid saab kuvada arvutis, kasutades tavalist viewtarkvara ja peegeldab tavaliselt loogikasimulaatori lainekuju väljundit viewstiilis.
AdvantagSelle lähenemisviisi põhimõte seisneb selles, et ei kasutata täiendavaid FPGA I/O kontakte, vaid standardset JTAG signaalid. Sisseehitatud loogikaanalüsaatori IP-südamikud on tavaliselt suhteliselt odavad ja mõnel juhul võivad neid kasutada olemasolevate FPGA sünteesi või simulatsioonitööriistade jaoks. Mõnel juhul võib sisseehitatud loogikaanalüsaator pakkuda täiendavaid väljundeid ka kasutamata sisenditele/väljunditele, kui see on mugavam. Üks miinustesttagSelle lähenemisviisi puhul on vaja palju FPGA ressursse. Täpsemalt, kui kasutatakse jälgimispuhvreid, vähendab see saadaolevate plokkmälude arvu. Kui vaja on laia puhvrit, on see ka kompromiss mälu sügavuse vastu (kuna laiema mälu kasutamine toob kaasa väiksema mälusügavuse) - suur puudustage väiksemate seadmete kasutamisel. Võimalik, et selle tehnika suurim puudus on see, et iga kord, kui sondi paigutust kohandatakse, on vaja kujundus uuesti kompileerida ja ümber programmeerida. Suure seadme kasutamisel võib see protsess võtta palju aega. Signaalisondide paigutuse tõttu võib olla keeruline signaali ajastuse seoseid korreleerida. Lisaks ei ole signaalisondide vahelised viivitused järjepidevad ja seega on ajastussuhteid raske võrrelda. See on eriline raskus asünkroonsete signaalide või erinevatest ajapiirkondadest pärit signaalide võrdlemisel.
In-Circuit FPGA silumine – väline testimisseade
Kontuurisisese silumiskoodi kasutamine koos väliste testseadmetega oli loomulik areng, kui väline loogikaanalüsaator oli süsteemi testimiseks juba saadaval. Luues mõne lihtsa silumiskoodi sisemiste testsignaalide tuvastamiseks ja valimiseks ning nende rakendamiseks FPGA I/O-dele, nagu on näidatud joonisel 3, oli võimalik kasutada analüsaatorite täiustatud võimalusi (nagu suured jälgimispuhvrid, keerulised käivitusjärjestused ja mitu viewvalikud), et luua lihtsaid, kuid võimsaid silumiskeskkondi. Keerulisemad vooluringisisesed võimalused täiustatud käivitusvalikute jaoks võivad vajalike väljundite arvu minimeerida. Näiteksample, võib konkreetsete aadresside valimine laial siinil osutuda üle jõu käivaks, kui oleks vaja väliseid kontakte.
Sisemise FPGA loogika kasutamine vähendab oluliselt I/O nõudeid ja võib keerukamate probleemide silumiseks isegi otsida spetsiifilisi aadressimustriid (võib-olla kõne ja tagasisaatmise jada). Kui saadaval on ühine kasutajaliides, võib see õppimiskõverat lihtsustada ja tootlikkust parandada.
AdvantagSelle lähenemisviisi põhieesmärk on see, et see suurendab välise testimisseadme maksumust ja seega ei kaasne täiendavaid tööriistakulusid. Mõned silumisahela IP-südamikud on saadaval seadmetootjatelt või FPGA-tootjatelt ning need võivad olla väga madala hinnaga või isegi tasuta. Signaali valimise loogika rakendamiseks vajalik FPGA ressursside hulk on väga väike ja kuna jälgimise funktsioon tehakse välise loogikaanalüsaatori abil, pole vaja plokkmälusid. Kuna valikuloogika on odav, saab toetada ka suurt hulka laia käivitamisega kanaleid. Loogikaanalüsaator võib töötada nii ajastusrežiimis kui ka olekurežiimis, mis aitab eraldada mõned ajastusprobleemid.
PuudusekstagSee lähenemisviis võib hõlmata vajadust osta loogikaanalüsaator, kui see pole veel projekti jaoks eraldatud. See pahameeltage võib paljudel juhtudel olla piisav, et seda lähenemist heidutada. Pange tähele, et saadaval on mõned odavad loogikaanalüsaatori valikud, mis kasutavad kuvamiseks arvutit või tahvelarvutit, muutes selle valiku lihtsate silumisnõuete jaoks palju kuluefektiivsemaks.
Tarbitud FPGA kontaktide arv võib olla veel üks puudustage ja kui on vaja jälgida laiaid siine, on vaja plaadi paigutust põhjalikult planeerida ja silumispistikuid lisada. Seda nõuet on projekteerimisetapi alguses raske ennustada ja muud soovimatut keerukust. Sarnaselt manustatud loogikaanalüsaatori lähenemisviisile nõuab väline testimisstrateegia kujunduse uuesti kompileerimist ja ümberprogrammeerimist, kui on vaja iga uut katset.
Ühine ebasoodnetagNendest kahest tehnikast – kiibisiseste ressursside kasutamine (mis võib samuti mõjutada disaini ajastusjõudlust ja luua täiendavaid silumisnõudeid), vajadus disaini uuesti kompileerimise ja ümberprogrammeerimise järele (mis võib silumisgraafikule lisada tunde või isegi päevi), tõenäoliste katsestsenaariumide tuvastamiseks vajalik eelnev planeerimine ja täiendavate kiibi sisend-/väljundressursside kasutamine tekitas vajaduse ilma lähenemiseta. Üks vastus oli spetsiaalse silumisloogika lisamine mõne seadme FPGA kangasse. Tulemuseks oli ahelasisene silumine riistvarasondide abil.
In-Circuit FPGA silumine – riistvarasondid
Riistvarasondide kasutamine lihtsustab järsult FPGA-de ahelasiseseid silumistehnikaid. See SmartFusion2®SoC FPGA ja IGLOO®2 FPGA seadmetes reaalajas sondi funktsioonina rakendatud tehnika lisab FPGA kangale spetsiaalsed sondiliinid, et jälgida mis tahes loogikaelemendi registribiti väljundit. Nagu on näidatud joonisel 4 kujutatud plokkskeemil, on riistvarasondid saadaval kahes sondikanalis A ja B.
Valitud registriväljundid (sondipunktid), nagu joonise allosas, suunatakse kahe sondikanali kohale ja kui need on valitud, saab neid rakendada kas A- või B-kanalile. Neid reaalajas kanali signaale saab seejärel saata seadme spetsiaalsetesse sondi A ja sondi B kontaktidesse. Sondi A ja Sondi B signaale saab ka sisemiselt suunata sisseehitatud loogikaanalüsaatorisse.
Pange tähele, et sondi tihvtide ajastuskarakteristikud on korrapärased ja nende kõrvalekalle ühest sondipunktist teise on tühine, muutes reaalajas signaalide ajastuskarakteristikute võrdlemise palju lihtsamaks. Andmeid saab jäädvustada kuni 100 MHz sagedusel, mis muudab need sobivad enamiku sihtmärkide jaoks.
Võib-olla kõige olulisem on sondipunktide asukohti, kuna neid ei valita rakendatud kujunduse osana (need valitakse spetsiaalse riistvara kaudu, kui disain töötab FPGA-s), saab kiiresti muuta, saates lihtsalt valikuandmed seadmesse. Disaini ümberkompileerimist ja ümberprogrammeerimist pole vaja.
Live Probe'i võimaluse kasutamise veelgi lihtsustamiseks on seotud silumistarkvara tööriistal juurdepääs kõikidele sondi signaali asukohtadele automaatselt genereeritud silumisfunktsiooni kaudu. file. Nagu on näidatud joonisel 5, saab signaali nimetuse valida signaalide loendist ja rakendada soovitud kanalile. Seda saab teha isegi siis, kui disain töötab, nii et kujunduse sondeerimine on sujuv ja väga tõhus.
Paljudel juhtudel saab riistvarasondi, näiteks Live Probe'i, kasutada koos eelnevalt kirjeldatud manustatud loogikaanalüsaatori ja väliste testimismeetoditega.
Nagu on näidatud joonisel 6, võimaldab Live Probe'i võime signaale "lennult" valida kiiresti ja lihtsalt muuta jälgitavaid signaale, ilma et oleks vaja kujundust uuesti kompileerida. Väline loogikaanalüsaator või skoop saab hõlpsasti jälgida sondeeritud signaale, nagu on näidatud joonise paremas ülanurgas spetsiaalsetel sondi väljundtihvtidel. Alternatiivina (või võib-olla isegi lisaks) saab sondi kontaktide vaatlemiseks kasutada sisemist loogikaanalüsaatorit (joonisel näidatud plokk ILA Identify). Sondi signaale saab püüda ILA ja jälgida lainekuju aknas. Sondi asukohti saab muuta, ilma et oleks vaja sihtkujundust uuesti kompileerida.
Pange tähele, et käivitamise ja jälgimise lisavõimalusi saab kasutada sondi funktsionaalsuse parandamiseks, muutes isegi keerukate disainiprobleemide tuvastamise lihtsaks.
Täiendavad riistvarasilumisvõimalused on saadaval ka SmartFusion2 SoC FPGA ja IGLOO2 FPGA seadmetes. Üks nendest võimalustest, nimega Active Probe, suudab dünaamiliselt ja asünkroonselt lugeda või kirjutada mis tahes loogikaelemendi registribitile. Kirjalik väärtus säilib ühe taktitsükli jooksul, nii et tavapärane töö võib jätkuda, muutes selle väga väärtuslikuks silumistööriistaks. Aktiivne sond pakub erilist huvi, kui soovitakse kiiresti jälgida sisemist signaali (võib-olla lihtsalt selleks, et kontrollida, kas see on aktiivne või soovitud olekus, näiteks lähtestussignaal) või kui on vaja kiiresti testida loogikafunktsiooni, kirjutades sondipunkti.
(võib-olla olekumasina ülemineku algatamiseks, määrates kiiresti sisendväärtuse, et isoleerida juhtimisvoo probleem).
Teine Microsemi pakutav silumisvõimalus on Memory Debug. See funktsioon võimaldab kujundajal dünaamiliselt ja asünkroonselt lugeda või kirjutada valitud FPGA kanga SRAM-plokki. Nagu on näidatud silumistööriista ekraanipildil (joonis 7), saab kasutaja mäluplokkide vahekaardi valimisel valida lugemiseks soovitud mälu, teha mälust hetktõmmise, muuta mäluväärtusi ja seejärel väärtused seadmesse tagasi kirjutada. See võib olla eriti kasulik andmepuhvrite kontrollimiseks või seadistamiseks, mida kasutatakse sidepordides arvutustele orienteeritud kriimustusplaadi või isegi sisseehitatud protsessori poolt käivitatava koodi jaoks. Keeruliste andmetest sõltuvate vigade silumine on oluliselt kiirem ja lihtsam, kui mälestusi saab nii kiiresti jälgida ja juhtida.
Kui kujundus on silutud, võib tundliku teabe kaitsmiseks olla soovitav riistvara silumisfunktsioonid välja lülitada. Ründaja võib neid samu võimalusi kasutada kriitilise teabe lugemiseks või süsteemisätete muutmiseks, mis võimaldaks hõlpsat juurdepääsu süsteemi tundlikele osadele. Microsemi on lisanud funktsioone, mis võimaldavad disaineril seadet pärast silumise lõpetamist kaitsta. NäiteksampJuurdepääsu Live Probe'ile ja Active Probe'ile saab lukustada, et funktsioon kui võimalik ründevahend täielikult välja lülitada (see välistab isegi võimaluse, et sondi aktiivsus loob toitevoolus mis tahes mustreid, mida saaks kasutada sondi andmete kaudseks jälgimiseks). Teise võimalusena saab juurdepääsu kujunduse valitud osadele lukustada, et takistada juurdepääsu ainult nendele osadele. See võib olla mugav, kui ainult osa disainist peab olema turvaline, muutes ülejäänud kujundusele välikatsete või veaanalüüsi jaoks juurdepääsetavaks.
In-Circuit silumise võrdlustabel
Nüüd üksikasjalik review kolmest peamisest ahelasisesest riistvara silumistehnikast on kirjeldatud kokkuvõtlik diagramm, nagu on näidatud joonisel 8, mis kirjeldab erinevaid eeliseid.tages ja puudusedtagiga meetodi kohta. Pidades meeles, et mõnda tehnikat saab kasutada koos (Live Probe ja Internal Logic Analyzer (ILA), nagu Synopsys Identify, nt.ample), näeme iga tehnika peamisi tugevusi ja nõrkusi. Ringisiseste riistvara silumisvõimaluste kogu (Live Probe, Active Probe ja Memory Debug – ühiselt nimetatakse SmartDebugiks) on teiste tehnikatega võrreldes kõige nõrgemad saadaolevate proovide koguarvu osas (punane ring) ja on nõrgemad kui parimad (kollane ring), kui võtta arvesse püüdmiskiirust (väline testimisseade võib olla suurem).
ILA-põhised tehnikad, nagu Synopsys Identify, on teiste tehnikatega võrreldes kõige nõrgemad ja kui arvestada FPGA ressursinõudeid. Välised katseseadmetel põhinevad tehnikad on paljudel kaalutlustel kõige nõrgemad, kusjuures kõige koormavamad on kulud, projekteerimise ajastuse mõju ja sondi liikumise üldkulud (projekti uuesti kompileerimise vajaduse tõttu). Võib-olla on optimaalne lahendus SmartDebugi ja mõne muu tehnika kombinatsioon, mis võimaldab vähendada SmartDebugi kanalite arvu nõrkust ja sondipunkti liikumist.tagmuude tehnikate esitlusi on samuti vähendatud.
Signaalide klassifikatsioonid
Kasulikult saab eristada mõningaid levinumaid signaalitüüpe ja see võib aidata silumismeetodi kavandamisel. Näiteksampsignaale, mis ei muutu muul viisil kui süsteemi käivitamise ajal, nagu süsteemi lähtestamine, ploki lähtestamine või lähtestamisregistrid, võib klassifitseerida staatilisteks signaalideks. Seda tüüpi signaalidele pääseb kõige tõhusamalt juurde seadme kaudu, mis suudab signaali hõlpsalt jälgida ja juhtida, ilma et oleks vaja pikka ümberkompileerimistsüklit. Active Probe on suurepärane võimalus staatiliste signaalide silumiseks. Samamoodi võib signaale, mis muutuvad sagedamini, kuid on valdava enamuse ajast endiselt staatilised, klassifitseerida pseudostaatilisteks ja neid silutakse kõige tõhusamalt Active Probe'i abil. Sageli muutuvad signaalid, nagu kellasignaalid, võib liigitada dünaamilisteks ja neile ei ole Active Probe'i kaudu nii lihtne juurde pääseda. Live Probe on nende signaalide vaatlemiseks parem valik.
Lihtne silumise kasutusjuht
Nüüd, kui oleme paremini aru saanud erinevatest ahelasisestest silumisvalikutest, vaatame lihtsat kujundustampet näha, kuidas need tehnikad toimivad. Joonisel 9 on kujutatud SmartFusion2 SoC FPGA seadme lihtsat FPGA disaini. Mikrokontrolleri alamsüsteemi (MSS) lähtestab CoreSF2Reset Soft IP-plokk. Selle ploki sisenditeks on Power On Reset, User Fabric Reset ja External Reset. Väljundid on lähtestamine kasutajakangale, MSS-i lähtestamine ja M3 lähtestamine. Vea sümptomid seisnevad selles, et sisenditel/väljunditel ei toimu tegevust, kuigi seade väljub edukalt POR-olekust. Selle vea silumise kolm erinevat võimalust on illustreeritud ka joonisel: Sinine kast (tähisega ETE) on mõeldud välise testimisseadme meetodi jaoks; roheline kast (sildiga ILA) on sisemise loogikaanalüsaatori meetodi jaoks; ja oranž kast (sildiga AP) on Active Probe meetodi jaoks. Eeldame, et vea võimalikud algpõhjused on CoreSF2Reset Soft IP-ploki valesti kinnitatud lähtestamissisendid.
Vaatame nüüd kolme eelnevalt kirjeldatud ahelasisese meetodi silumisprotsessi.
Välised testimisseadmed
Seda meetodit kasutades eeldatakse, et katseseadmed on saadaval ja seda ei kasutata kõrgema prioriteediga projektis. Lisaks on oluline ette planeerida, et mõned FPGA sisendid/väljundid oleksid saadaval ja neid saaks hõlpsasti testimisseadmetega ühendada. PCB-l päis ntample, oleks väga kasulik ja minimeeriks aega, mis kulub „tõenäolise kahtlusaluse” tuvastamiseks ja sellega ühenduse loomiseks või kontaktide võimaliku lühise tuvastamiseks sondeerimise ajal. Disain tuleb uuesti kompileerida, et valida signaalid, mida tahame uurida. Loodetavasti ei hakka me "sibulat tagasi koorima" ja peame edasiseks uurimiseks valima täiendavaid signaale, sest sageli põhjustab meie esialgne uurimine lihtsalt rohkem küsimusi. Igal juhul võib ümberkompileerimine ja ümberprogrammeerimine võtta palju aega ning kui selle tulemuseks on ajastuse rikkumine, tuleb ümber kujundada (me kõik teame, kui masendav võib olla ajastuse sulgemise probleemide lahendamine, eriti kui teete disainivea leidmiseks disainimuudatusi – kogu protsess võib kesta minutitest tundideni)! Samuti on oluline meeles pidada, et kui disainil pole tasuta kasutaja sisendeid/väljundeid, ei saa seda meetodit rakendada. Veelgi enam, see meetod on konstruktsiooni struktuuriliselt sekkuv ja ajastusega seotud vead võivad iteratsioonide vahel kaduda või uuesti ilmneda.
Sisemine loogikaanalüsaator
Seda meetodit kasutades tuleb ILA kangaressursse kasutades kujundusse lisada ja seejärel uuesti kompileerida. Pange tähele, et kui ILA on juba instantseeritud, ei pruugi signaalid, mida tahame uurida, olla instrumenteeritud, mis nõuab ka uuesti kompileerimist. See protsess võib muuta esialgset disaini ja rikkuda ajapiiranguid. Kui ajastus on täidetud, tuleb kujundus ümber programmeerida ja uuesti initsialiseerida. Kogu see protsess võib kesta mitu minutit või isegi tunde, kui ümberkompileerimise ajad on pikad ja vaja on mitu korda. See lähenemine on struktuurilt pealetükkiv ja võib põhjustada ülaltoodud meetodi kasutamisel kirjeldatud probleeme.
Aktiivne sond
Seda meetodit kasutades saab Active Probe'i suunata erinevate lähtestussignaalide allikale, mis kõik pärinevad registriväljunditest (nagu iga hea digitaalse disaini tava puhul on tavaline). Signaalid valitakse ükshaaval aktiivse sondi menüüst, mis on näidatud alloleval joonisel 10. Valitud signaali väärtusi saab lugeda ja need kuvatakse Active Probe andmeaknas. Kõik väärväited on kergesti tuvastatavad. Seda testi saab teha kohe, ilma et oleks vaja seadet uuesti kompileerida ja ümber programmeerida, ning see ei ole struktuuriliselt ega protseduuriliselt pealetükkiv. Kogu protsess võtab vaid mõne sekundi. See meetod võib luua ka juhitavuse (muutes väärtusi asünkroonselt), mida teised kaks meetodit ei võimalda. Selles konkreetses eksampKui registrist saadavat lähtestussignaali saab hõlpsasti kontrollida ja avastada, et see on aktiivses olekus.
Lähtestamissignaali hetkelise ümberlülitamise saab saavutada ülejäänud signaale genereeriva registri asünkroonse manipuleerimisega.
Keerulisem silumise kasutusjuht
Ülaltoodud kujundus oli väga lihtne ja kasulik sissejuhatuseks kirjeldatud disainitehnikate kasutamisele, kuid keerulisem eksample võib olla veelgi illustratiivsem. Paljudel juhtudel ei ole huvipakkuv signaal staatiline signaal, nagu see oli meie lihtsas eksisample, kuid on dünaamiline. Tavaline dünaamiline signaal on vahepealne kell, mida võib-olla kasutatakse jadaliidese käepigistuse ajastamiseks. Joonisel 11 on kujutatud selline disain kasutaja pehme IP-tuumaga, antud juhul kohandatud jadaliidesega, mis on ühendatud süsteemi APB siiniga. Vea sümptomid seisnevad selles, et kasutaja kohandatud jadaliideses ei toimu tegevust ja kui APB siini juht väljastab jadaliidesele juurdepääsuks tehingu, läheb see erandseisundisse, mis näitab valet käepigistust. Need tingimused näivad välistavat staatilise põhjuse, näiteks vale lähtestussignaali, kuna tehingu oleku masin näib mitte töötavat oodatud kiirusega ja põhjustab seega erandi. Arvatakse, et algpõhjus on kasutaja IP-tuuma taktsageduse generaator.
Kui see ei tööta õigel sagedusel, tekivad kirjeldatud vead.
Sellises olukorras on ilmselt parem strateegia asendada Active Probe lähenemine Live Probe'iga. Seda illustreerib ülaltoodud joonisel oranž LP-kast, kasutades JTAG signaal sondi allika valimiseks.
Välised testimisseadmed
Sel juhul on metoodika väga sarnane eelnevalt kirjeldatud lihtsale näiteleample. Kasutaja kellasignaal tuuakse välja testpunkti (loodetavasti päises) ja vaja on aeganõudvat ümberkompileerimist. Abiks võib olla ka võrdlussignaali väljatoomine, võib-olla süsteemikell, mida kasutatakse kasutaja IP-aadressi kellatamiseks võrdlussignaalina. Meid tuleb taas kompileerida ja ümber programmeerida, nii et kogu protsess võib võtta palju aega.
Sisemine loogikaanalüsaator
See juhtum on väga sarnane lihtsa eksample. ILA tuleb sisestada või soovitud signaal määratleda ning uuesti kompileerida ja uuesti programmeerida. Kõik eelnevalt kirjeldatud probleemid põhjustavad endiselt märkimisväärse silumistsükli aja. Siiski on täiendav keerukus. Kell, mis juhib ILA-d, peab olema sünkroonne ja ideaaljuhul palju kiirem kasutaja pehme IP-tuuma jälgitava kella suhtes. Kui need kellad on asünkroonsed või neil pole õigeid ajastuse suhteid, on andmete kogumine ettearvamatu ja võimalik silumisprotsessi segaduse allikas.
Pange tähele, et kui kasutaja pehmet IP-kella ei genereerita kiibil (võib-olla taastatakse see jadaliideselt), võib disaineril olla vaja lisada kellamoodul, et genereerida kiirem ILA-kell, kasutades täiendavaid ressursse ja võib-olla tekitada ajastuse rikkumine.
Reaalajas sond
Seda meetodit kasutades saab Live Probe'i kiiresti suunata kasutaja kella allikale ja mis tahes muule registrist kella allikale, et tuvastada vea algpõhjus. Live Probe näitab valitud signaaliväljundeid reaalajas ja seega on signaalide vahelist ajastussuhet palju lihtsam määrata. Kogu protsess võtab vaid mõne sekundi.
Muud jadaliideste silumisfunktsioonid
Samuti on oluline märkida, et SmartFusion2 SoC FPGA ja IGLOO2 FPGA seadmetes on palju täiendavaid silumisvõimalusi, mida saab kasutada jadaliidestes, nagu eelmises eks.ample disain, kus vead on veelgi keerulisemad. SERDES silumine, ntample pakub spetsiaalsete kiirete jadaliideste jaoks spetsiifilisi silumisvõimalusi. Mõned SERDES-i silumisfunktsioonid hõlmavad PMA-testi tuge (nagu PRBS-i mustri genereerimine ja tagasilülitustestimine), mitme SERDES-testi konfiguratsiooni tuge koos registritaseme ümberseadistamisega, et vältida täieliku disainivoo kasutamist konfiguratsioonimuudatuste tegemiseks, ja tekstiaruandeid, mis näitavad konfigureeritud protokolle, SERDES-i konfiguratsiooniregistreid ja raja konfiguratsiooniregistreid. Need funktsioonid muudavad SERDES-i silumise palju lihtsamaks ja neid saab kasutada koos Live Probe'i ja Active Probe'iga, et kiirendada keeruliste ahelate silumist.
Eelnevalt kirjeldatud mälu silumise tööriista saab testimise kiirendamiseks kasutada ka koos rakendusega SERDES Debug. Kuna mälupuhvreid saab Memory Debug abil kiiresti ja lihtsalt kontrollida ja muuta, on võimalik kiiresti luua "testpakette" ja jälgida tagasisilmuste või süsteemidevahelise side tulemusi. Disainer saab neid võimalusi ära kasutada ja seega minimeerida vajadust spetsiaalsete "testrakmete" järele, mis tarbivad täiendavat FPGA kangast ja võivad mõjutada kiibi ajastust.
Järeldus
Selles artiklis on üksikasjalikult kirjeldatud mitut erinevat lähenemisviisi FPGA-de ja SoC FPGA-de ahelasisese silumise rakendamiseks – integreeritud loogikaanalüsaatori kasutamine, väliste testseadmete kasutamine ja FPGA kangasse integreeritud spetsiaalsete sondiahelate kasutamine. Spetsiaalsete ja spetsiaalsete sondiahelate lisamine, nagu Active Probe ja Live Probe, mida pakub Microsemi SmartFusion2 SoC FPGA ja IGLOO2 FPGA seadmetes, kiirendab ja lihtsustab oluliselt silumisprotsessi. Suureks eeliseks osutus võimalus kiiresti muuta sisemiste signaalide valikut (ilma, et oleks vaja läbi viia väga aeganõudvat ümberkompileerimise ja ümberprogrammeerimise tsüklit) ning sisemiste signaalide sondeerimise võimalus (ilma vajaduseta kasutada FPGA kangast ja potentsiaalselt ajastamisrikkumisi tekitada).tages FPGA kujunduste silumisel. Lisaks kirjeldati mitme metoodika kasutamist, mis võivad koos töötada, et pakkuda veelgi põhjalikumat silumisvõimalust. Lõpuks kaks endistampKirjeldatud meetodite vaheliste kompromisside illustreerimiseks anti silumise kasutusjuhtumeid.
Lisateabe saamiseks
- IGLOO2 FPGA-d
- SmartFusion2 SoC FPGA-d
Microsemi Corporation (Nasdaq: MSCC) pakub laiaulatuslikku pooljuht- ja süsteemilahenduste portfelli side-, kaitse- ja julgeoleku-, lennundus- ja tööstusturgude jaoks. Toodete hulka kuuluvad suure jõudlusega ja kiirguskindlad analoog-segasignaaliga integraallülitused, FPGA-d, SoC-d ja ASIC-id; toitehaldustooted; ajastus- ja sünkroniseerimisseadmed ning täpsed ajalahendused, mis seavad maailma ajastandardi; hääletöötlusseadmed; RF-lahendused; diskreetsed komponendid; turvatehnoloogiad ja skaleeritav anti-tamper tooted; Power-over-Ethernet IC-d ja keskmised vahemikud; samuti kohandatud disainivõimalused ja -teenused. Microsemi peakontor asub Californias Aliso Viejos ja sellel on üle maailma umbes 3,400 töötajat. Lisateavet leiate aadressilt www.microsemi.com.
© 2014 Microsemi Corporation. Kõik õigused kaitstud. Microsemi ja Microsemi logo on Microsemi Corporationi kaubamärgid. Kõik muud kaubamärgid ja teenindusmärgid on nende vastavate omanike omand.
Microsemi ettevõtte peakorter
- Üks Enterprise, Aliso Viejo CA 92656 USA
- Sees USA: +1 800-713-4113
- Väljaspool USA: +1 949-380-6100
- Müük: +1 949-380-6136
- Faks: +1 949-215-4996
- E-post: sales.support@microsemi.com
KKK
- K: Mis on seadme maksimaalne andmehõive sagedus?
V: Seade toetab andmehõivet sagedusel kuni 100 MHz, mis sobib enamiku sihtseadmete jaoks. - K: Kas ma pean disaini uuesti kompileerima, kui kasutan silumiseks sondiahelaid?
V: Ei, sondipunktide asukohti saab kiiresti muuta ilma disaini ümberkompileerimist või ümberprogrammeerimist.
Dokumendid / Ressursid
![]() |
Microsemi In-Circuit FPGA silumine [pdfJuhised In-Circuit FPGA silumine, FPGA silumine, silumine |