Microsemilogotip

Depuració de microsemi FPGA en circuit

Producte de depuració de microsemi-in-circuit-FPGA

Informació del producte

Especificacions

  • Tipus de dispositiu: Microsemi SmartFusion2 SoC FPGA
  • Data de llançament: maig de 2014
  • Capacitats de depuració: depuració FPGA en circuit, analitzador lògic incrustat
  • Freqüència màxima de captura de dades: fins a 100 MHz

Resum
Els FPGA són potents elements de disseny en sistemes encastats amb molts avanços de dissenytages, però aquests dispositius poden tenir dissenys complexos amb problemes de disseny complexos que s'han de depurar. Fer un seguiment dels problemes de disseny com ara errors de definició, problemes d'interacció del sistema i errors de temporització del sistema pot ser un repte. La inclusió de capacitats de depuració en circuit en una FPGA pot millorar dràsticament la depuració de maquinari i evitar hores de frustració. Aquest article descriu diversos enfocaments diferents per a la depuració en circuit per a FPGA, identifica els intercanvis clau i mitjançant un exampel disseny, dirigit a un dispositiu Microsemi SmartFusion®2 SoC FPGA, mostrarà com es poden utilitzar noves capacitats per accelerar la depuració i la prova.

Introducció

Els FPGA són elements de disseny generalitzats i potents i ara es troben en pràcticament tots els sistemes integrats. Amb l'augment de la capacitat, la inclusió de blocs funcionals complexos al xip i interfícies sèrie avançades, aquests dispositius també poden tenir problemes de disseny complexos que s'han de depurar. El seguiment de problemes com ara errors de definició funcional (a nivell de FPGA o sistema), problemes d'interacció del sistema funcional, problemes de temporització del sistema i problemes de fidelitat del senyal entre circuits integrats (com ara soroll, diafonia o reflexos) esdevenen molt més complexos quan s'utilitzen FPGA avançades. La simulació és sens dubte una gran ajuda per identificar molts problemes de disseny, però moltes interaccions del món real no apareixeran fins que el disseny s'implementa al maquinari. S'han desenvolupat diverses tècniques diferents per depurar problemes de disseny complexos per simplificar el procés. Una comprensió acurada de cadascuna d'aquestes tècniques clau, incloses les diferents avançadestages i disadvantagés útil a l'hora de considerar quina tècnica o combinació de tècniques és adequada per a un disseny concret.
Un exampEl disseny FPGA, dirigit a un dispositiu FPGA SoC Microsemi SmartFusion2, es pot utilitzar per demostrar alguns dels avanços.tages i disadvantagd'aquestes tècniques estàndard, així com les més noves capacitats de depuració en circuit. Aquest ex il·lustratiuample mostrarà com es poden utilitzar aquestes diferents tècniques per accelerar la identificació i eliminació de problemes de maquinari durant la depuració de maquinari.

Per què la depuració de FPGA és un aspecte crític del disseny i desenvolupament del sistema?
Els FPGA tenen dos models d'ús principals que els diferencien d'altres elements de disseny. Els FPGA es poden utilitzar en el producte de producció o com a vehicle de desenvolupament per demostrar o prototipar un concepte de disseny de producció. Quan s'utilitzen com a vehicle de producció, els FPGA poden ser un objectiu molt més flexible que els vehicles de producció basats en ASIC o CPU. Això és especialment important per a un disseny nou, que encara no s'ha implementat al maquinari. Els dissenys amb diferents opcions arquitectòniques es poden crear i provar fàcilment per identificar el disseny òptim. Els FPGA amb processadors en xip (FPGA SoC) també permeten compensar el processament basat en CPU amb funcions d'acceleració basades en FPGA assistides per maquinari. Aquests avançatstages pot reduir dràsticament el temps necessari per al disseny, la validació, les proves i l'anàlisi de fallades per al desenvolupament de nous productes.
Quan s'utilitza per crear prototips d'un disseny, potser per a un ASIC de producció, la flexibilitat FPGA és un avantatge clau. Una plataforma de maquinari real, fins i tot una que no funciona a tota velocitat, fa que sigui molt més fàcil obtenir mètriques detallades de rendiment del sistema, dades d'anàlisi de rendiment i resultats de prova de concepte d'arquitectura. El suport FPGA per a implementacions endurides dels busos estàndard de la indústria (com ara PCIe®, Gigabit Ethernet, XAUI, USB, CAN i altres) simplifica les proves associades a aquestes interfícies. Les famílies més noves d'FPGA amb processadors ARM en xip (FPGA SoC), facilita la creació de prototips d'implementacions amb processadors integrats. El codi de processador desenvolupat prèviament es pot portar al prototip i el nou codi es pot crear en paral·lel amb l'esforç de disseny de maquinari.

