Mikrosemi-logo

Mikrosemi In-Kring FPGA Ontfouting

Mikrosemi-In-Circuit-FPGA-Debug-produk

Produk inligting

Spesifikasies

  • Toesteltipe: Microsemi SmartFusion2 SoC FPGA
  • Vrystellingsdatum: Mei 2014
  • Ontfoutingsvermoëns: FPGA-ontfouting in die stroombaan, ingebedde logika-analiseerder
  • Maksimum datavasvangfrekwensie: Tot 100MHz

Abstrak
FPGA's is kragtige ontwerpelemente in ingebedde stelsels met baie ontwerp-advantages, maar hierdie toestelle kan komplekse ontwerpe hê met komplekse ontwerpprobleme wat ontfout moet word. Die opsporing van ontwerpprobleme soos definisiefoute, stelselinteraksieprobleme en stelseltydsberekeningsfoute kan 'n uitdaging wees. Die insluiting van in-kring ontfoutingsvermoëns in 'n FPGA kan hardeware-ontfouting dramaties verbeter en ure se frustrasie vermy. Hierdie artikel beskryf verskeie verskillende benaderings tot in-kring ontfouting vir FPGA's, identifiseer belangrike kompromieë, en deur 'n eksampDie ontwerp, gerig op 'n Microsemi SmartFusion®2 SoC FPGA-toestel, sal wys hoe nuwe vermoëns gebruik kan word om ontfouting en toets te bespoedig.

Inleiding

FPGA's is deurdringende en kragtige ontwerpelemente en word nou in feitlik elke ingebedde stelsel gevind. Met toenemende kapasiteit, insluiting van komplekse on-chip funksionele blokke en gevorderde seriële koppelvlakke kan hierdie toestelle ook komplekse ontwerpprobleme hê wat ontfout moet word. Die opspoor van kwessies soos funksionele definisiefoute (op die FPGA- of stelselvlak), funksionele stelselinteraksieprobleme, stelseltydberekeningskwessies en seingetrouheidskwessies tussen IC's (soos geraas, oorspraak of refleksies) word alles baie meer kompleks wanneer gevorderde FPGA's gebruik word. Simulasie is beslis 'n groot hulp om baie ontwerpprobleme te identifiseer, maar baie interaksies in die werklike wêreld sal nie verskyn totdat die ontwerp in hardeware geïmplementeer is nie. Verskeie verskillende tegnieke vir die ontfouting van komplekse ontwerpkwessies is ontwikkel om die proses te vereenvoudig. 'n Noukeurige begrip van elk van hierdie sleuteltegnieke, insluitend die verskillende advantages en disadvantages, is nuttig wanneer oorweeg word watter tegniek of kombinasie van tegnieke geskik is vir 'n spesifieke ontwerp.
'N Example FPGA-ontwerp, gerig op 'n Microsemi SmartFusion2 SoC FPGA-toestel, kan gebruik word om sommige van die voordele te demonstreertages en disadvantages van hierdie standaard tegnieke sowel as die nuutste in-kring ontfouting vermoëns. Hierdie illustratiewe eksample sal wys hoe hierdie verskillende tegnieke gebruik kan word om die identifikasie en uitskakeling van hardeware probleme tydens hardeware ontfouting te bespoedig.

Waarom is FPGA-ontfouting 'n kritieke aspek van stelselontwerp en -ontwikkeling?
FPGA's het twee hoofgebruiksmodelle wat hulle van ander ontwerpelemente onderskei. FPGA's kan in die produksieproduk gebruik word of kan as 'n ontwikkelingsvoertuig gebruik word om 'n produksie-ontwerpkonsep te bewys of prototipeer. Wanneer dit as die produksievoertuig gebruik word, kan FPGA's 'n baie meer buigsame teiken wees as ASIC of SVE-gebaseerde produksievoertuie. Dit is veral belangrik vir 'n nuwe ontwerp, een wat nog nie in hardeware geïmplementeer is nie. Ontwerpe met verskillende argitektoniese opsies kan maklik geskep en getoets word sodat die optimale ontwerp geïdentifiseer word. FPGA's met on-chip verwerkers (SoC FPGA's) maak dit ook moontlik om SVE-gebaseerde verwerking af te ruil met hardeware-ondersteunde FPGA-gebaseerde versnellingsfunksies. Hierdie advantages kan die tyd wat benodig word vir ontwerp, validering, toetsing en mislukkingsanalise vir nuwe produkontwikkelings dramaties verminder.
Wanneer dit gebruik word vir die prototipering van 'n ontwerp, miskien vir 'n produksie-ASIC, is FPGA-buigsaamheid 'n sleutelvoordeel. 'n Werklike hardeware-platform, selfs een wat nie teen volle spoed werk nie, maak dit baie makliker om gedetailleerde stelselwerkverrigtingstatistieke, deurvloeianalisedata en argitektuurbewys-van-konsep-resultate te verkry. FPGA-ondersteuning vir verharde implementering van industriestandaardbusse (soos PCIe®, Gigabit Ethernet, XAUI, USB, CAN en ander) vereenvoudig die toetsing wat met hierdie koppelvlakke geassosieer word. Die nuutste families van FPGA's met on-chip ARM-verwerkers (SoC FPGA's), maak dit maklik om implementerings met ingebedde verwerkers te prototipeer. Voorheen ontwikkelde verwerkerkode kan na die prototipe oorgedra word en nuwe kode kan parallel met die hardeware-ontwerppoging geskep word.

