Depuración de FPGA microsemi en circuito
Información do produto
Especificacións
- Tipo de dispositivo: Microsemi SmartFusion2 SoC FPGA
- Data de lanzamento: maio de 2014
- Capacidades de depuración: Depuración de FPGA en circuíto, Analizador lóxico integrado
- Frecuencia máxima de captura de datos: ata 100 MHz
Resumo
Os FPGA son poderosos elementos de deseño en sistemas embebidos con moitos deseños avanzadostages, pero estes dispositivos poden ter deseños complexos con problemas de deseño complexos que precisan ser depurados. A localización de problemas de deseño como erros de definición, problemas de interacción do sistema e erros de temporización do sistema pode ser un desafío. A inclusión de capacidades de depuración en circuíto nunha FPGA pode mellorar drasticamente a depuración de hardware e evitar incontables horas de frustración. Este artigo describe varias abordaxes diferentes para a depuración en circuíto para FPGA, identifica compromisos clave e, a través dun exemploampLe deseño, dirixido a un dispositivo Microsemi SmartFusion®2 SoC FPGA, mostrará como se poden usar novas capacidades para acelerar a depuración e proba.
Introdución
As FPGA son elementos de deseño omnipresentes e poderosos e agora atópanse en practicamente todos os sistemas integrados. Co aumento da capacidade, a inclusión de complexos bloques funcionais no chip e interfaces en serie avanzadas, estes dispositivos tamén poden ter problemas de deseño complexos que deben ser depurados. Rastrexar problemas como os erros de definición funcional (a nivel de FPGA ou de sistema), problemas de interacción do sistema funcional, problemas de temporización do sistema e problemas de fidelidade de sinal entre os IC (como o ruído, a diafonía ou as reflexións) vólvense moito máis complexos cando se usan FPGA avanzados. A simulación é certamente unha gran axuda para identificar moitos problemas de deseño, pero moitas interaccións do mundo real non aparecerán ata que o deseño se implemente no hardware. Desenvolvéronse varias técnicas diferentes para depurar problemas de deseño complexos para simplificar o proceso. Unha comprensión coidadosa de cada unha destas técnicas clave, incluíndo as distintas advantages e desavantatages, é útil cando se considera que técnica ou combinación de técnicas é adecuada para un deseño en particular.
Un exampO deseño FPGA, dirixido a un dispositivo FPGA SoC Microsemi SmartFusion2, pódese usar para demostrar algunhas das vantaxestages e desavantatagas destas técnicas estándar, así como as máis novas capacidades de depuración en circuíto. Este ex ilustrativoample mostrará como se poden usar estas diversas técnicas para acelerar a identificación e eliminación de problemas de hardware durante a depuración de hardware.
Por que a depuración de FPGA é un aspecto crítico do deseño e desenvolvemento do sistema?
As FPGA teñen dous modelos de uso principais que as diferencian doutros elementos de deseño. As FPGA pódense usar no produto de produción ou poden usarse como vehículo de desenvolvemento para probar ou prototipar un concepto de deseño de produción. Cando se usan como vehículo de produción, os FPGA poden ser un obxectivo moito máis flexible que os vehículos de produción baseados en ASIC ou CPU. Isto é especialmente importante para un deseño novo, que aínda non se implementou no hardware. Os deseños con diferentes opcións arquitectónicas pódense crear e probar facilmente para identificar o deseño óptimo. As FPGA con procesadores en chip (SoC FPGA) tamén permiten compensar o procesamento baseado na CPU con funcións de aceleración baseadas en FPGA asistidas por hardware. Estes advantages pode reducir drasticamente o tempo necesario para o deseño, validación, proba e análise de fallos para o desenvolvemento de novos produtos.
Cando se usa para prototipar un deseño, quizais para un ASIC de produción, a flexibilidade FPGA é un beneficio fundamental. Unha plataforma de hardware real, aínda que non funcione a toda velocidade, fai que sexa moito máis fácil obter métricas detalladas de rendemento do sistema, datos de análise de rendemento e resultados de proba de concepto da arquitectura. A compatibilidade con FPGA para implementacións reforzadas de buses estándar da industria (como PCIe®, Gigabit Ethernet, XAUI, USB, CAN e outros) simplifica as probas asociadas a estas interfaces. As novas familias de FPGA con procesadores ARM en chip (SoC FPGA), facilitan a creación de prototipos de implementacións con procesadores integrados. O código do procesador desenvolvido previamente pódese trasladar ao prototipo e crear un novo código en paralelo co esforzo de deseño de hardware.
Esta combinación dun procesador estándar con buses de interface estándar fai posible aproveitar o gran ecosistema de bibliotecas de código dispoñibles, controladores, API funcionais, sistemas operativos en tempo real e mesmo sistemas operativos completos para crear moito máis rápido un prototipo que funcione. Ademais, unha vez que se solidifique o deseño, o prototipo FPGA pódese usar para capturar extensos conxuntos de probas de simulación (tanto para estímulo como para resposta) que reflictan os datos reais do sistema. Estes conxuntos de datos poden ser inestimables para crear as simulacións finais para un ASIC ou outra implementación de produción. O adiantotagO uso dunha FPGA como prototipo de deseño pode reducir drasticamente o tempo de deseño, validación, proba e análise de fallos para a implementación do produto final.
Nestes dous modelos de uso común de FPGA, a flexibilidade da FPGA como obxectivo de deseño é unha vantaxe fundamentaltage. Isto significa que moitos cambios e iteracións de deseño serían a norma e, polo tanto, a capacidade de depurar rapidamente os erros de deseño sería fundamental para habilitar tantas opcións de deseño como sexa posible. Sen unha capacidade de depuración eficiente gran parte do advantagA flexibilidade do deseño da FPGA verase diminuída polo tempo adicional de depuración necesario. Afortunadamente, as FPGA tamén poden proporcionar funcións de hardware adicionais que simplifican drasticamente a depuración en tempo real. Antes de analizar estas capacidades, vexamos primeiro os tipos de problemas máis comúns aos que se pode enfrontar un deseño de FPGA para ter os antecedentes adecuados para avaliar a eficiencia e as compensacións asociadas de varias ferramentas de depuración.
Problemas comúns ao depurar deseños FPGA
Xunto coas capacidades ampliadas que achegan as FPGA modernas, o aumento da complexidade asociada fai que sexa máis difícil crear deseños sen erros. De feito, estimouse que a depuración pode ocupar máis do 50 % do ciclo de deseño de sistemas integrados. Coas presións do tempo de comercialización que seguen a espremer o ciclo de desenvolvemento, a depuración de hardware do sistema inicial queda relegada a unha reflexión secundaria, asumindo con demasiada frecuencia que a verificación (en si mesma unha gran porcentaxe)...tage do calendario de desenvolvemento), detectará todos os erros antes da aparición inicial do sistema. Vexamos só algúns tipos comúns de problemas do sistema para comprender mellor os desafíos aos que se enfrontará un deseño típico durante a aparición inicial do sistema.
Os erros de definición funcionais poden ser dobremente difíciles de atopar xa que o deseñador entendeu mal un requisito particular, polo que o erro pode pasarse por alto mesmo cando se mira con atención os detalles do deseño. Un exampO ficheiro dun erro de definición funcional común sería cando unha transición da máquina de estados non termina no estado correcto. Os erros tamén poden aparecer nas interfaces do sistema como un problema de interacción. Latencia da interface, por exemploample, pode especificarse incorrectamente, provocando un desbordamento inesperado do búfer ou unha condición de desbordamento insuficiente.
Os problemas de temporización a nivel do sistema son outra fonte moi común de erros de deseño. Os eventos asíncronos, en particular, son unha fonte común de erros cando non se consideran coidadosamente os efectos da sincronización ou do dominio de temporización cruzada. Cando se opera a gran velocidade, este tipo de erros poden ser moi problemáticos e poden aparecer con moita pouca frecuencia, quizais só cando se manifestan patróns de datos específicos. Moitas infraccións comúns de tempo entran nesta categoría e adoitan ser moi difíciles, se non imposibles de simular.
As violacións do tempo tamén poden ser o resultado da baixa fidelidade do sinal entre os circuítos integrados, en particular nos sistemas con varios raíles de alimentación para cada circuíto. A baixa fidelidade do sinal pode producir ruído, diafonía, reflexións, exceso de carga e problemas de interferencia electromagnética (EMI) que adoitan aparecer como violacións de tempo. Os problemas de subministración de enerxía, como os transitorios (en particular durante o inicio ou o apagado do sistema), as variacións de carga e as altas tensións de disipación de enerxía tamén poden producir erros misteriosos, que moitas veces non se poden rastrexar facilmente ata unha fonte de alimentación. Mesmo cando o deseño é completamente correcto, os problemas de fabricación da placa poden producir erros. Unións de soldadura defectuosas e conectores mal conectados, por exemploample, pode ser a fonte de erros e mesmo pode depender da temperatura ou da localización da tarxeta. O uso de técnicas avanzadas de empaquetado de FPGA pode dificultar a proba de sinais na placa de circuíto impreso, polo que só pode ser problemático acceder ao sinal desexado. Moitas veces, moitos problemas de deseño non crean un erro inmediato e deben ir a través do deseño ata que o erro se manifesta. Rastrexar o erro inicial ata a causa raíz adoita ser unha tarefa frustrante, difícil e que leva moito tempo.
Por exampÉ dicir, un só bit incorrecto nunha táboa de tradución pode non resultar nun erro ata moitos ciclos despois. Algunhas das ferramentas que discutiremos máis adiante neste artigo, que usan hardware de depuración no circuíto dedicado, están dirixidas especificamente a facer que estas "cazas de erros" sexan máis rápidas e fáciles. Antes de entrar nos detalles destas ferramentas, vexamos primeiro unha simulación popular dunha técnica de depuración baseada en software para comprender mellor as vantaxes.tages e desavantatages de usar simulación para a depuración.
Uso da simulación para a depuración
Normalmente nunha simulación de deseño, todos os compoñentes da vida real dentro e fóra do deseño son modelados matemáticamente como procesos de software que se executan secuencialmente nunha CPU estándar. Aplicar unha ampla gama de estímulos ao deseño e comprobar a saída esperada contra a saída dos deseños simulados é un xeito sinxelo de detectar os erros de deseño máis obvios. Na Figura 1 a continuación móstrase unha xanela que mostra unha execución de simulación típica. O claro advantagA diferenza entre a simulación e a depuración baseada en hardware é que a simulación pódese facer no software, sen necesidade de deseño nin banco de probas baseados en hardware. A simulación pode detectar rapidamente moitos erros de deseño, en particular os asociados a especificacións incorrectas, malentendidos dos requisitos da interface, erros de función e moitos outros tipos de erros "groseiros" que se detectan facilmente mediante vectores de estímulo simples.
A simulación é particularmente eficaz cando o deseñador dispón de amplas combinacións de estímulos e os resultados resultantes son ben coñecidos. Nestes casos, a simulación pode realizar unha proba case exhaustiva dun deseño. Desafortunadamente, a maioría dos deseños non teñen acceso doado a conxuntos de probas extensos e o proceso de crealos pode levar moito tempo. Crear un conxunto de probas que abarque o 100 % do deseño é practicamente imposible para os deseños baseados en FPGA grandes e débense usar atallos para tentar cubrir os elementos clave do deseño. Outra dificultade coa simulación é que non se trata dunha implementación do «mundo real» e non pode detectar eventos asíncronos, interaccións do sistema a alta velocidade ou violacións de tempo. Finalmente, o proceso de simulación pode ser moi lento e, se se requiren moitas iteracións, a simulación convértese rapidamente na parte máis lenta e, a miúdo, a máis custosa do proceso de desenvolvemento.
Como alternativa (ou mellor dito, como complemento á simulación) os deseñadores de FPGA descubriron que podían engadir hardware de depuración ao deseño da FPGA para observar e controlar os sinais clave dentro do dispositivo. Estas técnicas desenvolvéronse orixinalmente como enfoques ad-hoc, pero gradualmente convertéronse nunha estratexia estándar de depuración de hardware. Este uso de capacidades de depuración en circuíto ofrece un avance significativotages para deseños baseados en FPGA e a seguinte sección explorará as tres estratexias máis comúns e os seus diversos avancestages e desavantatages.
Enfoques comúns de depuración en circuito para FPGA
As técnicas máis comúns para implementar capacidades de depuración en circuíto en FPGA usan un analizador lóxico incorporado, equipos de proba externos ou hardware de sonda de sinal dedicado integrado no tecido FPGA. O analizador lóxico embebido adoita implementarse usando un tecido FPGA e insírese no deseño. O JTAG utilízase para acceder ao analizador e os datos capturados pódense mostrar nun PC. Cando se usa un equipo de proba externo, o deseño da FPGA en proba modifícase para que os sinais FPGA internos seleccionados sexan encamiñados aos pinos de saída. Estes pinos pódense observar despois a través do equipo de proba externo. Cando se utiliza hardware de sonda de sinal dedicado, pódese ler unha ampla selección de sinais internos en tempo real. Algunhas implementacións de sonda poden incluso usarse para escribir para rexistrar ou localizar a memoria, mellorando aínda máis as capacidades de depuración. Vexamos con máis detalle o advantages e desavantatages de cada unha destas técnicas e despois mira un exampdeseño do ficheiro para ver como poden afectar estes enfoques diferentes no tempo global de depuración.
Analizador lóxico integrado de depuración FPGA en circuito
O concepto do analizador lóxico incorporado foi un resultado directo das capacidades de depuración ad-hoc en circuíto que os deseñadores implementaron cando se utilizaron por primeira vez os FPGA. Os analizadores lóxicos incorporados engadiron novas capacidades e eliminaron a necesidade de que o deseñador desenvolva o seu propio analizador. A maioría dos FPGA ofrecen estas capacidades e terceiros ofrecen analizadores estándar (Identify®, de Synopsys, é un example) que poden interactuar facilmente con ferramentas de nivel superior para mellorar aínda máis a produtividade.
A funcionalidade do analizador lóxico insírese no deseño, utilizando o tecido FPGA e os bloques de memoria incorporados como buffers de rastrexo, como se ilustra na Figura 2. Tamén se crean recursos de activación para que as interaccións de sinal complexas poidan seleccionarse e capturarse facilmente. O acceso ao analizador para o control e a transferencia de datos realízase normalmente a través do estándar JTAG porto para simplificar os requisitos da interface. Os datos capturados pódense mostrar nun PC usando común viewsoftware de ing e normalmente reflicte unha saída de forma de onda dun simulador lóxico viewestilo ing.
O adiantotagEste enfoque é que non se utilizan pins de E/S FPGA adicionais, só o estándar JTAG sinais. Os núcleos IP do analizador lóxico incorporado adoitan ser relativamente económicos e, nalgúns casos, poden ser unha opción para as ferramentas de síntese ou simulación de FPGA existentes. Nalgúns casos, o analizador lóxico incorporado tamén pode proporcionar saídas adicionais en E/S non utilizadas, se é máis conveniente. Unha das desvantaxestagUnha desvantaxe desta estratexia é que se require unha gran cantidade de recursos FPGA. En particular, se se usan búferes de rastrexo, isto reducirá o número de memorias de bloques dispoñibles. Se se necesita un búfer amplo, isto tamén suporá unha contrapartida en contra da profundidade da memoria (xa que o uso dunha memoria máis ampla resulta nunha menor profundidade de memoria), unha gran desvantaxe.tage cando se usan dispositivos máis pequenos. Quizais o maior inconveniente desta técnica sexa que cada vez que se fai un axuste na colocación da sonda, é necesario recompilar e reprogramar o deseño. Cando se usa un dispositivo grande, este proceso pode levar moito tempo. Debido á forma en que se colocan as sondas de sinal no deseño, pode ser difícil correlacionar as relacións de temporización do sinal. Ademais, os atrasos entre as sondas de sinal non son consistentes e, polo tanto, as relacións de tempo son difíciles de comparar. Esta é unha dificultade especial ao comparar sinais asíncronos ou sinais de diferentes dominios de tempo.
Depuración de FPGA en circuíto: equipamento de proba externo
O uso de código de depuración en circuíto xunto con equipos de proba externos foi un desenvolvemento natural cando xa estaba dispoñible un analizador lóxico externo para probar o sistema. Ao crear un código de depuración sinxelo para identificar e seleccionar sinais de proba internos e aplicalos ás E/S FPGA, como se mostra na Figura 3, foi posible aproveitar as capacidades avanzadas dos analizadores (como grandes búfers de traza, secuencias de activación complexas e múltiples viewopcións de depuración) para crear ambientes de depuración sinxelos pero potentes. Capacidades máis complexas no circuíto para opcións de disparo avanzadas poden minimizar o número de saídas necesarias. Por example, seleccionar enderezos específicos nun bus amplo pode ser prohibitivo se fosen necesarios pinos externos.
O uso da lóxica FPGA interna reduce drasticamente os requisitos de E/S e mesmo pode buscar patróns de enderezos específicos (quizais unha secuencia de chamada e devolución) para depurar problemas máis complexos. Se hai unha interface de usuario común dispoñible, isto pode simplificar a curva de aprendizaxe e mellorar a produtividade.
O adiantotagEste enfoque é que aproveita o custo do equipo de proba externo e, polo tanto, non hai un custo adicional de ferramenta. Algúns núcleos IP de circuítos de depuración están dispoñibles en fabricantes de equipos ou fabricantes de FPGA, e poden ser moi baixos ou incluso gratuítos. A cantidade de recursos FPGA necesarios para implementar a lóxica de selección de sinal é moi pequena e, dado que a función de rastrexo faise mediante o analizador lóxico externo, non se necesitan memorias de bloque. Dado que a lóxica de selección é barata, tamén se pode admitir un gran número de canles con activación ampla. O analizador lóxico pode funcionar tanto nun modo de temporización como nun modo de estado, o que axuda a illar algúns problemas de temporización.
O desafortunadotagOs deste enfoque poden incluír a necesidade de mercar un analizador lóxico, se un aínda non está asignado ao proxecto. Esta desvantaxetage pode ser suficiente para desalentar este enfoque en moitos casos. Teña en conta, non obstante, que están dispoñibles algunhas opcións de analizador lóxico de baixo custo que usan o PC ou unha tableta para a súa visualización, o que fai que esta opción sexa moito máis rendible para requisitos simples de depuración.
O número de pinos FPGA consumidos pode ser outro inconvenientetage se é necesario observar autobuses anchos, é necesaria unha planificación significativa para a disposición da placa e a adición de conectores de depuración. Este requisito é a maioría das veces difícil de predicir no inicio da fase de deseño e outra complexidade non desexada. Semellante ao enfoque do analizador lóxico incorporado, a estratexia de proba externa require recompilar e reprogramar un deseño, cando se necesita cada novo experimento.
A desvantaxe comúntagAs diferenzas destas dúas técnicas (o uso de recursos no chip, que tamén poden afectar o rendemento de temporización do deseño e crear requisitos de depuración adicionais), a necesidade de recompilar e reprogramar o deseño (o que pode engadir horas ou incluso días á programación de depuración), a planificación inicial necesaria para identificar escenarios de proba probables e o uso de recursos adicionais de E/S no chip crearon a necesidade dunha estratexia sen estes inconvenientes. Unha resposta foi engadir lóxica de depuración dedicada á estrutura FPGA nalgúns dispositivos. O resultado foi a depuración no circuíto mediante sondas de hardware.
Depuración de FPGA en circuíto: sondas de hardware
O uso de sondas de hardware simplifica drasticamente as técnicas de depuración en circuíto para FPGA. Esta técnica implementada como unha función Live Probe nos dispositivos SmartFusion2®SoC FPGA e IGLOO®2 FPGA, engade liñas de sonda dedicadas ao tecido FPGA para observar a saída de calquera bit de rexistro de elemento lóxico. Como se mostra no diagrama de bloques da Figura 4, as sondas de hardware están dispoñibles en dúas canles de sonda A e B.
As saídas de rexistro seleccionadas (puntos de sonda), como a que se obtén na parte inferior da figura, envíanse por riba das dúas canles de sonda e, se se seleccionan, pódense aplicar á canle A ou B. Estes sinais de canle en tempo real pódense enviar aos pinos Probe A e Probe B dedicados do dispositivo. Os sinais da sonda A e da sonda B tamén se poden encamiñar internamente a un analizador lóxico integrado.
Teña en conta que as características de temporización dos pinos da sonda son regulares e teñen unha desviación insignificante dun punto de sonda a outro, polo que é moito máis fácil comparar as características de temporización dos sinais en tempo real. Os datos pódense capturar ata 100 MHz, polo que é apropiado para a maioría dos deseños de destino.
Quizais o máis importante é que as localizacións dos puntos de sonda, xa que non se seleccionan como parte do deseño implementado (seleccionan a través de hardware dedicado mentres o deseño se executa na FPGA), pódense cambiar rapidamente enviando os datos de selección ao dispositivo. Non é necesario recompilar e reprogramar o deseño.
Para simplificar aínda máis o uso da función Live Probe, a ferramenta de software de depuración asociada ten acceso a todas as localizacións de sinal da sonda mediante unha depuración xerada automaticamente file. Como se mostra na Figura 5, o nome do sinal pódese seleccionar da lista de sinal e aplicarse á canle desexada. Isto pódese facer aínda que o deseño estea en execución para que a actividade de sondaxe dentro do deseño sexa fluida e moi eficiente.
En moitos casos, a capacidade de sonda de hardware, como Live Probe, pódese usar xunto co analizador lóxico embebido descrito anteriormente e as técnicas de proba externas.
Como se mostra na Figura 6, a capacidade de Live Probe para seleccionar sinais "sobre a marcha" permite cambiar de forma rápida e sinxela os sinais baixo observación sen necesidade de recompilar o deseño. Un analizador lóxico ou osciloscopio externo pode observar facilmente os sinais probados, como se ilustra na parte superior dereita da figura nos pines de saída da sonda dedicados. Alternativamente (ou quizais incluso ademais de) o analizador lóxico interno (o bloque ILA Identify, mostrado na figura) pódese usar para observar os pines da sonda. Os sinais da sonda poden ser capturados polo ILA e observados na xanela de forma de onda. As localizacións das sondas pódense cambiar sen necesidade de recompilar o deseño de destino.
Teña en conta que as capacidades adicionais para activar e rastrexar pódense usar para mellorar a funcionalidade da sonda, facilitando incluso detectar problemas de deseño complexos.
Tamén hai dispoñibles capacidades adicionais de depuración de hardware nos dispositivos SmartFusion2 SoC FPGA e IGLOO2 FPGA. Unha destas capacidades, chamada Active Probe, pode ler ou escribir de forma dinámica e asíncrona en calquera bit de rexistro de elemento lóxico. Un valor escrito persiste durante un único ciclo de reloxo para que o funcionamento normal poida continuar, o que a converte nunha ferramenta de depuración moi valiosa. Active Probe é de especial interese se se desexa unha observación rápida dun sinal interno (quizais simplemente para comprobar que está activo ou no estado desexado, como un sinal de reinicio), ou se é necesario probar rapidamente unha función lóxica escribindo nun punto de sonda.
(quizais para iniciar unha transición de máquina de estados establecendo rapidamente un valor de entrada para illar un problema de fluxo de control).
Outra capacidade de depuración proporcionada por Microsemi é Memory Debug. Esta característica permite ao deseñador ler ou escribir de forma dinámica e asíncrona nun bloque SRAM de tecido FPGA seleccionado. Como se ilustra na captura de pantalla da ferramenta de depuración (Figura 7), cando se selecciona a pestana Bloques de memoria, o usuario pode seleccionar a memoria desexada para ler, executar unha captura de instantánea da memoria, modificar os valores da memoria e, a continuación, escribir os valores de novo no dispositivo. Isto pode ser particularmente útil para comprobar ou configurar os búfers de datos utilizados nos portos de comunicacións para o bloc de notas orientado á computación ou mesmo para o código executado por unha CPU integrada. A depuración de erros dependentes de datos complexos é significativamente máis rápida e sinxela cando as memorias se poden observar e controlar con tanta rapidez.
Unha vez depurado un deseño, pode ser desexable desactivar as capacidades de depuración de hardware para protexer a información confidencial. Un atacante podería usar estas mesmas instalacións para ler información crítica ou cambiar a configuración do sistema que podería permitir un fácil acceso a partes sensibles do sistema. Microsemi engadiu funcións para permitir que o deseñador protexa o dispositivo despois de completar a depuración. Por example, o acceso a Live Probe e Active Probe pódese bloquear para desactivar completamente a función como posible medio de ataque (incluso elimina a posibilidade de que a actividade da sonda cree algún patrón na corrente de subministración que se poida usar para intentar observar indirectamente os datos da sonda). Alternativamente, o acceso ás partes seleccionadas do deseño pódese bloquear para evitar o acceso só a esas seccións. Isto pode ser conveniente se só unha parte do deseño debe estar segura, facendo que o resto do deseño aínda sexa accesible para probas de campo ou análise de erros.
Gráfico comparativo de depuración en circuito
Agora que unha re detalladaview das tres principais técnicas de depuración de hardware en circuíto describiuse un gráfico resumo, como se mostra na Figura 8, que detalla os distintos avances.tages e desavantatages de cada método. Lembrando que algunhas técnicas poden usarse en conxunto (Live Probe e Internal Logic Analyzer (ILA), como Synopsys Identify, por exemploample), podemos ver os puntos fortes e débiles clave de cada técnica. O conxunto de capacidades de depuración de hardware no circuíto (Live Probe, Active Probe e Memory Debug, chamadas conxuntamente SmartDebug), son as máis febles en comparación coas outras técnicas no que respecta ao número total de sondas dispoñibles (un círculo vermello) e son máis febles que as mellores (círculo amarelo) cando se considera a velocidade de captura (o equipo de proba externo pode ser máis rápido).
As técnicas baseadas en ILA, como Synopsys Identify, son máis débiles en comparación coas outras técnicas e cando se consideran os requisitos de recursos FPGA. As técnicas externas baseadas en equipos de proba son máis débiles por unha serie de consideracións, sendo o custo, o impacto no tempo do deseño e a sobrecarga do movemento da sonda (debido á necesidade de recompilar o deseño) os máis onerosos. Quizais a solución óptima sexa unha combinación de SmartDebug e unha das outras técnicas, para que a debilidade do número de canles de SmartDebug se poida mitigar e a desvantaxe do movemento do punto de sonda.tages das outras técnicas reducidas tamén.
Clasificacións de sinal
Pódese facer unha distinción útil entre algúns dos tipos de sinais máis comúns e isto pode axudar á hora de planificar un enfoque de depuración. Por exampÉ dicir, os sinais que non cambian agás durante o arranque do sistema, como o reinicio do sistema, o reinicio de bloques ou os rexistros de inicialización, pódense clasificar como sinais estáticos. A estes tipos de sinais accédese de forma máis eficiente a través dunha ferramenta que poida observar e controlar o sinal facilmente, sen necesidade dun longo ciclo de recompilación. Active Probe é unha excelente ferramenta para depurar sinais estáticos. Do mesmo xeito, os sinais que cambian con máis frecuencia pero que seguen sendo estáticos a gran maioría do tempo, pódense clasificar como pseudoestáticos e tamén se depuran de forma máis eficaz usando Active Probe. Os sinais que cambian con frecuencia, como os sinais de reloxo, pódense clasificar como dinámicos e non se accede con tanta facilidade a través de Active Probe. Live Probe é unha mellor opción para observar estes sinais.
Caso de uso de depuración simple
Agora que temos unha mellor comprensión das distintas opcións de depuración no circuíto, vexamos un deseño sinxelo.ample para ver como funcionan estas técnicas. A Figura 9 mostra un deseño FPGA sinxelo nun dispositivo FPGA SmartFusion2 SoC. O subsistema de microcontroladores (MSS) restablece o bloque IP Soft CoreSF2Reset. As entradas deste bloque son o Power On Reset, un User Fabric Reset e un External Reset. As saídas son un reinicio do User Fabric, un reinicio de MSS e un reinicio de M3. Os síntomas de erro son que non hai actividade nas E/S aínda que o dispositivo saia do estado POR correctamente. As tres opcións diferentes para depurar este erro tamén se ilustran na figura: A caixa azul (etiquetada como ETE) é para o método Equipo de proba externo; o cadro verde (etiquetado ILA) é para o método do Analizador lóxico interno; e a caixa laranxa (marcada como AP) é para o método Active Probe. Asumiremos que as posibles causas raíz do erro son entradas de restablecemento afirmadas incorrectamente no bloque IP CoreSF2Reset Soft.
Vexamos agora o proceso de depuración de tres dos métodos en circuíto descritos anteriormente.
Equipos de proba externos
Usando este método, asúmese que o equipo de proba está dispoñible e non está a ser utilizado por un proxecto de maior prioridade. Ademais, é importante ter planificado con antelación para que algunhas E/S FPGA estean dispoñibles e poidan conectarse facilmente ao equipo de proba. Ter unha cabeceira no PCB, por exemploample, sería moi útil e minimizaría o tempo dedicado a intentar identificar e conectar a un "probable sospeitoso" ou o posible curtocircuíto de pines durante a proba. O deseño terá que ser recompilado para seleccionar os sinais que queremos investigar. Esperemos que non esteamos a "pelar a cebola" e teñamos que seleccionar sinais adicionais para unha investigación máis profunda, xa que a miúdo a nosa investigación inicial só resulta en máis preguntas. En calquera caso, o proceso de recompilación e reprogramación pode levar unha cantidade significativa de tempo e, se resulta en violacións de tempo, é necesario un redeseño (todos estamos familiarizados co frustrante que pode ser intentar resolver problemas de peche de tempo, en particular, cando se están a facer os cambios de deseño para atopar un erro de deseño; todo o proceso pode levar de minutos a horas)! Tamén é importante lembrar que se o deseño non ten E/S de usuario libres, este método non se pode implementar. Ademais, este método é estruturalmente intrusivo para o deseño e os erros relacionados co tempo poden desaparecer ou reaparecer entre iteracións.
Analizador lóxico interno
Usando este método, o ILA debe inserirse no deseño usando recursos de tecido e, a continuación, debe recompilarse. Teña en conta que se o ILA xa foi instanciado, os sinais que queremos investigar poden non estar instrumentados, o que tamén requiriría unha recompilación. Este proceso corre o risco de cambiar o deseño orixinal e violar as limitacións de tempo. Se se cumpre o tempo, o deseño debe ser reprogramado e reiniciado. Todo este proceso pode levar varios minutos ou incluso horas se os tempos de recompilación son longos e se necesitan varias pasadas. Este enfoque é estruturalmente intrusivo e pode producir problemas similares aos descritos cando se utiliza o método anterior.
Sonda activa
Usando este método, o Active Probe pódese apuntar á fonte dos distintos sinais de reinicio, todos eles orixinados por saídas de rexistro (como é común en calquera boa práctica de deseño dixital). Os sinais son seleccionados un a un, nun menú de sonda activa que se mostra na Figura 10 a continuación. Os valores de sinal seleccionados pódense ler e móstranse na xanela de datos de Active Probe. Calquera afirmación errónea é facilmente identificada. Esta proba pódese facer inmediatamente sen necesidade de recompilar e reprogramar o dispositivo e non é intrusiva estruturalmente nin procedimentalmente. Todo o proceso leva só uns segundos. Este método tamén pode crear controlabilidade (alterando valores de forma asíncrona) que os outros dous métodos non permitirán. Neste particular example, o sinal de reinicio orixinado por un rexistro pódese probar facilmente e descubrir que se mantén en estado activo.
A alternancia momentánea do sinal de reinicio pódese conseguir manipulando de forma asíncrona o rexistro que xera os sinais de descanso.
Caso de uso de depuración máis complexo
O deseño anterior era moi sinxelo e é útil como introdución ao uso das técnicas de deseño descritas, pero un ex máis complexoample pode ser aínda máis ilustrativo. Moitas veces o sinal de interese non é un sinal estático como era no noso simple example pero é dinámico. Un sinal dinámico común é un reloxo intermedio, quizais usado para cronometrar un apretón de mans para unha interface en serie. A Figura 11 mostra un deseño deste tipo co núcleo Soft IP do usuario, neste caso, unha interface serie personalizada conectada ao bus APB do sistema. Os síntomas dos erros son que non hai actividade na interface serie personalizada dos usuarios e que cando un mestre de bus APB emite unha transacción para acceder á interface serie entra nunha condición de excepción que indica un apretón de mans incorrecto. Estas condicións parecen descartar unha causa estática, como un sinal de reinicio incorrecto, xa que a máquina de estado da transacción parece non estar funcionando ao ritmo esperado e, polo tanto, provoca a excepción. Pénsase que a causa raíz é o xerador de frecuencia de reloxo dentro do núcleo IP do usuario.
Se non se executa coa frecuencia correcta, produciranse os erros descritos.
Nesta situación probablemente sexa unha mellor estratexia substituír o enfoque Active Probe polo Live Probe. Isto está ilustrado na figura anterior mediante a caixa LP de cor laranxa, usando o JTAG sinal para a selección da fonte da sonda.
Equipos de proba externos
Para este caso, a metodoloxía é moi similar á ex simple descrita anteriormenteample. O sinal do reloxo do usuario lévase ao punto de proba (esperemos que nunha cabeceira) e é necesaria unha recompilación que leva moito tempo. Tamén pode ser útil sacar un sinal de referencia, quizais un reloxo do sistema que se use para rexistrar a IP dos usuarios como sinal de comparación. Estaremos sometidos de novo á necesidade de recompilar e reprogramar polo que todo o proceso pode levar un tempo importante.
Analizador lóxico interno
Este caso é moi parecido ao simple example. Débese inserir o ILA, ou definir o sinal desexado, e executar un ciclo de recompilación e reprogramación. Todos os problemas descritos anteriormente aínda teñen como resultado un tempo de ciclo de depuración significativo. Non obstante, hai unha complexidade adicional. O reloxo que manexa o ILA debe ser sincrónico e, idealmente, moito máis rápido con respecto ao reloxo que se debe observar desde o núcleo Soft IP do usuario. Se estes reloxos son asíncronos ou non teñen as relacións de tempo correctas, a captura de datos será imprevisible e unha posible fonte de confusión para o proceso de depuración.
Teña en conta que se o reloxo IP Soft do usuario non se xera no chip (quizais se recupere da interface en serie), o deseñador pode ter que engadir un módulo de reloxo para xerar un reloxo ILA máis rápido usando recursos adicionais e posiblemente creando unha violación de tempo.
Sonda en directo
Usando este método, o Live Probe pódese apuntar rapidamente á fonte do reloxo do usuario e a calquera outra fonte do reloxo dun rexistro para buscar a causa raíz do erro. O Live Probe mostrará as saídas de sinal seleccionadas en tempo real e, polo tanto, calquera relación de tempo entre os sinais é moito máis fácil de determinar. Todo o proceso leva só uns segundos.
Outras funcións de depuración para interfaces serie
Tamén é importante sinalar que hai moitas capacidades de depuración adicionais nos dispositivos SmartFusion2 SoC FPGA e IGLOO2 FPGA que se poden usar en interfaces serie, como a do anterior ex.ampo deseño onde os erros son aínda máis complicados. Depuración de SERDES, por exemploample, ofrece capacidades de depuración específicas para as interfaces serie dedicadas de alta velocidade. Algunhas das funcións de depuración de SERDES inclúen soporte para probas PMA (como xeración de patróns PRBS e probas de loopback) para múltiples configuracións de proba SERDES con reconfiguración a nivel de rexistro para evitar o uso do fluxo de deseño completo para facer cambios de configuración, e informes de texto que amosan protocolos configurados, rexistros de configuración SERDES e rexistros de configuración de carril. Estas funcións fan que a depuración de SERDES sexa moito máis sinxela e pódese usar xunto con Live Probe e Active Probe para acelerar aínda máis a depuración de circuítos complexos.
A ferramenta de depuración de memoria descrita anteriormente tamén se pode usar xunto con SERDES Debug para acelerar as probas. Dado que os búferes de memoria pódense inspeccionar e modificar de forma rápida e sinxela con Memory Debug, é posible crear rapidamente "paquetes de proba" e observar os resultados das comunicacións en bucle ou entre sistemas. O deseñador pode aproveitar estas capacidades e, polo tanto, minimizar a necesidade de "arneses de proba" especializados que consomen tecido FPGA adicional e que poderían afectar á sincronización do chip.
Conclusión
Este artigo describiu en detalle varias abordaxes diferentes para implementar a depuración en circuíto para FPGA e FPGA SoC: o uso dun analizador lóxico integrado, o uso de equipos de proba externos e o uso de circuítos de sonda dedicados integrados na estrutura da FPGA. Demostrouse que a adición de circuítos de sonda especializados e dedicados, como Active Probe e Live Probe ofrecidos por Microsemi en dispositivos SmartFusion2 SoC FPGA e IGLOO2 FPGA, acelera e simplifica significativamente o proceso de depuración. A capacidade de modificar rapidamente a selección de sinais internos (sen necesidade de executar un ciclo de recompilación e reprogramación que leva moito tempo) e a capacidade de sondar sinais internos (sen necesidade de usar a estrutura da FPGA e potencialmente introducir violacións de tempo) demostraron ser unha gran vantaxe.tagé ao depurar deseños FPGA. Ademais, describiuse o uso de varias metodoloxías, que poden traballar en conxunto para proporcionar unha capacidade de depuración aínda máis completa. Finalmente, dous exampProporcionáronse casos de uso de le debug para ilustrar as compensacións entre os métodos descritos.
Para saber máis
- FPGA IGLOO2
- FPGAs SoC SmartFusion2
Microsemi Corporation (Nasdaq: MSCC) ofrece unha carteira completa de solucións de sistemas e semicondutores para comunicacións, defensa e seguridade, aeroespacial e mercados industriais. Os produtos inclúen circuítos integrados de sinais mixtos analóxicos de alto rendemento e endurecidos pola radiación, FPGA, SoC e ASIC; produtos de xestión de enerxía; dispositivos de temporización e sincronización e solucións horarias precisas, establecendo o estándar mundial para o tempo; dispositivos de procesamento de voz; solucións de RF; compoñentes discretos; tecnoloxías de seguridade e escalable anti-tampprodutos; circuítos integrados e midspans de alimentación por Ethernet; así como capacidades e servizos de deseño personalizado. Microsemi ten a súa sede en Aliso Viejo, California, e conta con aproximadamente 3,400 empregados en todo o mundo. Máis información en www.microsemi.com.
© 2014 Microsemi Corporation. Todos os dereitos reservados. Microsemi e o logotipo de Microsemi son marcas comerciais de Microsemi Corporation. Todas as outras marcas comerciais e marcas de servizo son propiedade dos seus respectivos propietarios.
Sede Corporativa Microsemi
- Un Enterprise, Aliso Viejo CA 92656 USA
- Dentro EUA: +1 800-713-4113
- Fóra EUA: +1 949-380-6100
- Vendas: +1 949-380-6136
- Fax: +1 949-215-4996
- Correo electrónico: sales.support@microsemi.com
FAQ
- P: Cal é a frecuencia máxima de captura de datos do dispositivo?
R: O dispositivo admite a captura de datos de ata 100 MHz, o que é axeitado para a maioría dos deseños de obxectivos. - P: Necesito recompilar o deseño cando use circuítos de sonda para a depuración?
R: Non, as localizacións dos puntos de sonda pódense cambiar rapidamente sen necesidade de recompilar nin reprogramar o deseño.
Documentos/Recursos
![]() |
Depuración de FPGA microsemi en circuito [pdfInstrucións Depuración de FPGA en circuito, depuración de FPGA, depuración |