Aquesta combinació d'un processador estàndard amb busos d'interfície estàndard permet aprofitar el gran ecosistema de biblioteques de codi disponibles, controladors, API funcionals, sistemes operatius en temps real i fins i tot sistemes operatius complets per crear molt més ràpidament un prototip de treball. A més, un cop consolidat el disseny, el prototip FPGA es pot utilitzar per capturar conjunts de proves de simulació extensos (tant per a l'estímul com per a la resposta) que reflecteixin les dades reals del sistema. Aquests conjunts de dades poden ser molt valuosos per crear les simulacions finals per a un ASIC o una altra implementació de producció. L'avançtagL'ús d'un FPGA com a prototip de disseny pot reduir dràsticament el temps de disseny, validació, proves i anàlisi de fallades per a la implementació del producte final.
En tots dos models d'ús d'FPGA comuns, la flexibilitat de l'FPGA com a objectiu de disseny és un avantatge clautage. Això vol dir que molts canvis i iteracions de disseny serien la norma i, per tant, la capacitat de depurar ràpidament els errors de disseny seria fonamental per habilitar tantes opcions de disseny com sigui possible. Sense una capacitat de depuració eficient gran part de l'avançtagLa flexibilitat del disseny FPGA es veurà disminuïda pel temps de depuració addicional necessari. Afortunadament, els FPGA també poden proporcionar funcions de maquinari addicionals que simplifiquen dràsticament la depuració en temps real. Abans d'examinar aquestes capacitats, mirem primer els tipus de problemes més comuns als quals es pot enfrontar un disseny FPGA, de manera que tinguem els antecedents adequats per avaluar l'eficiència i les compensacions associades de diverses eines de depuració.

Problemes comuns a l'hora de depurar dissenys FPGA

Juntament amb les capacitats ampliades que aporten les FPGA modernes, l'augment de la complexitat associada fa que sigui més difícil crear dissenys sense errors. De fet, s'ha estimat que la depuració pot ocupar més del 50% del cicle de disseny del sistema incrustat. Amb les pressions del temps de llançament al mercat que continuen estrenyent el cicle de desenvolupament, la depuració de maquinari del sistema inicial queda relegada a una reflexió posterior, massa sovint assumint que la verificació (en si mateix un gran percentatge).tage del programa de desenvolupament), detectarà tots els errors abans de l'inici del sistema. Vegem només uns quants tipus de problemes habituals del sistema per entendre millor els reptes que s'enfrontarà un disseny típic durant la presentació inicial del sistema.

Els errors de definició funcional poden ser doblement difícils de trobar, ja que el dissenyador ha entès malament un requisit en particular, de manera que l'error es pot passar per alt fins i tot quan es mira amb atenció els detalls del disseny. Un exampEl fitxer d'un error de definició funcional comú seria quan una transició de màquina d'estats no acaba en l'estat correcte. Els errors també poden aparèixer a les interfícies del sistema com un problema d'interacció. Latència de la interfície, per example, pot ser que s'especifiqui incorrectament, donant lloc a una condició inesperada de desbordament o desbordament de la memòria intermèdia.
Els problemes de temporització a nivell del sistema són una altra font molt comuna d'errors de disseny. Els esdeveniments asíncrons, en particular, són una font comuna d'errors quan els efectes de la sincronització o l'encreuament del domini de temporització no es consideren acuradament. Quan funcionen a gran velocitat, aquests tipus d'errors poden ser molt problemàtics i poden aparèixer amb poca freqüència, potser només quan es manifesten patrons de dades específics. Moltes infraccions de temps habituals entren en aquesta categoria i solen ser molt difícils, si no impossibles de simular.

Les violacions de temporització també poden ser el resultat de la baixa fidelitat del senyal entre circuits integrats, en particular en sistemes amb múltiples carrils d'alimentació per a cada circuit. La baixa fidelitat del senyal pot provocar problemes de soroll del senyal, diafonia, reflexos, sobrecàrrega i interferències electromagnètiques (EMI) que sovint es mostren com a violacions del temps. Els problemes d'alimentació, com ara els transitoris (en particular durant l'inici o l'apagat del sistema), les variacions de càrrega i les tensions de dissipació d'energia elevada també poden provocar errors misteriosos, que sovint no es poden localitzar fàcilment a una font d'alimentació. Fins i tot quan el disseny és completament correcte, els problemes de fabricació de la placa poden provocar errors. Juntes de soldadura defectuoses i connectors mal connectats, per example, pot ser la font d'errors i fins i tot pot dependre de la temperatura o la ubicació de la placa. L'ús de tècniques avançades d'embalatge FPGA pot dificultar la sonda de senyals a la placa de circuit imprès, de manera que només obtenir accés a un senyal desitjat sovint pot ser problemàtic. Sovint, molts problemes de disseny no creen un error immediat i s'han de propagar a través del disseny fins que l'error es manifesta realment. Rastrejar l'error inicial fins a la causa arrel sovint pot ser una tasca frustrant, difícil i que requereix molt de temps.

Per exampli, un sol bit incorrecte en una taula de traducció pot no donar lloc a un error fins molts cicles més tard. Algunes de les eines que parlarem més endavant en aquest document, que utilitzen maquinari de depuració en circuit dedicat, estan destinades específicament a fer que aquestes "caces d'errors" siguin més ràpides i fàcils. Abans d'entrar en els detalls d'aquestes eines, mirem primer una simulació popular de tècniques de depuració basada en programari per entendre millor l'avanç.tages i disadvantages d'utilitzar la simulació per a la depuració.