Hierdie kombinasie van 'n standaard verwerker met standaard koppelvlak busse maak dit moontlik om die groot ekosisteem van beskikbare kode biblioteke, drywers, funksionele API's, Real Time Bedryfstelsels, en selfs volledige Bedryfstelsels te benut om baie vinniger 'n werkende prototipe te skep. Daarbenewens, sodra die ontwerp gestol is, kan die FPGA-prototipe gebruik word om uitgebreide simulasietoetsstelle vas te lê (vir beide stimulus en reaksie) wat werklike stelseldata weerspieël. Hierdie datastelle kan van onskatbare waarde wees om die finale simulasies vir 'n ASIC of ander produksie-implementering te skep. Die advantagDie gebruik van 'n FPGA as 'n ontwerpprototipe kan die tyd vir ontwerp, validering, toetsing en mislukkingsanalise vir die finale produkimplementering dramaties verminder.
In albei hierdie algemene FPGA-gebruiksmodelle is die buigsaamheid van die FPGA as 'n ontwerpteiken 'n belangrike voordeeltage. Dit beteken dat baie ontwerpveranderings en -herhalings die norm sal wees, en dus sal die vermoë om ontwerpfoute vinnig te ontfout krities wees om soveel moontlik ontwerpopsies moontlik te maak. Sonder 'n doeltreffende ontfouting vermoë baie van die advantagDie buigsaamheid van FPGA-ontwerp sal verminder word deur die bykomende ontfoutingstyd wat benodig word. Gelukkig kan FPGA's ook bykomende hardeware-kenmerke verskaf wat intydse ontfouting dramaties vereenvoudig. Voordat ons na hierdie vermoëns kyk, kom ons kyk eers na die mees algemene tipe probleme waarmee 'n FPGA-ontwerp te kampe kan kry, sodat ons die regte agtergrond het om die doeltreffendheid en die gepaardgaande afwykings van verskeie ontfoutingsinstrumente te evalueer.

Algemene kwessies wanneer FPGA-ontwerpe ontfout word

Saam met die uitgebreide vermoëns wat moderne FPGA's meebring, maak die gepaardgaande verhoogde kompleksiteit dit moeiliker om foutvrye ontwerpe te skep. Trouens, daar is beraam dat ontfouting meer as 50% van die ingebedde stelselontwerpsiklus kan neem. Met tyd-tot-mark-druk wat die ontwikkelingsiklus steeds onder druk plaas, word hardeware-ontfouting van die aanvanklike stelsel na 'n nagedagte verplaas - alte dikwels word aanvaar dat verifikasie (self 'n groot persentasie) ...tage van die ontwikkelingskedule), sal al die foute vang voor die aanvanklike stelsel opbring. Kom ons kyk net na 'n paar algemene tipes stelselkwessies om die uitdagings beter te verstaan ​​wat 'n tipiese ontwerp in die gesig staar tydens die aanvanklike stelsel opstel.

Funksionele definisiefoute kan dubbel moeilik wees om te vind aangesien die ontwerper 'n bepaalde vereiste verkeerd verstaan ​​het, dus kan die fout oor die hoof gesien word, selfs wanneer daar noukeurig na die besonderhede van die ontwerp gekyk word. 'n example van 'n algemene funksionele definisie fout sou wees waar 'n toestand masjien oorgang nie eindig in die regte toestand. Foute kan ook in stelselkoppelvlakke verskyn as 'n interaksieprobleem. Interface latency, bvample, kan verkeerd gespesifiseer word wat lei tot 'n onverwagte bufferoorloop of ondervloei toestand.
Stelselvlaktydsberekeningskwessies is nog 'n baie algemene bron van ontwerpfoute. Veral asynchrone gebeurtenisse is 'n algemene bron van foute wanneer sinchronisasie of kruistydberekening domein effekte nie noukeurig oorweeg word nie. Wanneer dit teen spoed werk, kan hierdie tipe foute baie problematies wees en kan baie selde verskyn, miskien net wanneer spesifieke datapatrone hulself manifesteer. Baie algemene tydsberekeningsoortredings val in hierdie kategorie en is gewoonlik baie moeilik, indien nie onmoontlik om te simuleer nie.

Tydsberekeningsoortredings kan ook die gevolg wees van lae seingetrouheid tussen geïntegreerde stroombane, veral in stelsels met veelvuldige kragrelings vir elke stroombaan. Lae seingetrouheid kan lei tot seingeraas, oorspraak, refleksies, oormatige laai en elektromagnetiese interferensie (EMI) kwessies wat dikwels as tydsberekeningsoortredings verskyn. Kragtoevoerkwessies, soos verbygange (veral tydens die aanvang of afskakeling van die stelsel), lasvariasies en hoë kragafvoerspanning kan ook tot geheimsinnige foute lei, wat dikwels nie maklik na 'n kragbron teruggespoor word nie. Selfs wanneer die ontwerp heeltemal korrek is, kan probleme met die vervaardiging van bord tot foute lei. Foutiewe soldeerverbindings en onbehoorlik aangehegte verbindings, bvample, kan die bron van foute wees en kan selfs temperatuur of bordligging afhanklik wees. Die gebruik van gevorderde FPGA-verpakkingstegnieke kan dit moeilik maak om seine op die gedrukte stroombaan te ondersoek, so om net toegang tot 'n gewenste sein te kry, kan dikwels problematies wees. Dikwels skep baie ontwerpkwessies nie 'n onmiddellike fout nie en moet dit deur die ontwerp rimpel totdat die fout werklik manifesteer. Om die beginfout terug te spoor na die hoofoorsaak kan dikwels 'n frustrerende, moeilike en tydrowende taak wees.

Byvoorbeeldamp'n Enkele fout in 'n vertaaltabel mag dalk eers baie siklusse later tot 'n fout lei. Sommige van die gereedskap wat ons later in hierdie artikel sal bespreek, wat toegewyde in-kring ontfoutingshardeware gebruik, is spesifiek daarop gemik om hierdie 'foutjagte' vinniger en makliker te maak. Voordat ons in die besonderhede van hierdie gereedskap ingaan, kom ons kyk eers na 'n gewilde sagteware-gebaseerde ontfoutingstegnieksimulasie om die voordele beter te verstaan.tages en disadvantages van die gebruik van simulasie vir ontfouting.

Gebruik van simulasie vir ontfouting
Tipies in 'n ontwerpsimulasie word alle werklike komponente binne en buite die ontwerp wiskundig gemodelleer as sagtewareprosesse wat opeenvolgend op 'n standaard SVE uitgevoer word. Om 'n wye reeks stimulus op die ontwerp toe te pas en die verwagte uitset teen die gesimuleerde ontwerpuitset te kontroleer, is 'n maklike manier om die meeste ooglopende ontwerpfoute op te vang. 'n Venster wat 'n tipiese simulasielopie toon, word in Figuur 1 hieronder gegee. Die duidelike advantagDie voordeel van simulasie teenoor hardeware-gebaseerde ontfouting is dat simulasie in die sagteware gedoen kan word—geen werklike hardeware-gebaseerde ontwerp en toetsbank is nodig nie. Simulasie kan vinnig baie ontwerpfoute opspoor, veral dié wat verband hou met verkeerde spesifikasies, wanbegrip van koppelvlakvereistes, funksiefoute en baie ander 'growwe' tipes foute wat maklik deur eenvoudige stimulusvektore opgespoor kan word.

Mikrosemi-In-Kring-FPGA-Ontfouting- (1)

Simulasie is veral effektief wanneer uitgebreide stimuluskombinasies vir die ontwerper beskikbaar is en die gevolglike uitsette welbekend is. In hierdie gevalle kan simulasie 'n byna volledige toets van 'n ontwerp doen. Ongelukkig het die meeste ontwerpe nie maklike toegang tot uitgebreide toetssuites nie en die proses om hulle te skep, kan baie tydrowend wees. Om 'n toetssuite te skep wat 100% van die ontwerp dek, is feitlik onmoontlik vir groot FPGA-gebaseerde ontwerpe en kortpaaie moet gebruik word om te probeer om die sleutelelemente van die ontwerp te dek. Nog 'n probleem met simulasie is dat dit nie 'n 'regte wêreld'-implementering is nie en nie asinchrone gebeurtenisse, stelselinteraksies teen spoed of tydsberekeningskendings kan opspoor nie. Laastens kan die simulasieproses baie stadig wees en as baie iterasies benodig word, word simulasie vinnig die mees tydrowende, en dikwels die duurste deel van die ontwikkelingsproses.

As 'n alternatief (of dalk beter gestel, as 'n toevoeging tot simulasie) het FPGA-ontwerpers gevind dat hulle ontfoutingshardeware in die FPGA-ontwerp kan byvoeg om sleutelseine binne die toestel waar te neem en te beheer. Hierdie tegnieke het oorspronklik ontwikkel as ad-hoc benaderings, maar het geleidelik ontwikkel tot 'n standaard hardeware ontfoutingstrategie. Hierdie gebruik van in-kring ontfouting vermoëns bied aansienlike voordeeltages vir FPGA-gebaseerde ontwerpe en die volgende afdeling sal die drie mees algemene strategieë en hul verskillende voordele ondersoektages en disadvantages.