Ús de la simulació per a la depuració
Normalment, en una simulació de disseny, tots els components de la vida real dins i fora del disseny es modelen matemàticament com a processos de programari que s'executen seqüencialment en una CPU estàndard. Aplicar una àmplia gamma d'estímuls al disseny i comprovar la sortida esperada amb la sortida dels dissenys simulats és una manera fàcil de detectar els errors de disseny més evidents. A la figura 1 següent es mostra una finestra que mostra una execució de simulació típica. El clar avançtagLa depuració basada en maquinari en comparació amb la simulació és que la simulació es pot fer al programari; no calen dissenys ni bancs de proves reals basats en maquinari. La simulació pot detectar ràpidament molts errors de disseny, en particular els associats a especificacions incorrectes, malentès dels requisits de la interfície, errors de funció i molts altres tipus d'errors "bruts" que es detecten fàcilment mitjançant vectors d'estímul simples.

Depuració de microsemi-en-circuit-FPGA- (1)

La simulació és especialment eficaç quan el dissenyador disposa d'extenses combinacions d'estímuls i els resultats resultants són ben coneguts. En aquests casos, la simulació pot fer una prova gairebé exhaustiva d'un disseny. Malauradament, la majoria dels dissenys no tenen fàcil accés a les suites de proves extenses i el procés de creació pot ser molt llarg. Crear una suite de proves que cobreixi el 100% del disseny és pràcticament impossible per a grans dissenys basats en FPGA i cal utilitzar dreceres per intentar cobrir els elements clau del disseny. Una altra dificultat de la simulació és que no és una implementació del "món real" i no pot detectar esdeveniments asíncrons, interaccions amb el sistema a velocitat o violacions de temps. Finalment, el procés de simulació pot ser molt lent i, si es requereixen moltes iteracions, la simulació es converteix ràpidament en la part que consumeix més temps i sovint la part més costosa del procés de desenvolupament.

Com a alternativa (o potser millor dit, com a complement a la simulació), els dissenyadors d'FPGA van trobar que podien afegir maquinari de depuració al disseny de l'FPGA per observar i controlar els senyals clau dins del dispositiu. Aquestes tècniques es van desenvolupar originalment com a enfocaments ad-hoc, però gradualment s'han convertit en una estratègia estàndard de depuració de maquinari. Aquest ús de les capacitats de depuració en circuit ofereix un avantatge significatiutages per a dissenys basats en FPGA i la següent secció explorarà les tres estratègies més comunes i els seus diferents avantatgestages i disadvantages.

Enfocaments comuns de depuració en circuit per a FPGA
Les tècniques més comunes per implementar capacitats de depuració en circuit en FPGA utilitzen un analitzador lògic incrustat, un equip de prova extern o un maquinari dedicat a la sonda de senyal incrustat dins del teixit FPGA. L'analitzador de lògica incrustat normalment s'implementa amb teixit FPGA i s'insereix al disseny. El JTAG El port s'utilitza per accedir a l'analitzador i les dades capturades es poden mostrar en un ordinador. Quan s'utilitza un equip de prova extern, el disseny FPGA que s'està provant es modifica de manera que els senyals FPGA interns seleccionats s'encaminen als pins de sortida. Aquests pins es poden observar a través de l'equip de prova extern. Quan s'utilitza un maquinari de sonda de senyal dedicat, es pot llegir una àmplia selecció de senyals interns en temps real. Algunes implementacions de sonde fins i tot es poden utilitzar per escriure a ubicacions de memòria o de registre millorant encara més les capacitats de depuració. Vegem amb més detall l'advantages i disadvantages de cadascuna d'aquestes tècniques i després mireu un exampdisseny del l per veure com aquests diferents enfocaments poden afectar el temps global de depuració.

Analitzador lògic integrat de depuració FPGA en circuit
El concepte de l'analitzador lògic incrustat va ser un resultat directe de les capacitats de depuració ad-hoc en circuit que els dissenyadors van implementar quan es van utilitzar per primera vegada els FPGA. Els analitzadors lògics incrustats van afegir noves capacitats i van eliminar el requisit del dissenyador de desenvolupar el seu propi analitzador. La majoria dels FPGA ofereixen aquestes capacitats i tercers ofereixen analitzadors estàndard (Identify®, de Synopsys, és un exemple popular).ample) que pot interactuar fàcilment amb eines de nivell superior per millorar encara més la productivitat.

La funcionalitat de l'analitzador lògic s'insereix al disseny, utilitzant el teixit FPGA i els blocs de memòria incrustats com a buffers de traça, tal com s'il·lustra a la figura 2. També es creen recursos d'activació perquè les interaccions de senyal complexes es puguin seleccionar i capturar fàcilment. L'accés a l'analitzador per al control i la transferència de dades es fa normalment mitjançant l'estàndard JTAG port per simplificar els requisits de la interfície. Les dades capturades es poden mostrar en un ordinador mitjançant comuns viewprogramari i normalment reflecteix una sortida de forma d'ona d'un simulador lògic viewestil ing.

Depuració de microsemi-en-circuit-FPGA- (2)

L'avançtagLes d'aquest enfocament són que no s'utilitzen pins d'E/S FPGA addicionals, només l'estàndard JTAG senyals. Els nuclis IP de l'analitzador lògic incrustat solen ser relativament econòmics i, en alguns casos, poden ser una opció per a les eines de síntesi o simulació FPGA existents. En alguns casos, l'analitzador lògic incrustat també pot proporcionar sortides addicionals a les E/S no utilitzades, si és més convenient. Un dels desavantatgestagAquest enfocament és que es requereix una gran quantitat de recursos FPGA. En particular, si s'utilitzen memòries de traça, això reduirà el nombre de memòries de blocs disponibles. Si es necessita un buffer ampli, això també suposarà una compensació amb la profunditat de la memòria (ja que l'ús d'una memòria més àmplia resulta en una profunditat de memòria més baixa), un gran desavantatge.tage quan s'utilitzen dispositius més petits. Potser el major inconvenient d'aquesta tècnica és que cada vegada que es fa un ajust a la col·locació de la sonda, és necessari recompilar i reprogramar el disseny. Quan s'utilitza un dispositiu gran, aquest procés pot trigar molt de temps. A causa de la manera com es col·loquen les sondes de senyal en el disseny, pot ser difícil correlacionar les relacions de temporització del senyal. A més, els retards entre les sondes de senyal no són coherents i, per tant, les relacions de temps són difícils de comparar. Aquesta és una dificultat particular quan es comparen senyals asíncrons o senyals de diferents dominis temporals.

Depuració FPGA en circuit: equip de prova extern
L'ús de codi de depuració en circuit juntament amb equips de prova externs va ser un desenvolupament natural quan un analitzador lògic extern ja estava disponible per a les proves del sistema. En crear un codi de depuració senzill per identificar i seleccionar senyals de prova interns i aplicar-los a les E/S FPGA, tal com es mostra a la figura 3, va ser possible aprofitar les capacitats avançades dels analitzadors (com ara grans buffers de traça, seqüències d'activació complexes i múltiples viewing options) per crear entorns de depuració senzills però potents. Les capacitats més complexes en el circuit per a les opcions d'activació avançades poden minimitzar el nombre de sortides necessàries. Per example, seleccionar adreces específiques en un bus ample pot ser prohibitiu si es requereixen pins externs.
L'ús de la lògica FPGA interna redueix dràsticament els requisits d'E/S i fins i tot pot buscar patrons d'adreces específics (potser una seqüència de trucada i retorn) per depurar problemes més complexos. Si hi ha disponible una interfície d'usuari comuna, això pot simplificar la corba d'aprenentatge i millorar la productivitat.

Depuració de microsemi-en-circuit-FPGA- (3)

L'avançtagLa característica d'aquest enfocament és que aprofita el cost de l'equip de prova extern i, per tant, no hi ha cap cost d'eina afegit. Alguns nuclis IP de circuits de depuració estan disponibles a fabricants d'equips o fabricants de FPGA i poden ser de molt baix cost o fins i tot gratuïts. La quantitat de recursos FPGA necessaris per implementar la lògica de selecció de senyal és molt petita, i com que la funció de traça es fa mitjançant l'analitzador lògic extern, no calen memòries de bloc. Atès que la lògica de selecció és barata, també es pot admetre un gran nombre de canals amb activació àmplia. L'analitzador lògic pot funcionar tant en mode de temporització com en mode d'estat, cosa que ajuda a aïllar alguns problemes de temporització.
El desavantatgetagEls d'aquest enfocament poden incloure la necessitat d'adquirir un analitzador lògic, si encara no està assignat al projecte. Aquest desavantatgetagPot ser suficient per desanimar aquest enfocament en molts casos. Tingueu en compte, però, que estan disponibles algunes opcions d'analitzador lògic de baix cost que utilitzen l'ordinador o una tauleta per a la visualització, fent que aquesta opció sigui molt més rendible per als requisits de depuració simples.
El nombre de pins FPGA consumits pot ser un altre desavantatgetagi si s'han d'observar autobusos amples, cal una planificació significativa de la disposició de la placa i l'addició de connectors de depuració. Aquest requisit és la majoria de vegades difícil de predir al principi de la fase de disseny i una altra complexitat no desitjada. De manera similar a l'enfocament de l'analitzador lògic incrustat, l'estratègia de prova externa requereix la recompilació i la reprogramació d'un disseny, quan es necessita cada nou experiment.

L'inconvenient comútagd'aquestes dues tècniques: l'ús de recursos en el xip (que també pot afectar el rendiment del temps del disseny i crear requisits de depuració addicionals) la necessitat de recompilar i reprogramar el disseny (que pot afegir hores o fins i tot dies a la programació de depuració), la planificació inicial necessària per identificar escenaris de prova probables i l'ús de recursos d'E/S de xip addicionals van crear la necessitat d'un enfocament sense aquests inconvenients. Una resposta va ser l'addició d'una lògica de depuració dedicada al teixit FPGA en alguns dispositius. El resultat va ser la depuració en circuit mitjançant sondes de maquinari.

Depuració FPGA en circuit: sondes de maquinari
L'ús de sondes de maquinari simplifica dràsticament les tècniques de depuració en circuit per a FPGA. Aquesta tècnica implementada com a característica Live Probe en dispositius SmartFusion2®SoC FPGA i IGLOO®2 FPGA, afegeix línies de sonda dedicades al teixit FPGA per observar la sortida de qualsevol bit de registre d'element lògic. Tal com es mostra al diagrama de blocs de la figura 4, les sondes de maquinari estan disponibles en dos canals de sondes A i B.