Algemene in-kring ontfoutingbenaderings vir FPGA's
Die mees algemene tegnieke om in-kring ontfoutingsvermoëns in FPGA's te implementeer, gebruik óf 'n ingebedde logika-ontleder, eksterne toetstoerusting, óf toegewyde seinsonde-hardeware wat in die FPGA-materiaal ingebed is. Die ingebedde logika-ontleder word tipies geïmplementeer met behulp van FPGA-stof en word in die ontwerp ingevoeg. Die JTAG poort word gebruik om toegang tot die ontleder te kry en die vasgelegde data kan op 'n rekenaar vertoon word. Wanneer eksterne toetstoerusting gebruik word, word die FPGA-ontwerp wat getoets word, gewysig sodat geselekteerde interne FPGA-seine na uitsetpenne gestuur word. Hierdie penne kan dan deur die eksterne toetstoerusting waargeneem word. Wanneer toegewyde seinsonde-hardeware gebruik word, kan 'n wye verskeidenheid interne seine intyds gelees word. Sommige sondeimplementerings kan selfs gebruik word om te skryf na register of geheue liggings wat ontfoutingsvermoëns verder verbeter. Kom ons kyk in meer besonderhede na die advantages en disadvantages van elk van hierdie tegnieke en kyk dan na 'n example ontwerp om te sien hoe hierdie verskillende benaderings algehele ontfoutingstyd kan beïnvloed.

In-kring FPGA ontfouting-ingebedde logiese ontleder
Die konsep van die ingebedde logika-ontleder was 'n direkte gevolg van die ad-hoc in-kring ontfoutingsvermoëns wat ontwerpers geïmplementeer het toe FPGA's die eerste keer gebruik is. Ingebedde logika-ontleders het nuwe vermoëns bygevoeg en die vereiste vir die ontwerper om hul eie ontleder te ontwikkel, uitgeskakel. Die meeste FPGA's bied hierdie vermoëns en derde partye bied standaardontleders (Identify®, van Synopsys, is een gewilde eksample) wat maklik kan koppel met instrumente op hoër vlak om produktiwiteit verder te verbeter.

Die logika-ontleder-funksionaliteit word in die ontwerp ingevoeg, met behulp van FPGA-stof en ingebedde geheueblokke as spoorbuffers, soos geïllustreer in Figuur 2. Snellerhulpbronne word ook geskep sodat komplekse seininteraksies maklik gekies en vasgelê kan word. Toegang tot die ontleder vir beheer en data-oordrag word tipies gedoen deur die standaard JTAG poort om koppelvlakvereistes te vereenvoudig. Gevange data kan op 'n rekenaar vertoon word deur gebruik te maak van common viewsagteware en weerspieël tipies 'n logikasimulatorgolfvormuitvoer viewing styl.

Mikrosemi-In-Kring-FPGA-Ontfouting- (2)