Depuració de microsemi-en-circuit-FPGA- (3)

Les sortides de registre seleccionades (punts de sonda), com la que s'obté a la part inferior de la figura, s'encaminen per sobre dels dos canals de sonda i, si se seleccionen, es poden aplicar al canal A o B. Aquests senyals de canal en temps real es poden enviar als pins dedicats de la sonda A i de la sonda B del dispositiu. Els senyals de la sonda A i de la sonda B també es poden encaminar internament a un analitzador lògic integrat.

Tingueu en compte que les característiques de temporització dels pins de la sonda són regulars i tenen una desviació insignificant d'un punt de sonda a un altre, cosa que fa que sigui molt més fàcil comparar les característiques de temporització dels senyals en temps real. Les dades es poden capturar fins a 100 MHz, per la qual cosa és adequat per a la majoria de dissenys de destinació.
Potser el més important és que les ubicacions dels punts de la sonda, ja que no es seleccionen com a part del disseny implementat (es seleccionen mitjançant un maquinari dedicat mentre el disseny s'executa a l'FPGA), es poden canviar ràpidament simplement enviant les dades de selecció al dispositiu. No cal recompilar ni reprogramar el disseny.
Per simplificar encara més l'ús de la funció Live Probe, l'eina de programari de depuració associada té accés a totes les ubicacions del senyal de la sonda mitjançant una depuració generada automàticament file. Com es mostra a la figura 5, el nom del senyal es pot seleccionar de la llista de senyals i aplicar-lo al canal desitjat. Això es pot fer fins i tot mentre el disseny s'executa de manera que l'activitat de sondeig dins del disseny sigui perfecta i molt eficient.

Depuració de microsemi-en-circuit-FPGA- (5)

En molts casos, la capacitat de la sonda de maquinari, com Live Probe, es pot utilitzar juntament amb l'analitzador lògic incrustat descrit anteriorment i les tècniques de prova externes.

Com es mostra a la figura 6, la capacitat de Live Probe per seleccionar senyals "sobre la marxa" permet canviar ràpidament i fàcilment els senyals sota observació sense necessitat de recompilar el disseny. Un analitzador lògic extern o un abast pot observar fàcilment els senyals de sonda, tal com es mostra a la part superior dreta de la figura als pins de sortida de la sonda dedicats. Alternativament (o potser fins i tot a més) es pot utilitzar l'analitzador lògic intern (el bloc ILA Identify, que es mostra a la figura) per observar els pins de la sonda. Els senyals de la sonda poden ser capturats per l'ILA i observats a la finestra de forma d'ona. Les ubicacions de les sondes es poden canviar sense necessitat de recompilar el disseny objectiu.
Tingueu en compte que les capacitats addicionals per activar i traçar es poden utilitzar per millorar la funcionalitat de la sonda, de manera que és fàcil detectar fins i tot problemes de disseny complexos.

Depuració de microsemi-en-circuit-FPGA- (6)

També hi ha capacitats addicionals de depuració de maquinari disponibles als dispositius SmartFusion2 SoC FPGA i IGLOO2 FPGA. Una d'aquestes capacitats, anomenada Active Probe, pot llegir o escriure de manera dinàmica i asíncrona a qualsevol bit de registre d'element lògic. Un valor escrit persisteix durant un sol cicle de rellotge, de manera que el funcionament normal pot continuar, el que el converteix en una eina de depuració molt valuosa. Active Probe té un interès particular si es desitja una observació ràpida d'un senyal intern (potser simplement per comprovar que està actiu o en l'estat desitjat, com un senyal de reinici), o si cal provar ràpidament una funció lògica escrivint a un punt de sonda.
(potser per iniciar una transició de màquina d'estats establint ràpidament un valor d'entrada per aïllar un problema de flux de control).

Una altra capacitat de depuració proporcionada per Microsemi és Memory Debug. Aquesta característica permet al dissenyador llegir o escriure de manera dinàmica i asíncrona en un bloc SRAM de teixit FPGA seleccionat. Tal com s'il·lustra a la captura de pantalla de l'eina de depuració (figura 7), quan se selecciona la pestanya Blocs de memòria, l'usuari pot seleccionar la memòria desitjada per llegir, executar una captura d'instantània de la memòria, modificar els valors de la memòria i després escriure els valors al dispositiu. Això pot ser especialment útil per comprovar o configurar els buffers de dades utilitzats en els ports de comunicacions per al bloc de notes orientat a la computació o fins i tot per al codi executat per una CPU incrustada. La depuració d'errors depenents de dades complexos és significativament més ràpida i fàcil quan els records es poden observar i controlar tan ràpidament.

Depuració de microsemi-en-circuit-FPGA- (7)

Un cop s'ha depurat un disseny, pot ser desitjable desactivar les capacitats de depuració de maquinari per protegir la informació sensible. Un atacant podria utilitzar aquestes mateixes instal·lacions per llegir informació crítica o canviar la configuració del sistema que podria permetre un accés fàcil a parts sensibles del sistema. Microsemi ha afegit funcions per permetre al dissenyador assegurar el dispositiu un cop finalitzada la depuració. Per exampL'accés a Live Probe i Active Probe es pot bloquejar per desactivar completament la funció com a possible mitjà d'atac (fins i tot elimina la possibilitat que l'activitat de la sonda creï qualsevol patró en el corrent de subministrament que es podria utilitzar per intentar observar les dades de la sonda indirectament). Alternativament, l'accés a les parts seleccionades del disseny es pot bloquejar per evitar l'accés només a aquestes seccions. Això pot ser convenient si només una part del disseny ha de ser segura perquè la resta del disseny encara sigui accessible per a proves de camp o anàlisi d'errors.

Gràfic de comparació de depuració en circuit
Ara que una revisió detalladaview de les tres tècniques principals de depuració de maquinari en circuit, s'ha creat un gràfic resum, tal com es mostra a la figura 8, que detalla els diferents avanços.tages i disadvantages de cada mètode. Recordant que algunes tècniques es poden utilitzar conjuntament (Live Probe i Internal Logic Analyzer (ILA), com Synopsys Identify, per exempleample), podem veure els punts forts i febles clau de cada tècnica. La col·lecció de capacitats de depuració de maquinari en circuit (Live Probe, Active Probe i Memory Debug, anomenades col·lectivament SmartDebug), són més febles en comparació amb les altres tècniques pel que fa al nombre total de sondes disponibles (un cercle vermell) i són més febles que les millors (cercle groc) quan es considera la velocitat de captura (l'equip de prova extern pot ser més gran).
Les tècniques basades en ILA, com Synopsys Identify, són més febles en comparació amb les altres tècniques i quan es consideren els requisits de recursos FPGA. Les tècniques basades en equips de prova externs són les més febles per una sèrie de consideracions amb el cost, l'impacte en el temps del disseny i la sobrecàrrega del moviment de la sonda (a causa de la necessitat de recompilar el disseny) els més oneroses. Potser la solució òptima és una combinació de SmartDebug i una de les altres tècniques, de manera que es pugui mitigar el nombre de canals febles de SmartDebug i el desavantatge del moviment del punt de la sonda.tages de les altres tècniques reduïdes també.

Depuració de microsemi-en-circuit-FPGA- (8)

Classificacions de senyals
Es pot fer una distinció útil entre alguns dels tipus de senyals més comuns i això pot ajudar a l'hora de planificar un enfocament de depuració. Per exampEls senyals que no canvien més que durant l'inici del sistema, com ara el restabliment del sistema, el restabliment de blocs o els registres d'inicialització, es poden classificar com a senyals estàtics. Aquest tipus de senyals s'accedeix de manera més eficient a través d'una instal·lació que pot observar i controlar fàcilment el senyal, sense necessitat d'un llarg cicle de recompilació. Active Probe és una excel·lent instal·lació per depurar senyals estàtics. De la mateixa manera, els senyals que canvien amb més freqüència però que encara són estàtics durant la gran majoria del temps, es poden classificar com a pseudoestàtics i també es depuren de manera més eficaç mitjançant Active Probe. Els senyals que canvien amb freqüència, com els senyals de rellotge, es poden classificar com a dinàmics i no s'hi pot accedir fàcilment mitjançant Active Probe. Live Probe és una millor opció per observar aquests senyals.

Cas d'ús de depuració simple

Ara que tenim una millor comprensió de les diferents opcions de depuració en circuit, mirem un disseny senzill exampper veure com funcionen aquestes tècniques. La figura 9 mostra un disseny FPGA senzill en un dispositiu FPGA SmartFusion2 SoC. El subsistema de microcontroladors (MSS) es restableix mitjançant el bloc IP Soft CoreSF2Reset. Les entrades d'aquest bloc són el restabliment d'engegada, un restabliment de teixit d'usuari i un restabliment extern. Les sortides són un restabliment a User Fabric, un restabliment MSS i un restabliment M3. Els símptomes d'error són que no hi ha activitat a les E/S tot i que el dispositiu surt de l'estat POR correctament. Les tres opcions diferents per depurar aquest error també s'il·lustren a la figura: El quadre blau (etiquetat ETE) és per al mètode de l'equip de prova extern; el quadre verd (etiquetat ILA) és per al mètode de l'analitzador lògic intern; i el quadre taronja (etiquetat AP) és per al mètode Active Probe. Assumirem que les possibles causes arrel de l'error són entrades de restabliment incorrectament afirmades al bloc CoreSF2Reset Soft IP.

Depuració de microsemi-en-circuit-FPGA- (9)

Vegem ara el procés de depuració de tres dels mètodes en circuit descrits anteriorment.

Equips de prova externs
Amb aquest mètode, s'assumeix que l'equip de prova està disponible i no és utilitzat per un projecte de major prioritat. A més, és important tenir planificat amb antelació perquè algunes E/S FPGA estiguin disponibles i es puguin connectar fàcilment a l'equip de prova. Tenir una capçalera al PCB, per exempleample, seria molt útil i minimitzarà el temps dedicat intentant identificar i connectar-se a un "probable sospitós" o el possible curtcircuit dels pins durant la sonda. El disseny haurà de ser recompilat per seleccionar els senyals que volem investigar. Amb sort, no "pelarem la ceba" i haurem de seleccionar senyals addicionals per a una investigació posterior, ja que sovint la nostra investigació inicial només dóna lloc a més preguntes. En qualsevol cas, el procés de recompilació i reprogramació pot trigar molt de temps i, si es tradueix en infraccions de temps, cal un redisseny (tots estem familiaritzats amb el frustrant que pot ser intentar resoldre els problemes de tancament del temps, en particular, quan feu els canvis de disseny per trobar un error de disseny; tot el procés pot trigar de minuts a hores)! També és important recordar que si el disseny no té E/S d'usuari lliure, aquest mètode no es pot implementar. A més, aquest mètode és estructuralment intrusiu per al disseny, i els errors relacionats amb el temps poden desaparèixer o reaparèixer entre iteracions.