Die advantagDie kenmerke van hierdie benadering is dat geen bykomende FPGA I/O-penne gebruik word nie, net die standaard JTAG seine. Die ingebedde logika-ontleder-IP-kerns is gewoonlik relatief goedkoop en kan in sommige gevalle 'n opsie wees vir bestaande FPGA-sintese, of simulasie-instrumente. In sommige gevalle kan die ingebedde logika-ontleder ook bykomende uitsette op ongebruikte I/O's verskaf, as dit geriefliker is. Een van die nadeeltagDie nadeel van hierdie benadering is dat 'n groot hoeveelheid FPGA-hulpbronne benodig word. In die besonder, as spoorbuffers gebruik word, sal dit die aantal beskikbare blokgeheues verminder. As 'n wye buffer benodig word, sal dit ook 'n afweging wees teen geheuediepte (aangesien die gebruik van 'n wyer geheue lei tot vlakker geheuediepte) - 'n groot nadeel.tage wanneer kleiner toestelle gebruik word. Miskien is die grootste nadeel van hierdie tegniek dat elke keer wanneer 'n aanpassing aan sondeplasing gemaak word, dit nodig is om die ontwerp te hersaamstel en herprogrammeer. Wanneer 'n groot toestel gebruik word, kan hierdie proses 'n aansienlike hoeveelheid tyd neem. As gevolg van die manier waarop die seinprobes in die ontwerp geplaas word, kan dit moeilik wees om seintydberekeningverhoudings te korreleer. Boonop is die vertragings tussen seinprobes nie konsekwent nie en dus is tydsberekeningverhoudings moeilik om te vergelyk. Dit is 'n besondere probleem wanneer asynchrone seine of seine van verskillende tyddomeine vergelyk word.