Analitzador lògic intern
Mitjançant aquest mètode, l'ILA s'ha d'inserir al disseny utilitzant recursos de teixit i després s'ha de recompilar. Tingueu en compte que si l'ILA ja s'ha instància, és possible que els senyals que volem investigar no s'hagin instrumentat, cosa que també requeriria una recompilació. Aquest procés corre el risc de canviar el disseny original i violar les limitacions de temps. Si es compleix el temps, el disseny s'ha de reprogramar i reiniciar. Tot aquest procés pot trigar uns quants minuts o fins i tot hores si els temps de recompilació són llargs i es necessiten múltiples passades. Aquest enfocament és estructuralment intrusiu i pot provocar problemes similars als descrits quan s'utilitza el mètode anterior.

Sonda activa
Mitjançant aquest mètode, l'Active Probe es pot apuntar a la font dels diferents senyals de reinici, tots els quals provenen de les sortides del registre (com és habitual en qualsevol bona pràctica de disseny digital). Els senyals es seleccionen d'un en un des d'un menú de la sonda activa que es mostra a la figura 10 següent. Els valors de senyal seleccionats es poden llegir i es mostren a la finestra de dades de l'Active Probe. Qualsevol afirmació errònia s'identifica fàcilment. Aquesta prova es pot fer immediatament sense necessitat de recompilar i reprogramar el dispositiu i no és intrusiva ni estructuralment ni procedimentalment. Tot el procés dura només uns segons. Aquest mètode també pot crear controlabilitat (alterant valors de manera asíncrona) que els altres dos mètodes no permetran. En aquest exampsi, el senyal de restabliment obtingut per un registre es pot comprovar fàcilment i es pot descobrir que es manté en estat actiu.

La commutació momentània del senyal de reinici es pot aconseguir manipulant de manera asíncrona el registre que genera els senyals de repòs.

Depuració de microsemi-en-circuit-FPGA- (10)

Cas d'ús de depuració més complex
El disseny anterior era molt senzill i és útil com a introducció a l'ús de les tècniques de disseny descrites, però un exemple més complexamppot ser encara més il·lustratiu. Moltes vegades el senyal d'interès no és un senyal estàtic com ho era en el nostre simple example però és dinàmic. Un senyal dinàmic comú és un rellotge intermedi, potser utilitzat per cronometrar una encaixada de mans per a una interfície sèrie. La figura 11 mostra aquest disseny amb el nucli Soft IP de l'usuari, en aquest cas, una interfície sèrie personalitzada connectada al bus APB del sistema. Els símptomes dels errors són que no hi ha activitat a la interfície sèrie personalitzada de l'usuari i que quan un mestre de bus APB emet una transacció per accedir a la interfície sèrie entra en una condició d'excepció que indica una encaixada de mans incorrecta. Aquestes condicions semblen descartar una causa estàtica, com un senyal de restabliment incorrecte, ja que la màquina d'estat de transacció sembla que no funciona al ritme esperat i, per tant, provoca l'excepció. Es creu que la causa principal és el generador de freqüència de rellotge dins del nucli IP de l'usuari.

Si no s'executa a la freqüència correcta, es produirien els errors descrits.

Depuració de microsemi-en-circuit-FPGA- (11)

En aquesta situació, probablement sigui una millor estratègia substituir l'enfocament de la sonda activa per la sonda en directe. Això s'il·lustra a la figura anterior amb el quadre LP de color taronja, utilitzant el JTAG senyal per a la selecció de la font de la sonda.

Equips de prova externs
Per a aquest cas, la metodologia és molt semblant a l'ex. simple descrit anteriormentample. El senyal del rellotge de l'usuari es porta al punt de prova (esperem en una capçalera) i es necessita una recompilació que requereix molt de temps. També pot ser útil fer sortir un senyal de referència, potser un rellotge del sistema que s'utilitza per marcar la IP dels usuaris com a senyal de comparació. Tornarem a estar sotmesos a la necessitat de recompilar i reprogramar, de manera que tot el procés pot trigar un temps important.

Analitzador lògic intern
Aquest cas és molt semblant al simple example. S'ha d'inserir l'ILA, o definir el senyal desitjat, i executar un cicle de recompilació i reprogramació. Tots els problemes descrits anteriorment encara donen lloc a un temps de cicle de depuració important. Tanmateix, hi ha una complexitat addicional. El rellotge que impulsa l'ILA ha de ser sincrònic i, idealment, molt més ràpid pel que fa al rellotge que s'ha d'observar des del nucli Soft IP de l'usuari. Si aquests rellotges són asíncrons o no tenen les relacions de temps correctes, la captura de dades serà impredictible i una possible font de confusió per al procés de depuració.
Tingueu en compte que si el rellotge Soft IP de l'usuari no es genera al xip (potser es recupera de la interfície sèrie), el dissenyador pot haver d'afegir un mòdul de rellotge per generar un rellotge ILA més ràpid utilitzant recursos addicionals i possiblement creant una infracció de temps.