In-Circuit FPGA Ontfouting – Eksterne Toetstoerusting
Die gebruik van inkring-ontfoutingskode in samewerking met eksterne toetstoerusting was 'n natuurlike ontwikkeling toe 'n eksterne logika-ontleder reeds beskikbaar was vir stelseltoetsing. Deur 'n paar eenvoudige ontfoutingskode te skep om interne toetsseine te identifiseer en te kies en dit op FPGA I/O's toe te pas, soos in Figuur 3 getoon, was dit moontlik om die ontleders se gevorderde vermoëns te benut (soos groot spoorbuffers, komplekse snellerreekse en veelvuldige viewing opsies) om eenvoudige dog kragtige ontfoutingomgewings te skep. Meer komplekse in-kring vermoëns vir gevorderde sneller opsies kan die aantal uitsette wat benodig word verminder. Byvoorbeeldample, die keuse van spesifieke adresse op 'n wye bus kan verbiedend wees as eksterne penne benodig word.
Die gebruik van interne FPGA-logika verminder die I/O-vereistes dramaties en kan selfs soek na spesifieke adrespatrone (miskien 'n oproep- en terugstuurvolgorde) om meer komplekse probleme te ontfout. As 'n algemene gebruikerskoppelvlak beskikbaar is, kan dit die leerkurwe vereenvoudig en produktiwiteit verbeter.

Mikrosemi-In-Kring-FPGA-Ontfouting- (3)

Die advantagDie kenmerke van hierdie benadering is dat dit die koste van die eksterne toetstoerusting benut en dus is daar geen ekstra gereedskapkoste nie. Sommige ontfoutingskring-IP-kerne is beskikbaar by toerustingvervaardigers of FPGA-vervaardigers, en kan baie lae koste of selfs gratis wees. Die hoeveelheid FPGA-hulpbronne wat benodig word om die seinkeuselogika te implementeer, is baie klein, en aangesien die spoorfunksie met die eksterne logika-ontleder gedoen word, is geen blokgeheue nodig nie. Aangesien seleksielogika goedkoop is, kan 'n groot aantal kanale met wye sneller ook ondersteun word. Die logika-ontleder kan in beide 'n tydsberekeningmodus en 'n toestandmodus werk, wat help om sekere tydsberekeningskwessies te isoleer.
Die ontsteltenistage van hierdie benadering kan die behoefte insluit om 'n logiese ontleder aan te skaf, as een nie reeds aan die projek toegewys is nie. Hierdie nadeeltage kan in baie gevalle genoeg wees om hierdie benadering te ontmoedig. Let egter daarop dat sommige laekoste-logika-ontleder-opsies beskikbaar word wat die rekenaar of 'n tablet vir vertoon gebruik, wat hierdie opsie baie meer koste-effektief maak vir eenvoudige ontfoutvereistes.
Die aantal FPGA-penne wat verbruik word, kan nog 'n nadeel weestage en as breë busse waargeneem moet word, is beduidende beplanning vir borduitleg en die byvoeging van ontfoutverbindings nodig. Hierdie vereiste is meestal moeilik om vroeg in die ontwerpfase te voorspel en nog 'n ongewenste kompleksiteit. Soortgelyk aan die ingeboude logika-ontleder-benadering vereis die eksterne toetsstrategie hersamestelling en herprogrammering van 'n ontwerp, wanneer elke nuwe eksperiment nodig is.

Die algemene nadeeltagDie voordele van hierdie twee tegnieke—die gebruik van hulpbronne op die skyfie (wat ook die ontwerp se tydsberekeningsprestasie kan beïnvloed en addisionele ontfoutingvereistes kan skep), die behoefte om die ontwerp te herkompileer en te herprogrammeer (wat ure of selfs dae by die ontfoutingskedule kan voeg), die voorafbeplanning wat nodig is om waarskynlike toetsscenario's te identifiseer, en die gebruik van addisionele skyfie-I/O-hulpbronne het 'n behoefte geskep vir 'n benadering sonder hierdie nadele. Een reaksie was die byvoeging van toegewyde ontfoutingslogika in die FPGA-stof op sommige toestelle. Ontfouting in die stroombaan met behulp van hardeware-probes was die gevolg.

In-kring FPGA Ontfouting – Hardeware Probes
Die gebruik van hardeware probes vereenvoudig in-kring ontfoutingstegnieke vir FPGA's dramaties. Hierdie tegniek geïmplementeer as 'n Live Probe-kenmerk op SmartFusion2®SoC FPGA- en IGLOO®2 FPGA-toestelle, voeg toegewyde sondelyne by die FPGA-stof om die uitset van enige logiese element-registerbis waar te neem. Soos getoon in die blokdiagram in Figuur 4, is hardeware probes beskikbaar in twee sondekanale A en B.

Mikrosemi-In-Kring-FPGA-Ontfouting- (3)

Geselekteerde registeruitsette (sondepunte), soos die een wat aan die onderkant van die figuur verkry word, word bokant die twee sondekanale gestuur en indien gekies kan dit toegepas word op óf die A- of B-kanaal. Hierdie intydse kanaalseine kan dan na toegewyde Probe A- en Probe B-penne op die toestel gestuur word. Die Sonde A- en Sonde B-seine kan ook intern na 'n ingebedde logika-ontleder gestuur word.

Let daarop dat die tydsberekeningeienskappe van die sondepenne gereeld is en weglaatbare afwyking van een sondepunt na 'n ander het, wat dit baie makliker maak om tydsberekeningeienskappe van die intydse seine te vergelyk. Data kan op tot 100MHz vasgelê word, wat dit geskik maak vir die meeste teikenontwerpe.
Miskien die belangrikste is dat die ondersoekpuntliggings, aangesien hulle nie as deel van die geïmplementeerde ontwerp gekies word nie (hulle word deur toegewyde hardeware gekies terwyl die ontwerp op die FPGA loop), vinnig verander kan word deur eenvoudig die seleksiedata na die toestel te stuur. Geen ontwerphersamestelling en herprogrammering is nodig nie.
Om die gebruik van die Live Probe-vermoë nog meer te vereenvoudig, het die gepaardgaande ontfoutprogrammatuur toegang tot al die sondeseinliggings deur 'n outomaties gegenereerde ontfouting file. Soos in Figuur 5 getoon, kan die seinnaam uit die seinlys gekies word en op die verlangde kanaal toegepas word. Dit kan gedoen word selfs terwyl die ontwerp aan die gang is, sodat ondersoekaktiwiteit binne die ontwerp naatloos en baie doeltreffend is.

Mikrosemi-In-Kring-FPGA-Ontfouting- (5)

In baie gevalle kan die hardeware-sonde-vermoë, soos Live Probe, gebruik word in samewerking met die voorheen beskryfde ingebedde logika-ontleder en die eksterne toetstegnieke.

Soos getoon in Figuur 6, maak die Live Probe-vermoë om seine 'onderweg' te selekteer dit moontlik om die seine onder waarneming vinnig en maklik te verander sonder om die ontwerp te herkompileer. 'n Eksterne logika-analiseerder of -skoop kan die gepeiste seine maklik waarneem, soos geïllustreer in die regter boonste gedeelte van die figuur op die toegewyde peiler-uitsetpenne. Alternatiewelik (of miskien selfs benewens) kan die interne logika-analiseerder (die ILA Identify-blok, wat in die figuur getoon word) gebruik word om die peilerpenne waar te neem. Die peilerseine kan deur die ILA vasgelê word en op die golfvormvenster waargeneem word. Peilerliggings kan verander word sonder dat die teikenontwerp herkompileer hoef te word.
Let daarop dat die bykomende vermoëns vir sneller en naspeur gebruik kan word om sondefunksionaliteit te verbeter, wat dit maklik maak om selfs komplekse ontwerpkwessies raak te sien.

Mikrosemi-In-Kring-FPGA-Ontfouting- (6)

Bykomende hardeware-ontfoutingsvermoëns is ook beskikbaar op die SmartFusion2 SoC FPGA- en IGLOO2 FPGA-toestelle. Een van hierdie vermoëns, genaamd Active Probe, kan dinamies en asynchroon lees of skryf na enige logika-elementregisterbit. 'n Geskrewe waarde bly vir 'n enkele kloksiklus sodat normale werking kan voortduur, wat dit 'n baie waardevolle ontfoutingsinstrument maak. Active Probe is van besondere belang as 'n vinnige waarneming van 'n interne sein verlang word (miskien bloot om te kontroleer dat dit aktief of in die verlangde toestand is, soos 'n herstelsein), of as daar 'n behoefte is om vinnig 'n logikafunksie te toets deur na 'n probepunt te skryf.
(miskien om 'n toestandsmasjienoorgang te begin deur vinnig 'n invoerwaarde in te stel om 'n beheervloeiprobleem te isoleer).

Nog 'n ontfoutingsvermoë wat deur Microsemi verskaf word, is Memory Debug. Hierdie kenmerk laat die ontwerper toe om dinamies en asinchronies te lees of te skryf na 'n geselekteerde FPGA-stof SRAM-blok. Soos geïllustreer in die skermskoot van die Debug Tool (Figuur 7), wanneer die Memory Blocks-oortjie gekies is, kan die gebruiker die verlangde geheue kies om te lees, 'n momentopname van die geheue uit te voer, geheuewaardes verander en dan die waardes terugskryf na die toestel. Dit kan veral nuttig wees vir die nagaan of stel van databuffers wat in kommunikasiepoorte gebruik word vir rekenaargeoriënteerde krapblok of selfs vir kode wat deur 'n ingebedde SVE uitgevoer word. Ontfouting van komplekse data-afhanklike foute is aansienlik vinniger en makliker wanneer herinneringe so vinnig waargeneem en beheer kan word.

Mikrosemi-In-Kring-FPGA-Ontfouting- (7)

Sodra 'n ontwerp ontfout is, kan dit wenslik wees om die hardeware ontfoutingsvermoëns af te skakel om sensitiewe inligting te beskerm. 'n Aanvaller kan dieselfde fasiliteite gebruik om kritieke inligting uit te lees of stelselinstellings te verander wat maklike toegang tot sensitiewe gedeeltes van die stelsel kan gee. Microsemi het kenmerke bygevoeg sodat die ontwerper die toestel kan beveilig nadat ontfouting voltooi is. Byvoorbeeldample, toegang tot Live Probe en Active Probe kan gesluit word om die funksie heeltemal uit te skakel as 'n moontlike manier van aanval (dit skakel selfs die moontlikheid uit dat sondeaktiwiteit enige patrone in die toevoerstroom skep wat gebruik kan word om ondersoekdata indirek te probeer waarneem). Alternatiewelik kan toegang tot geselekteerde gedeeltes van die ontwerp uitgesluit word om toegang tot net daardie gedeeltes te voorkom. Dit kan gerieflik wees as slegs 'n gedeelte van die ontwerp veilig moet wees, sodat die res van die ontwerp steeds toeganklik is vir veldtoetsing of foutanalise.

In-kring ontfouting vergelyking grafiek
Nou dat 'n gedetailleerde review van die drie hoof-in-kring-hardeware ontfoutingstegnieke is beskryf, is 'n opsommingskaart, soos in Figuur 8 getoon, geskep wat die verskillende advan uiteensit.tages en disadvantages van elke metode. Onthou dat sommige tegnieke saam gebruik kan word (Live Probe en Internal Logic Analyzer (ILA), soos Synopsys Identify, bv.ample), kan ons die belangrikste sterk- en swakpunte van elke tegniek sien. Die versameling van in-kring hardeware ontfoutingsvermoëns (Live Probe, Active Probe, en Memory Debug—gesamentlik SmartDebug genoem), is die swakste in vergelyking met die ander tegnieke wanneer dit kom by die aantal totale beskikbare probes (’n rooi sirkel) en is swakker as die beste (geel sirkel) wanneer die vasleggingspoed in ag geneem word (eksterne toetstoerusting kan vinniger wees).
ILA-gebaseerde tegnieke, soos Synopsys Identify, is die swakste in vergelyking met die ander tegnieke en wanneer FPGA-hulpbronvereistes oorweeg word. Eksterne toetstoerusting-gebaseerde tegnieke is die swakste oor 'n aantal oorwegings, met koste, ontwerptydberekening en bokoste van sondebeweging (as gevolg van die behoefte om die ontwerp te hersaamstel) die mees beswarende. Miskien is die optimale oplossing 'n kombinasie van SmartDebug en een van die ander tegnieke, sodat die aantal kanale swakheid van SmartDebug versag kan word en die sondepuntbeweging nadeeltages van die ander tegnieke ook verminder.

Mikrosemi-In-Kring-FPGA-Ontfouting- (8)

Sein Klassifikasies
'n Nuttige onderskeid kan gemaak word tussen sommige van die mees algemene tipes seine en dit kan help wanneer 'n ontfoutingsbenadering beplan word. ByvoorbeeldampSeine wat nie verander nie, behalwe tydens die stelselopstart, soos stelselherstel, blokherstel of inisialiseringsregisters, kan as statiese seine geklassifiseer word. Hierdie tipe seine word die doeltreffendste verkry deur 'n fasiliteit wat die sein maklik kan waarneem en beheer, sonder dat 'n lang herkompileersiklus nodig is. Active Probe is 'n uitstekende fasiliteit vir die ontfouting van statiese seine. Net so kan seine wat meer gereeld verander, maar steeds vir die oorgrote meerderheid van die tyd staties is, as pseudo-staties geklassifiseer word en word ook die doeltreffendste ontfout met behulp van Active Probe. Seine wat gereeld verander, soos klokseine, kan as dinamies geklassifiseer word en is nie so maklik verkrygbaar deur Active Probe nie. Live Probe is 'n beter keuse vir die waarneming van hierdie seine.

Eenvoudige ontfoutingsgeval

Noudat ons 'n beter begrip het van die verskillende in-kring ontfouting opsies, kom ons kyk na 'n eenvoudige ontwerp example om te sien hoe hierdie tegnieke werk. Figuur 9 toon 'n eenvoudige FPGA-ontwerp in 'n SmartFusion2 SoC FPGA-toestel. Die mikrobeheerder-substelsel (MSS) word teruggestel deur die CoreSF2Reset Soft IP-blok. Die insette na hierdie blok is die Power On Reset, 'n User Fabric Reset, en 'n Eksterne Reset. Die uitsette is 'n terugstelling na die gebruikersstof, 'n MSS-terugstelling en 'n M3-terugstelling. Die foutsimptome is dat daar geen aktiwiteit op die I/O's is nie, alhoewel die toestel die POR-toestand suksesvol verlaat. Die drie verskillende opsies om hierdie fout te ontfout word ook in die figuur geïllustreer: Die blou blokkie (gemerk ETE) is vir die Eksterne Toetstoerusting-metode; die groen blokkie (gemerk ILA) is vir die Internal Logic Analyzer-metode; en die oranje boks (gemerk AP) is vir die Active Probe-metode. Ons sal aanneem dat die moontlike hoofoorsake van die fout onbehoorlik beweerde herstelinsette na die CoreSF2Reset Soft IP-blok is.

Mikrosemi-In-Kring-FPGA-Ontfouting- (9)

Kom ons kyk nou na die ontfoutingsproses vir drie van die voorheen beskryfde inkringmetodes.

Eksterne toetstoerusting
Deur hierdie metode te gebruik, word aanvaar dat die toetstoerusting beskikbaar is en nie deur 'n hoërprioriteitprojek gebruik word nie. Daarbenewens is dit belangrik om vooruit te beplan sodat sommige FPGA I/O's beskikbaar is en maklik aan die toetstoerusting gekoppel kan word. Met 'n kopskrif op die PCB vir bvample, sou baie nuttig wees en die tyd verminder wat spandeer word om 'n 'waarskynlike verdagte' of die potensiële kortsluiting van penne tydens prikkeling te identifiseer en te koppel. Die ontwerp sal hersaamgestel moet word om die seine te kies wat ons wil ondersoek. Hopelik sal ons nie 'die ui afskil' nie en addisionele seine vir verdere ondersoek moet kies, aangesien ons aanvanklike ondersoek dikwels net meer vrae tot gevolg het. In elk geval kan die hersamelings- en herprogrammeringsproses 'n aansienlike hoeveelheid tyd neem, en as dit lei tot tydsberekeningskendings, is 'n herontwerp nodig (ons is almal vertroud met hoe frustrerend dit kan wees om tydsberekeningsprobleme op te los, veral wanneer jy die ontwerpveranderinge maak om 'n ontwerpfout te vind - die hele proses kan van minute tot ure duur)! Dit is ook belangrik om te onthou dat as die ontwerp geen vrye gebruikers-I/O's het nie, hierdie metode nie geïmplementeer kan word nie. Boonop is hierdie metode struktureel indringend vir die ontwerp - en tydsberekeningsverwante foute kan tussen iterasies verdwyn of weer verskyn.

Interne logiese ontleder
Deur hierdie metode te gebruik, moet die ILA in die ontwerp ingevoeg word met behulp van materiaalhulpbronne, en moet dan hersaamgestel word. Let daarop dat as die ILA reeds geïnstansieer is, die seine wat ons wil ondersoek dalk nie geinstrument is nie, wat ook 'n hersamestelling sal vereis. Hierdie proses loop die risiko om die oorspronklike ontwerp te verander en tydsbeperkings te oortree. As tydsberekening nagekom word, moet die ontwerp herprogrammeer en herinitialiseer word. Hierdie hele proses kan etlike minute of selfs ure neem as die hersamestellingstye lank is en veelvuldige passe nodig is. Hierdie benadering is struktureel indringend en kan soortgelyke probleme tot gevolg hê as dié wat beskryf word wanneer die bogenoemde metode gebruik word.

Aktiewe sonde
Deur hierdie metode te gebruik, kan die aktiewe sonde na die bron van die verskillende terugstelseine gewys word, wat almal verkry word deur registeruitsette (soos algemeen in enige goeie digitale ontwerppraktyke is). Die seine word een op 'n slag gekies uit 'n Active Probe-kieslys wat in Figuur 10 hieronder getoon word. Die geselekteerde seinwaardes kan gelees word en word op die Active Probe-datavenster vertoon. Enige verkeerde stellings word maklik uitgeken. Hierdie toets kan onmiddellik gedoen word sonder dat dit nodig is om die toestel te hersaamstel en te herprogrammeer en is nie struktureel of prosedureel indringend nie. Die hele proses neem net 'n paar sekondes. Hierdie metode kan ook beheerbaarheid skep (waardes asinchroon verander) wat die ander twee metodes nie sal toelaat nie. In hierdie spesifieke example, die terugstelsein wat deur 'n register verkry word, kan maklik ondersoek word en ontdek word dat dit in aktiewe toestand gehou word.

Oombliklike omskakeling van die terugstelsein kan bereik word deur asynchronies die register te manipuleer wat die russeine genereer.

Mikrosemi-In-Kring-FPGA-Ontfouting- (10)

Meer komplekse ontfoutingsgeval
Bogenoemde ontwerp was baie eenvoudig en is nuttig as 'n inleiding tot die gebruik van die beskryfde ontwerptegnieke, maar 'n meer komplekse eksample kan selfs meer illustratief wees. Baie keer is die sein van belangstelling nie 'n statiese sein soos dit in ons eenvoudige eks was nieample maar is dinamies. 'n Algemene dinamiese sein is 'n intermediêre klok, wat dalk gebruik word vir die tydsberekening van 'n handdruk vir 'n seriële koppelvlak. Figuur 11 toon so 'n ontwerp met die gebruiker Sagte IP-kern, in hierdie geval, 'n pasgemaakte seriële koppelvlak wat aan die stelsel APB-bus gekoppel is. Die foutsimptome is dat daar geen aktiwiteit op die gebruikers se pasgemaakte seriële koppelvlak is nie, en dat wanneer 'n APB-busmeester 'n transaksie uitreik om toegang tot die seriële koppelvlak te kry, dit in 'n uitsonderingstoestand gaan wat 'n verkeerde handdruk aandui. Hierdie toestande blyk 'n statiese oorsaak uit te sluit, soos 'n verkeerde terugstellingsein, aangesien die transaksietoestandmasjien blykbaar nie teen die verwagte tempo werk nie en dus die uitsondering veroorsaak. Die hoofoorsaak is vermoedelik die klokfrekwensiegenerator binne die gebruiker IP-kern.

As dit nie teen die korrekte frekwensie loop nie, sal die beskryfde foute ontstaan.

Mikrosemi-In-Kring-FPGA-Ontfouting- (11)

In hierdie situasie is dit waarskynlik 'n beter strategie om die Active Probe-benadering met die Live Probe te vervang. Dit word in die bostaande figuur geïllustreer deur die oranje gekleurde LP-boks, met die JTAG sein vir die seleksie van die sondebron.

Eksterne toetstoerusting
Vir hierdie geval is die metodologie baie soortgelyk aan die voorheen beskryf eenvoudige eksample. Die gebruikerkloksein word na die toetspunt gebring (hopelik op 'n kopskrif) en 'n tydrowende hersamestelling is nodig. Dit kan ook nuttig wees om 'n verwysingsein uit te bring, miskien 'n stelselklok wat gebruik word om die gebruikers se IP as 'n vergelykingsein te klok. Ons sal weer onderwerp word aan die behoefte om te hersaamstel en herprogrammeer sodat die hele proses 'n aansienlike hoeveelheid tyd kan neem.

Interne logiese ontleder
Hierdie geval is baie soortgelyk aan die eenvoudige example. Die ILA moet ingevoeg word, of die gewenste sein gedefinieer word, en 'n hersamestelling en herprogrammeer siklus uitgevoer word. Al die voorheen beskryf kwessies lei steeds tot 'n aansienlike ontfoutingsiklustyd. Daar is egter 'n bykomende kompleksiteit. Die horlosie wat die ILA dryf, moet sinchroon wees, en ideaal gesproke baie vinniger met betrekking tot die klok wat vanaf die gebruiker Sagte IP-kern waargeneem moet word. As hierdie horlosies asynchronies is, of nie die korrekte tydsberekeningverhoudings het nie, sal datavaslegging onvoorspelbaar wees en 'n moontlike bron van verwarring vir die ontfoutingsproses.
Let daarop dat as die gebruiker Sagte IP-klok nie op die skyfie gegenereer word nie (miskien word dit van die seriële koppelvlak herwin), sal die ontwerper dalk 'n klokmodule moet byvoeg om 'n vinniger ILA-klok te genereer deur bykomende hulpbronne te gebruik en moontlik 'n tydsberekeningsoortreding te skep.

Regstreekse ondersoek
Deur hierdie metode te gebruik, kan die Live Probe vinnig na die bron van die gebruikershorlosie en enige ander klokbron vanaf 'n register gewys word om die hoofoorsaak van die fout op te spoor. Die Live Probe sal die geselekteerde seinuitsette in reële tyd wys en enige tydsberekeningsverwantskap tussen die seine is dus baie makliker om te bepaal. Die hele proses neem net 'n paar sekondes.

Ander ontfoutingskenmerke vir seriële koppelvlakke
Dit is ook belangrik om daarop te wys dat daar baie bykomende ontfoutingsvermoëns in SmartFusion2 SoC FPGA- en IGLOO2 FPGA-toestelle is wat op seriële koppelvlakke gebruik kan word, soos die een in die vorige example ontwerp waar foute selfs meer ingewikkeld is. SERDES Debug, bvample, bied spesifieke ontfoutingsvermoëns vir die toegewyde hoëspoed-reekskoppelvlakke. Sommige van die SERDES Debug-kenmerke sluit in PMA-toetsondersteuning (soos PRBS-patroongenerering en teruglustoetsing) ondersteuning vir veelvuldige SERDES-toetskonfigurasies met registervlak-herkonfigurasie om die gebruik van die volledige ontwerpvloei te vermy om konfigurasieveranderinge aan te bring, en teksverslae wat gekonfigureerde protokolle, SERDES-konfigurasieregisters en baankonfigurasieregisters wys. Hierdie kenmerke maak SERDES-ontfouting baie makliker en kan saam met Live Probe en Active Probe gebruik word om ontfouting van komplekse stroombane verder te bespoedig.
Die voorheen beskryfde geheue-ontfoutingsinstrument kan ook saam met SERDES-ontfouting gebruik word om toetsing te bespoedig. Aangesien geheuebuffers vinnig en maklik met geheue-ontfouting geïnspekteer en verander kan word, is dit moontlik om vinnig 'toetspakkette' te skep en teruglus- of interstelselkommunikasieresultate waar te neem. Die ontwerper kan hierdie vermoëns benut en sodoende die behoefte aan gespesialiseerde 'toetsharnasse' verminder wat addisionele FPGA-materiaal verbruik en wat die tydsberekening van die skyfie kan beïnvloed.

Gevolgtrekking
Hierdie artikel het in detail verskeie verskillende benaderings beskryf tot die implementering van in-kring ontfouting vir FPGA's en SoC FPGA's—die gebruik van 'n Geïntegreerde Logika-analiseerder, die gebruik van eksterne toetsapparatuur, en die gebruik van toegewyde probe-kringe wat in die FPGA-stof geïntegreer is. Die byvoeging van gespesialiseerde en toegewyde probe-kringe, soos Active Probe en Live Probe wat deur Microsemi op SmartFusion2 SoC FPGA en IGLOO2 FPGA-toestelle aangebied word, het getoon dat dit die ontfoutingsproses aansienlik versnel en vereenvoudig. Die vermoë om die keuse van interne seine vinnig te verander (sonder die noodsaaklikheid om 'n baie tydrowende herkompileer- en herprogrammeringsiklus uit te voer), en die vermoë om interne seine te peil (sonder die noodsaaklikheid om FPGA-stof te gebruik en moontlik tydsberekeningskendings in te bring) is as 'n groot voordeel getoon.tages wanneer FPGA-ontwerpe ontfout word. Daarbenewens is die gebruik van veelvuldige metodologieë beskryf, wat kan saamwerk om 'n selfs meer omvattende ontfoutingsvermoë te verskaf. Ten slotte, twee example ontfoutingsgebruiksgevalle is gegee om die afwykings tussen die beskryfde metodes te illustreer.

Om meer te wete te kom

  1. IGLOO2 FPGA's
  2. SmartFusion2 SoC FPGA's

Microsemi Corporation (Nasdaq: MSCC) bied 'n omvattende portefeulje van halfgeleier- en stelseloplossings vir kommunikasie, verdediging en sekuriteit, lugvaart en industriële markte. Produkte sluit in hoëwerkverrigting en straling-geharde analoog gemengde-sein geïntegreerde stroombane, FPGA's, SoC's en ASIC's; kragbestuurprodukte; tydsberekening en sinchronisasie toestelle en presiese tyd oplossings, stel die wêreld se standaard vir tyd; stemverwerkingstoestelle; RF oplossings; diskrete komponente; sekuriteit tegnologieë en skaalbare anti-tamper produkte; Power-over-Ethernet IC's en midspans; sowel as pasgemaakte ontwerpvermoëns en -dienste. Microsemi het sy hoofkwartier in Aliso Viejo, Kalifornië, en het ongeveer 3,400 XNUMX werknemers wêreldwyd. Leer meer by www.microsemi.com.

© 2014 Microsemi Corporation. Alle regte voorbehou. Microsemi en die Microsemi-logo is handelsmerke van Microsemi Corporation. Alle ander handelsmerke en diensmerke is die eiendom van hul onderskeie eienaars.

Mikrosemi Korporatiewe Hoofkwartier

Gereelde vrae

  • V: Wat is die maksimum datavasvangfrekwensie van die toestel?
    A: Die toestel ondersteun data-opname teen tot 100 MHz, geskik vir die meeste teikenontwerpe.
  • V: Moet ek die ontwerp hersaamstel wanneer ek sondekringe vir ontfouting gebruik?
    A: Nee, die liggings van die sondepunt kan vinnig verander word sonder dat ontwerphersameling of herprogrammering nodig is.

Dokumente / Hulpbronne

Mikrosemi In-Kring FPGA Ontfouting [pdf] Instruksies
In-kring FPGA ontfout, FPGA ontfout, ontfout

Verwysings

Los 'n opmerking

Jou e-posadres sal nie gepubliseer word nie. Vereiste velde is gemerk *