Sonda en viu
Mitjançant aquest mètode, el Live Probe es pot apuntar ràpidament a la font del rellotge de l'usuari i a qualsevol altra font del rellotge d'un registre per buscar la causa principal de l'error. El Live Probe mostrarà les sortides de senyal seleccionades en temps real i, per tant, qualsevol relació de temps entre els senyals és molt més fàcil de determinar. Tot el procés dura només uns segons.

Altres funcions de depuració per a interfícies sèrie
També és important assenyalar que hi ha moltes capacitats de depuració addicionals als dispositius SmartFusion2 SoC FPGA i IGLOO2 FPGA que es poden utilitzar en interfícies sèrie, com la de l'ex anterior.ampel disseny on els errors són encara més complicats. SERDES Depuració, per example, proporciona capacitats de depuració específiques per a les interfícies sèrie d'alta velocitat dedicades. Algunes de les funcions de depuració de SERDES inclouen el suport de proves PMA (com la generació de patrons PRBS i les proves de loopback) suport per a múltiples configuracions de prova SERDES amb reconfiguració a nivell de registre per evitar l'ús del flux de disseny complet per fer canvis de configuració, i informes de text que mostren protocols configurats, registres de configuració SERDES i registres de configuració de carril. Aquestes funcions fan que la depuració de SERDES sigui molt més fàcil i es pot utilitzar juntament amb Live Probe i Active Probe per accelerar encara més la depuració de circuits complexos.
L'eina de depuració de memòria descrita anteriorment també es pot utilitzar juntament amb SERDES Debug per accelerar les proves. Com que els buffers de memòria es poden inspeccionar i canviar de manera ràpida i senzilla amb Memory Debug, és possible crear ràpidament "paquets de prova" i observar els resultats de les comunicacions entre sistemes o loopback. El dissenyador pot aprofitar aquestes capacitats i, per tant, minimitzar la necessitat d'"arnesos de prova" especialitzats que consumeixin teixit FPGA addicional i que puguin afectar el temps del xip.

Conclusió
Aquest document ha descrit en detall diversos enfocaments diferents per implementar la depuració en circuit per a FPGA i FPGA SoC: l'ús d'un analitzador lògic integrat, l'ús d'equips de prova externs i l'ús de circuits de sonda dedicats integrats al teixit FPGA. S'ha demostrat que l'addició de circuits de sonda especialitzats i dedicats, com Active Probe i Live Probe que ofereix Microsemi als dispositius SmartFusion2 SoC FPGA i IGLOO2 FPGA, accelera significativament i simplifica el procés de depuració. La capacitat de modificar ràpidament la selecció de senyals interns (sense la necessitat d'executar un cicle de recompilació i reprogramació que consumeix molt de temps) i la capacitat de sondejar senyals interns (sense necessitat d'utilitzar teixit FPGA i potencialment introduir violacions de sincronització) es va mostrar com un avantatge important.tagés quan es depuren dissenys FPGA. A més, es va descriure l'ús de múltiples metodologies, que poden treballar juntes per proporcionar una capacitat de depuració encara més completa. Finalment, dos exampEs van donar casos d'ús de debug per il·lustrar les compensacions entre els mètodes descrits.

Per saber-ne més

  1. FPGA IGLOO2
  2. FPGA SmartFusion2 SoC

Microsemi Corporation (Nasdaq: MSCC) ofereix una cartera completa de solucions de sistemes i semiconductors per als mercats de comunicacions, defensa i seguretat, aeroespacial i industrial. Els productes inclouen circuits integrats de senyal mixt analògic d'alt rendiment i endurits per la radiació, FPGA, SoC i ASIC; productes de gestió d'energia; dispositius de cronometratge i sincronització i solucions de temps precises, establint l'estàndard mundial en temps; dispositius de processament de veu; solucions de RF; components discrets; tecnologies de seguretat i anti-t escalablesamper productes; Circuits integrats i midspans d'alimentació a través d'Ethernet; així com capacitats i serveis de disseny personalitzat. Microsemi té la seu a Aliso Viejo, Califòrnia, i té aproximadament 3,400 empleats a tot el món. Més informació a www.microsemi.com.

© 2014 Microsemi Corporation. Tots els drets reservats. Microsemi i el logotip de Microsemi són marques comercials de Microsemi Corporation. Totes les altres marques comercials i marques de servei són propietat dels seus respectius propietaris.

Seu Corporativa Microsemi

Preguntes freqüents

  • P: Quina és la freqüència màxima de captura de dades del dispositiu?
    R: El dispositiu admet la captura de dades de fins a 100 MHz, adequat per a la majoria de dissenys de destinació.
  • P: Necessito recompilar el disseny quan utilitzo circuits de sonda per a la depuració?
    R: No, les ubicacions dels punts de la sonda es poden canviar ràpidament sense necessitat de recompilació o reprogramació del disseny.

Documents/Recursos

Depuració de microsemi FPGA en circuit [pdfInstruccions
Depuració FPGA en circuit, depuració FPGA, depuració

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *