Depuración de FPGA en circuito de Microsemi
Información del producto
Presupuesto
- Tipo de dispositivo: Microsemi SmartFusion2 SoC FPGA
- Fecha de lanzamiento: mayo de 2014
- Capacidades de depuración: depuración de FPGA en circuito, analizador lógico integrado
- Frecuencia máxima de captura de datos: hasta 100 MHz
Abstracto
Los FPGA son elementos de diseño potentes en sistemas integrados con muchas ventajas de diseño.tagEs decir, estos dispositivos pueden tener diseños complejos con problemas de diseño complejos que requieren depuración. Detectar problemas de diseño como errores de definición, problemas de interacción del sistema y errores de sincronización del sistema puede ser un desafío. La inclusión de capacidades de depuración en circuito en una FPGA puede mejorar drásticamente la depuración de hardware y evitar incontables horas de frustración. Este artículo describe varios enfoques diferentes para la depuración en circuito de FPGA, identifica las principales desventajas y, a través de un experimento...ampEl diseño, orientado a un dispositivo FPGA SoC SmartFusion®2 de Microsemi, mostrará cómo se pueden utilizar las nuevas capacidades para acelerar la depuración y las pruebas.
Introducción
Las FPGA son elementos de diseño omnipresentes y potentes, y ahora se encuentran en prácticamente todos los sistemas embebidos. Con el aumento de la capacidad, la inclusión de complejos bloques funcionales en chip y las interfaces serie avanzadas, estos dispositivos también pueden presentar problemas de diseño complejos que requieren depuración. Detectar problemas como errores de definición funcional (a nivel de FPGA o de sistema), problemas de interacción funcional del sistema, problemas de sincronización del sistema y problemas de fidelidad de señal entre circuitos integrados (como ruido, diafonía o reflexiones) se vuelve mucho más complejo al utilizar FPGA avanzadas. La simulación es sin duda una gran ayuda para identificar muchos problemas de diseño, pero muchas interacciones reales no se manifestarán hasta que el diseño se implemente en hardware. Se han desarrollado diversas técnicas para depurar problemas de diseño complejos con el fin de simplificar el proceso. Una comprensión profunda de cada una de estas técnicas clave, incluidas las diversas ventajas...tages y desventajatages, es útil a la hora de considerar qué técnica o combinación de técnicas es adecuada para un diseño particular.
Un exampEl diseño FPGA, destinado a un dispositivo FPGA SoC SmartFusion2 de Microsemi, se puede utilizar para demostrar algunas de las ventajastages y desventajatagde estas técnicas estándar, así como las nuevas capacidades de depuración en circuito. Este ejemplo ilustrativo...ampMostraremos cómo se pueden utilizar estas diversas técnicas para acelerar la identificación y eliminación de problemas de hardware durante la depuración del hardware.
¿Por qué la depuración de FPGA es un aspecto crítico del diseño y desarrollo de sistemas?
Las FPGA tienen dos modelos de uso principales que las diferencian de otros elementos de diseño. Pueden utilizarse en el producto de producción o como vehículo de desarrollo para probar o prototipar un concepto de diseño de producción. Cuando se utilizan como vehículo de producción, las FPGA pueden ser un objetivo mucho más flexible que los vehículos de producción basados en ASIC o CPU. Esto es especialmente importante para un nuevo diseño, uno que aún no se ha implementado en hardware. Se pueden crear y probar fácilmente diseños con diferentes opciones de arquitectura para identificar el diseño óptimo. Las FPGA con procesadores en chip (FPGA SoC) también permiten combinar el procesamiento basado en CPU con funciones de aceleración basadas en FPGA asistidas por hardware. Estas ventajas...tagEs puede reducir drásticamente el tiempo necesario para el diseño, la validación, las pruebas y el análisis de fallas para el desarrollo de nuevos productos.
Al utilizarse para prototipar un diseño, por ejemplo, para un ASIC de producción, la flexibilidad de las FPGAs es una ventaja clave. Una plataforma de hardware real, incluso una que no funcione a plena velocidad, facilita enormemente la obtención de métricas detalladas de rendimiento del sistema, datos de análisis de rendimiento y resultados de pruebas de concepto de la arquitectura. La compatibilidad de las FPGAs con implementaciones reforzadas de buses estándar de la industria (como PCIe®, Gigabit Ethernet, XAUI, USB, CAN y otros) simplifica las pruebas asociadas con estas interfaces. Las familias más recientes de FPGAs con procesadores ARM en chip (FPGAs SoC) facilitan la creación de prototipos de implementaciones con procesadores integrados. El código de procesador desarrollado previamente se puede trasladar al prototipo y crear nuevo código en paralelo con el diseño del hardware.
Esta combinación de un procesador estándar con buses de interfaz estándar permite aprovechar el amplio ecosistema de bibliotecas de código, controladores, API funcionales, sistemas operativos en tiempo real e incluso sistemas operativos completos disponibles para crear un prototipo funcional con mayor rapidez. Además, una vez consolidado el diseño, el prototipo FPGA puede utilizarse para capturar extensos conjuntos de pruebas de simulación (tanto de estímulo como de respuesta) que reflejan los datos reales del sistema. Estos conjuntos de datos pueden ser invaluables para crear las simulaciones finales para un ASIC u otra implementación de producción. La ventaja...tagLos beneficios de utilizar un FPGA como prototipo de diseño pueden reducir drásticamente el tiempo de diseño, validación, pruebas y análisis de fallas para la implementación del producto final.
En ambos modelos de uso común de FPGA, la flexibilidad del FPGA como objetivo de diseño es una ventaja clave.tagEsto significa que muchos cambios e iteraciones de diseño serían la norma y, por lo tanto, la capacidad de depurar rápidamente errores de diseño sería fundamental para habilitar tantas opciones de diseño como sea posible. Sin una capacidad de depuración eficiente, gran parte de la ventaja...tagLa flexibilidad del diseño de FPGA se verá disminuida por el tiempo adicional de depuración requerido. Afortunadamente, los FPGA también pueden ofrecer características de hardware adicionales que simplifican drásticamente la depuración en tiempo real. Antes de analizar estas capacidades, veamos primero los problemas más comunes que puede presentar un diseño de FPGA para tener la información necesaria para evaluar la eficiencia y las ventajas y desventajas de las distintas herramientas de depuración.
Problemas comunes al depurar diseños FPGA
Junto con las capacidades ampliadas que ofrecen las FPGA modernas, la mayor complejidad asociada dificulta la creación de diseños sin errores. De hecho, se estima que la depuración puede ocupar más del 50 % del ciclo de diseño de sistemas embebidos. Con las presiones del tiempo de comercialización que siguen acortando el ciclo de desarrollo, la depuración de hardware del sistema inicial se relega a un segundo plano, asumiendo con demasiada frecuencia que la verificación (en sí misma un gran porcentaje)tage del cronograma de desarrollo), detectará todos los errores antes de la puesta en marcha inicial del sistema. Analicemos algunos tipos comunes de problemas del sistema para comprender mejor los desafíos que un diseño típico enfrentará durante la puesta en marcha inicial del sistema.
Los errores de definición funcional pueden ser doblemente difíciles de detectar, ya que el diseñador ha malinterpretado un requisito específico, por lo que el error puede pasarse por alto incluso al examinar cuidadosamente los detalles del diseño. Un ejemploampUn error común en la definición funcional sería cuando una transición de máquina de estados no termina en el estado correcto. Los errores también pueden manifestarse en las interfaces del sistema como un problema de interacción. La latencia de la interfaz, por ejemplo.ample, podría especificarse incorrectamente, lo que provocaría una condición inesperada de desbordamiento o subdesbordamiento del búfer.
Los problemas de sincronización a nivel de sistema son otra fuente muy común de errores de diseño. Los eventos asíncronos, en particular, son una fuente común de errores cuando no se consideran cuidadosamente los efectos de sincronización o de cruce de dominios de sincronización. Al operar a alta velocidad, este tipo de errores puede ser muy problemático y puede aparecer con muy poca frecuencia, quizás solo cuando se manifiestan patrones de datos específicos. Muchas violaciones de sincronización comunes entran en esta categoría y suelen ser muy difíciles, si no imposibles, de simular.
Las violaciones de sincronización también pueden deberse a una baja fidelidad de señal entre circuitos integrados, en particular en sistemas con múltiples líneas de alimentación para cada circuito. Una baja fidelidad de señal puede generar ruido, diafonía, reflexiones, sobrecarga y problemas de interferencia electromagnética (EMI) que a menudo se manifiestan como violaciones de sincronización. Los problemas de la fuente de alimentación, como los transitorios (en particular durante el arranque o apagado del sistema), las variaciones de carga y las altas tensiones de disipación de potencia, también pueden provocar errores misteriosos, a menudo difíciles de rastrear hasta la fuente de alimentación. Incluso cuando el diseño es completamente correcto, los problemas de fabricación de la placa pueden provocar errores. Por ejemplo, las uniones de soldadura defectuosas y los conectores mal conectados.ampPuede ser la fuente de errores e incluso depender de la temperatura o la ubicación de la placa. El uso de técnicas avanzadas de encapsulado de FPGA puede dificultar el sondeo de señales en la placa de circuito impreso, por lo que el simple acceso a la señal deseada suele ser problemático. Muchos problemas de diseño no suelen generar un error inmediato y deben propagarse por todo el diseño hasta que el error se manifieste. Rastrear el error inicial hasta su causa raíz puede ser una tarea frustrante, difícil y lenta.
Por ejemploampEs decir, un solo bit erróneo en una tabla de traducción puede no generar un error hasta muchos ciclos después. Algunas de las herramientas que analizaremos más adelante en este documento, que utilizan hardware de depuración en circuito dedicado, están diseñadas específicamente para agilizar y facilitar la búsqueda de errores. Antes de profundizar en los detalles de estas herramientas, veamos primero una simulación de una técnica de depuración basada en software popular para comprender mejor las ventajas.tages y desventajatagEs de utilizar simulación para la depuración.
Uso de simulación para depuración
Normalmente, en una simulación de diseño, todos los componentes reales, tanto internos como externos, se modelan matemáticamente como procesos de software que se ejecutan secuencialmente en una CPU estándar. Aplicar una amplia gama de estímulos al diseño y comparar el resultado esperado con el resultado de los diseños simulados es una manera sencilla de detectar los errores de diseño más obvios. En la Figura 1 se muestra una ventana que muestra una ejecución típica de simulación. La clara ventaja...tagLa ventaja de la simulación frente a la depuración basada en hardware es que la simulación puede realizarse en el software, sin necesidad de un diseño ni un banco de pruebas basados en hardware. La simulación puede detectar rápidamente numerosos errores de diseño, en particular los asociados con especificaciones incorrectas, la incomprensión de los requisitos de la interfaz, errores de función y muchos otros errores graves que se detectan fácilmente mediante vectores de estímulo simples.
La simulación es particularmente efectiva cuando el diseñador dispone de amplias combinaciones de estímulos y conoce bien los resultados. En estos casos, la simulación puede realizar pruebas casi exhaustivas de un diseño. Desafortunadamente, la mayoría de los diseños no tienen fácil acceso a conjuntos de pruebas extensos, y su creación puede requerir mucho tiempo. Crear un conjunto de pruebas que cubra el 100 % del diseño es prácticamente imposible para diseños grandes basados en FPGA, por lo que se deben utilizar atajos para intentar cubrir los elementos clave. Otra dificultad con la simulación es que no es una implementación del "mundo real" y no puede detectar eventos asíncronos, interacciones del sistema a alta velocidad ni violaciones de tiempo. Finalmente, el proceso de simulación puede ser muy lento y, si se requieren muchas iteraciones, la simulación se convierte rápidamente en la parte más lenta y, a menudo, la más costosa del proceso de desarrollo.
Como alternativa (o quizás mejor dicho, como complemento a la simulación), los diseñadores de FPGA descubrieron que podían añadir hardware de depuración al diseño de FPGA para observar y controlar señales clave dentro del dispositivo. Estas técnicas se desarrollaron originalmente como enfoques ad hoc, pero gradualmente se han convertido en una estrategia estándar de depuración de hardware. Este uso de capacidades de depuración en circuito ofrece una ventaja significativa.tages para diseños basados en FPGA y la siguiente sección explorará las tres estrategias más comunes y sus diversas ventajas.tages y desventajatages.
Enfoques comunes de depuración en circuito para FPGA
Las técnicas más comunes para implementar capacidades de depuración en circuito en FPGAs utilizan un analizador lógico embebido, un equipo de prueba externo o un hardware de sonda de señal dedicado integrado en la estructura de la FPGA. El analizador lógico embebido se implementa típicamente utilizando la estructura de la FPGA y se inserta en el diseño. El JTAG El puerto se utiliza para acceder al analizador y los datos capturados se pueden visualizar en una PC. Cuando se utiliza un equipo de prueba externo, el diseño de la FPGA bajo prueba se modifica para que las señales internas seleccionadas se dirijan a los pines de salida. Estos pines se pueden observar a través del equipo de prueba externo. Cuando se utiliza hardware de sonda de señal dedicado, se puede leer una amplia selección de señales internas en tiempo real. Algunas implementaciones de sonda incluso se pueden usar para escribir en registros o ubicaciones de memoria, lo que mejora aún más las capacidades de depuración. Veamos con más detalle las ventajas.tages y desventajatages de cada una de estas técnicas y luego mirar un ejemploampEl diseño busca ver cómo estos diferentes enfoques pueden afectar el tiempo general de depuración.
Analizador lógico integrado de depuración de FPGA en circuito
El concepto del analizador lógico embebido fue resultado directo de las capacidades de depuración en circuito ad hoc que los diseñadores implementaron cuando se utilizaron por primera vez las FPGA. Los analizadores lógicos embebidos añadieron nuevas capacidades y eliminaron la necesidad de que el diseñador desarrollara su propio analizador. La mayoría de las FPGA ofrecen estas capacidades y otros fabricantes ofrecen analizadores estándar (Identify®, de Synopsys, es un ejemplo popular).ample) que puede interactuar fácilmente con herramientas de nivel superior para mejorar aún más la productividad.
La funcionalidad del analizador lógico se integra en el diseño, utilizando la estructura FPGA y bloques de memoria integrados como búferes de trazas, como se ilustra en la Figura 2. También se crean recursos de disparo para que las interacciones de señales complejas se puedan seleccionar y capturar fácilmente. El acceso al analizador para el control y la transferencia de datos se realiza normalmente a través del estándar J.TAG puerto para simplificar los requisitos de interfaz. Los datos capturados se pueden visualizar en una PC mediante un puerto común. viewsoftware de simulación y generalmente refleja una salida de forma de onda de simulador lógico viewestilo ing.
La ventajatagLas ventajas de este enfoque son que no se utilizan pines de entrada/salida FPGA adicionales, solo los pines J estándar.TAG Señales. Los núcleos IP del analizador lógico embebido suelen ser relativamente económicos y, en algunos casos, pueden ser una opción para las herramientas de síntesis o simulación FPGA existentes. En algunos casos, el analizador lógico embebido también puede proporcionar salidas adicionales en E/S no utilizadas, si resulta más conveniente. Una de las desventajas...tagUna de las desventajas de este enfoque es que requiere una gran cantidad de recursos de FPGA. En particular, si se utilizan búferes de traza, se reducirá la cantidad de memorias de bloque disponibles. Si se necesita un búfer amplio, esto también supondrá una desventaja en cuanto a la profundidad de la memoria (ya que el uso de una memoria más amplia resulta en una menor profundidad de memoria), lo que representa una gran desventaja.tage al utilizar dispositivos más pequeños. Quizás la mayor desventaja de esta técnica es que cada vez que se ajusta la ubicación de la sonda, es necesario recompilar y reprogramar el diseño. Al utilizar un dispositivo grande, este proceso puede tardar bastante tiempo. Debido a la forma en que se colocan las sondas de señal en el diseño, puede resultar difícil correlacionar las relaciones de temporización de la señal. Además, los retardos entre las sondas de señal no son consistentes, por lo que las relaciones de temporización son difíciles de comparar. Esto supone una dificultad particular al comparar señales asíncronas o señales de diferentes dominios temporales.
Depuración de FPGA en circuito: equipo de prueba externo
El uso de código de depuración en circuito junto con equipos de prueba externos fue un desarrollo natural cuando ya se disponía de un analizador lógico externo para las pruebas del sistema. Al crear un código de depuración simple para identificar y seleccionar señales de prueba internas y aplicarlas a las E/S de la FPGA, como se muestra en la Figura 3, fue posible aprovechar las capacidades avanzadas del analizador (como búferes de trazas de gran tamaño, secuencias de disparo complejas y múltiples... viewOpciones de disparo) para crear entornos de depuración simples pero potentes. Las capacidades integradas más complejas para opciones de disparo avanzadas pueden minimizar la cantidad de salidas necesarias. Por ejemplo,ampEs decir, seleccionar direcciones específicas en un bus ancho podría resultar prohibitivo si se requirieran pines externos.
El uso de la lógica interna de FPGA reduce drásticamente los requisitos de E/S e incluso permite buscar patrones de direcciones específicos (quizás una secuencia de llamada y retorno) para depurar problemas más complejos. Si se dispone de una interfaz de usuario común, se puede simplificar la curva de aprendizaje y mejorar la productividad.
La ventajatagUna ventaja de este enfoque es que optimiza el coste del equipo de prueba externo, eliminando así el coste adicional de las herramientas. Algunos núcleos IP para circuitos de depuración están disponibles a través de fabricantes de equipos o de FPGA, y pueden ser muy económicos o incluso gratuitos. La cantidad de recursos de FPGA necesarios para implementar la lógica de selección de señales es muy pequeña, y dado que la función de traza se realiza mediante el analizador lógico externo, no se necesitan memorias de bloque. Dado que la lógica de selección es económica, también admite un gran número de canales con disparo amplio. El analizador lógico puede operar tanto en modo de temporización como en modo de estado, lo que ayuda a aislar algunos problemas de temporización.
El disadvantagLas desventajas de este enfoque pueden incluir la necesidad de comprar un analizador lógico, si aún no se ha asignado uno al proyecto. Esta desventaja...tagPuede ser suficiente para desaconsejar este enfoque en muchos casos. Sin embargo, cabe destacar que están apareciendo opciones de analizadores lógicos de bajo costo que utilizan la PC o una tableta como pantalla, lo que hace que esta opción sea mucho más rentable para necesidades de depuración sencillas.
La cantidad de pines FPGA consumidos puede ser otra desventaja.tagSi es necesario observar buses anchos, se requiere una planificación exhaustiva del diseño de la placa y la adición de conectores de depuración. Este requisito suele ser difícil de predecir en las primeras fases de diseño y supone otra complejidad no deseada. Al igual que con el enfoque del analizador lógico embebido, la estrategia de pruebas externas requiere la recompilación y reprogramación del diseño cada vez que se necesita un nuevo experimento.
La desventaja comúntagLas ventajas de estas dos técnicas —el uso de recursos en chip (que también puede afectar el rendimiento temporal del diseño y generar requisitos de depuración adicionales), la necesidad de recompilar y reprogramar el diseño (que puede añadir horas o incluso días al cronograma de depuración), la planificación previa necesaria para identificar posibles escenarios de prueba y el uso de recursos adicionales de E/S en chip— crearon la necesidad de un enfoque que no presentara estas desventajas. Una respuesta fue la incorporación de lógica de depuración dedicada a la estructura FPGA en algunos dispositivos. El resultado fue la depuración en circuito mediante sondas de hardware.
Depuración de FPGA en circuito: Sondas de hardware
El uso de sondas de hardware simplifica drásticamente las técnicas de depuración en circuito para FPGAs. Esta técnica, implementada como una función de Sonda en Vivo en los dispositivos FPGA SmartFusion2®SoC e IGLOO®2, añade líneas de sonda dedicadas a la estructura del FPGA para observar la salida de cualquier bit de registro de elemento lógico. Como se muestra en el diagrama de bloques de la Figura 4, las sondas de hardware están disponibles en dos canales de sonda: A y B.
Las salidas de registro seleccionadas (puntos de sonda), como la que se muestra en la parte inferior de la figura, se enrutan por encima de los dos canales de sonda y, si se seleccionan, pueden aplicarse al canal A o al B. Estas señales de canal en tiempo real pueden enviarse a los pines dedicados de las sondas A y B del dispositivo. Las señales de las sondas A y B también pueden enrutarse internamente a un analizador lógico integrado.
Tenga en cuenta que las características de sincronización de los pines de la sonda son regulares y presentan una desviación insignificante entre puntos de la sonda, lo que facilita enormemente la comparación de las características de sincronización de las señales en tiempo real. Los datos se pueden capturar a frecuencias de hasta 100 MHz, lo que lo hace adecuado para la mayoría de los diseños de objetivos.
Quizás lo más importante es que las ubicaciones de los puntos de sonda, dado que no se seleccionan durante la implementación del diseño (se seleccionan mediante hardware dedicado mientras el diseño se ejecuta en la FPGA), se pueden cambiar rápidamente simplemente enviando los datos de selección al dispositivo. No es necesario recompilar ni reprogramar el diseño.
Para simplificar aún más el uso de la capacidad Live Probe, la herramienta de software de depuración asociada tiene acceso a todas las ubicaciones de las señales de la sonda a través de una depuración generada automáticamente. fileComo se muestra en la Figura 5, el nombre de la señal puede seleccionarse de la lista de señales y aplicarse al canal deseado. Esto puede hacerse incluso mientras el diseño está en ejecución, lo que garantiza una actividad de sondeo fluida y muy eficiente.
En muchos casos, la capacidad de sonda de hardware, como Live Probe, se puede utilizar junto con el analizador lógico integrado descrito anteriormente y las técnicas de prueba externas.
Como se muestra en la Figura 6, la capacidad de la Sonda Activa para seleccionar señales sobre la marcha permite modificar rápida y fácilmente las señales observadas sin necesidad de recompilar el diseño. Un analizador lógico externo o un osciloscopio pueden observar fácilmente las señales sondeadas, como se ilustra en la parte superior derecha de la figura, en los pines de salida dedicados a la sonda. Alternativamente (o incluso adicionalmente), se puede utilizar el analizador lógico interno (el bloque de identificación del ILA, mostrado en la figura) para observar los pines de la sonda. El ILA puede capturar las señales de la sonda y observarlas en la ventana de forma de onda. Las ubicaciones de las sondas se pueden cambiar sin necesidad de recompilar el diseño objetivo.
Tenga en cuenta que las capacidades adicionales de activación y seguimiento se pueden utilizar para mejorar la funcionalidad de la sonda, lo que facilita la detección incluso de problemas de diseño complejos.
Los dispositivos FPGA SoC SmartFusion2 e IGLOO2 también ofrecen funciones adicionales de depuración de hardware. Una de estas funciones, denominada Sonda Activa, permite leer o escribir dinámica y asíncronamente en cualquier bit de registro de un elemento lógico. Un valor escrito persiste durante un ciclo de reloj, lo que permite que el funcionamiento normal continúe, lo que la convierte en una herramienta de depuración muy útil. Sonda Activa es especialmente útil si se desea una observación rápida de una señal interna (quizás simplemente para comprobar que está activa o en el estado deseado, como una señal de reinicio), o si se necesita probar rápidamente una función lógica escribiendo en un punto de prueba.
(tal vez para iniciar una transición de máquina de estados estableciendo rápidamente un valor de entrada para aislar un problema de flujo de control).
Otra capacidad de depuración que ofrece Microsemi es la depuración de memoria. Esta función permite al diseñador leer o escribir de forma dinámica y asíncrona en un bloque SRAM de la estructura FPGA seleccionado. Como se ilustra en la captura de pantalla de la herramienta de depuración (Figura 7), al seleccionar la pestaña Bloques de memoria, el usuario puede seleccionar la memoria que desea leer, realizar una captura instantánea de la memoria, modificar sus valores y, a continuación, volver a escribirlos en el dispositivo. Esto puede ser especialmente útil para comprobar o configurar los búferes de datos utilizados en los puertos de comunicación para el scratch-pad orientado a la computación o incluso para el código ejecutado por una CPU integrada. La depuración de errores complejos que dependen de los datos es mucho más rápida y sencilla cuando las memorias se pueden observar y controlar con tanta rapidez.
Una vez depurado un diseño, puede ser conveniente desactivar las funciones de depuración de hardware para proteger la información confidencial. Un atacante podría usar estas mismas funciones para extraer información crítica o modificar la configuración del sistema, lo que podría facilitar el acceso a partes sensibles del mismo. Microsemi ha añadido funciones que permiten al diseñador proteger el dispositivo una vez finalizada la depuración. Por ejemplo:ampEs posible bloquear el acceso a las sondas activa y activa para desactivar completamente la función como posible método de ataque (incluso elimina la posibilidad de que la actividad de la sonda genere patrones en la corriente de alimentación que podrían utilizarse para intentar observar indirectamente los datos de la sonda). Como alternativa, se puede bloquear el acceso a partes seleccionadas del diseño para impedir el acceso únicamente a esas secciones. Esto puede ser conveniente si solo se necesita proteger una parte del diseño, manteniendo el resto accesible para pruebas de campo o análisis de errores.
Tabla comparativa de depuración en circuito
Ahora que un re detalladoview Se han descrito las tres principales técnicas de depuración de hardware en circuito y se ha creado un cuadro resumen, como se muestra en la Figura 8, que detalla las distintas ventajas.tages y desventajatagEs de cada método. Recordando que algunas técnicas se pueden utilizar en conjunto (Live Probe y Internal Logic Analyzer (ILA), como Synopsys Identify, por ejemplo)ampEn [le], podemos ver las principales fortalezas y debilidades de cada técnica. El conjunto de capacidades de depuración de hardware en circuito (Live Probe, Active Probe y Memory Debug, denominadas conjuntamente SmartDebug), presenta sus menores limitaciones en comparación con las demás técnicas en cuanto al número total de sondas disponibles (círculo rojo) y es inferior a la mejor (círculo amarillo) en cuanto a la velocidad de captura (el equipo de prueba externo puede ser más rápido).
Las técnicas basadas en ILA, como Synopsys Identify, presentan sus mayores deficiencias en comparación con otras técnicas y considerando los requisitos de recursos de la FPGA. Las técnicas basadas en equipos de prueba externos presentan sus mayores deficiencias en varios aspectos, siendo el coste, el impacto en la sincronización del diseño y la sobrecarga del movimiento de la sonda (debido a la necesidad de recompilar el diseño) los más onerosos. Quizás la solución óptima sea una combinación de SmartDebug y alguna de las otras técnicas, de modo que se pueda mitigar la deficiencia de SmartDebug en cuanto al número de canales y se desfavorezca el movimiento del punto de la sonda.tagTambién se redujeron los efectos de las otras técnicas.
Clasificaciones de señales
Se puede hacer una distinción útil entre algunos de los tipos de señales más comunes, lo que puede ser útil al planificar un enfoque de depuración. Por ejemplo:ampLas señales que no cambian excepto durante el arranque del sistema, como el reinicio del sistema, el reinicio de bloque o los registros de inicialización, se pueden clasificar como señales estáticas. Este tipo de señales se accede de forma más eficiente mediante una herramienta que permite observar y controlar la señal fácilmente, sin necesidad de un largo ciclo de recompilación. Active Probe es una excelente herramienta para depurar señales estáticas. De igual forma, las señales que cambian con mayor frecuencia, pero que permanecen estáticas la mayor parte del tiempo, se pueden clasificar como pseudoestáticas y también se depuran de forma más eficaz con Active Probe. Las señales que cambian con frecuencia, como las señales de reloj, se pueden clasificar como dinámicas y no son tan fáciles de acceder mediante Active Probe. Live Probe es una mejor opción para observar estas señales.
Caso de uso de depuración simple
Ahora que comprendemos mejor las distintas opciones de depuración en circuito, veamos un ejemplo de diseño simple.ampPara ver el rendimiento de estas técnicas, consulte la Figura 9. La Figura 2 muestra un diseño simple de FPGA en un dispositivo FPGA SoC SmartFusion2. El subsistema del microcontrolador (MSS) se reinicia mediante el bloque CoreSF3Reset Soft IP. Las entradas de este bloque son el reinicio al encender, el reinicio de la red de usuario y el reinicio externo. Las salidas son el reinicio de la red de usuario, el reinicio del MSS y el reinicio del M2. El error se manifiesta por la inactividad en las E/S, aunque el dispositivo sale del estado POR correctamente. La figura también ilustra las tres opciones para depurar este error: el recuadro azul (ETE) corresponde al método del equipo de prueba externo; el recuadro verde (ILA) corresponde al método del analizador lógico interno; y el recuadro naranja (AP) corresponde al método de la sonda activa. Asumiremos que las posibles causas del error son entradas de reinicio incorrectamente establecidas en el bloque CoreSFXNUMXReset Soft IP.
Veamos ahora el proceso de depuración de tres de los métodos en circuito descritos anteriormente.
Equipo de prueba externo
Con este método, se asume que el equipo de prueba está disponible y no está siendo utilizado por un proyecto de mayor prioridad. Además, es importante planificar con antelación para que algunas E/S de FPGA estén disponibles y se puedan conectar fácilmente al equipo de prueba. Tener un conector en la PCB, por ejemplo,ampSería muy útil y minimizaría el tiempo dedicado a identificar y conectar a un posible sospechoso o a un posible cortocircuito durante el sondeo. Será necesario volver a compilar el diseño para seleccionar las señales que queremos investigar. Con suerte, no tendremos que volver a analizarlo todo y seleccionar señales adicionales para una investigación más profunda, ya que a menudo nuestra investigación inicial solo genera más preguntas. En cualquier caso, el proceso de recompilación y reprogramación puede llevar mucho tiempo, y si resulta en violaciones de tiempo, se requiere un rediseño (todos sabemos lo frustrante que puede ser intentar resolver problemas de cierre de tiempo, en particular, cuando se realizan cambios de diseño para encontrar un error de diseño; todo el proceso puede llevar desde minutos hasta horas). También es importante recordar que si el diseño no tiene E/S de usuario libres, este método no se puede implementar. Además, este método es estructuralmente intrusivo para el diseño, y los errores relacionados con el tiempo pueden desaparecer o reaparecer entre iteraciones.
Analizador lógico interno
Con este método, el ILA debe insertarse en el diseño utilizando recursos de la estructura y luego debe recompilarse. Tenga en cuenta que si el ILA ya se ha instanciado, es posible que las señales que queremos investigar no se hayan instrumentado, lo que también requeriría una recompilación. Este proceso corre el riesgo de alterar el diseño original y violar las restricciones de tiempo. Si se cumplen los tiempos, el diseño debe reprogramarse y reinicializarse. Todo este proceso puede tardar varios minutos o incluso horas si los tiempos de recompilación son largos y se requieren múltiples pasadas. Este enfoque es estructuralmente intrusivo y puede generar problemas similares a los descritos con el método anterior.
Sonda activa
Con este método, la sonda activa puede apuntar a la fuente de las diversas señales de reinicio, todas provenientes de las salidas de los registros (como es habitual en cualquier buena práctica de diseño digital). Las señales se seleccionan una a una desde el menú de la sonda activa, como se muestra en la Figura 10 a continuación. Los valores de las señales seleccionadas se pueden leer y se muestran en la ventana de datos de la sonda activa. Cualquier error se identifica fácilmente. Esta prueba se puede realizar inmediatamente sin necesidad de recompilar ni reprogramar el dispositivo y no es intrusiva desde el punto de vista estructural ni procedimental. El proceso completo toma solo unos segundos. Este método también permite generar controlabilidad (modificación asincrónica de valores) que los otros dos métodos no permiten. En este ejemplo en particular...ampEs posible sondear fácilmente la señal de reinicio generada por un registro y descubrir que se mantiene en estado activo.
La conmutación momentánea de la señal de reinicio se puede lograr manipulando de forma asincrónica el registro que genera las señales de reposo.
Caso de uso de depuración más complejo
El diseño anterior fue muy simple y es útil como introducción al uso de las técnicas de diseño descritas, pero un ejemplo más complejoampPodría ser aún más ilustrativo. Muchas veces, la señal de interés no es una señal estática como lo era en nuestro ejemplo simple.ampLe, pero es dinámico. Una señal dinámica común es un reloj intermedio, que se utiliza quizás para cronometrar un protocolo de enlace para una interfaz serie. La Figura 11 muestra un diseño similar con el núcleo IP suave del usuario; en este caso, una interfaz serie personalizada conectada al bus APB del sistema. Los síntomas de error son la inactividad en la interfaz serie personalizada del usuario y que, cuando un maestro del bus APB emite una transacción para acceder a la interfaz serie, se produce una condición de excepción que indica un protocolo de enlace incorrecto. Estas condiciones parecen descartar una causa estática, como una señal de reinicio incorrecta, ya que la máquina de estados de la transacción parece no funcionar a la velocidad esperada y, por lo tanto, causa la excepción. Se cree que la causa raíz es el generador de frecuencia de reloj dentro del núcleo IP del usuario.
Si no funciona a la frecuencia correcta se producirán los errores descritos.
En esta situación, probablemente sea una mejor estrategia sustituir el método de la sonda activa por el de la sonda activa. Esto se ilustra en la figura anterior con el cuadro LP de color naranja, utilizando la J.TAG Señal para la selección de la fuente de la sonda.
Equipo de prueba externo
Para este caso, la metodología es muy similar al ejemplo simple descrito anteriormente.ampLa señal del reloj del usuario se envía al punto de prueba (preferiblemente en una cabecera) y se requiere una recompilación que requiere mucho tiempo. También puede ser útil generar una señal de referencia, tal vez un reloj del sistema que se utiliza para sincronizar la IP del usuario como señal de comparación. Nuevamente, tendremos que recompilar y reprogramar, por lo que todo el proceso podría tardar bastante tiempo.
Analizador lógico interno
Este caso es muy similar al ejemplo simpleampEs necesario insertar el ILA, o definir la señal deseada, y ejecutar un ciclo de recompilación y reprogramación. Todos los problemas descritos anteriormente resultan en un tiempo de ciclo de depuración significativo. Sin embargo, existe una complejidad adicional. El reloj que controla el ILA debe ser síncrono e idealmente mucho más rápido que el reloj observado desde el núcleo IP suave del usuario. Si estos relojes son asíncronos o no tienen las relaciones de temporización correctas, la captura de datos será impredecible y una posible fuente de confusión para el proceso de depuración.
Tenga en cuenta que si el reloj IP suave del usuario no se genera en el chip (tal vez se recupera de la interfaz serial), el diseñador puede necesitar agregar un módulo de reloj para generar un reloj ILA más rápido utilizando recursos adicionales y posiblemente creando una violación de tiempo.
Sonda en vivo
Con este método, la Sonda en Vivo puede apuntar rápidamente a la fuente del reloj del usuario y a cualquier otra fuente de reloj de un registro para determinar la causa raíz del error. La Sonda en Vivo mostrará las salidas de señal seleccionadas en tiempo real, lo que facilita enormemente la determinación de cualquier relación temporal entre las señales. Todo el proceso toma solo unos segundos.
Otras funciones de depuración para interfaces seriales
También es importante señalar que hay muchas capacidades de depuración adicionales en los dispositivos SmartFusion2 SoC FPGA e IGLOO2 FPGA que se pueden usar en interfaces seriales, como la del ejemplo anterior.ampEl diseño donde los errores son aún más complicados. SERDES Debug, por ejemploample, proporciona capacidades de depuración específicas para las interfaces seriales dedicadas de alta velocidad. Algunas de las características de depuración de SERDES incluyen compatibilidad con pruebas PMA (como la generación de patrones PRBS y las pruebas de bucle invertido), compatibilidad con múltiples configuraciones de prueba SERDES con reconfiguración a nivel de registro para evitar el uso de todo el flujo de diseño para realizar cambios de configuración, e informes de texto que muestran los protocolos configurados, los registros de configuración SERDES y los registros de configuración de carril. Estas características facilitan considerablemente la depuración de SERDES y pueden utilizarse junto con Live Probe y Active Probe para agilizar aún más la depuración de circuitos complejos.
La herramienta de depuración de memoria descrita anteriormente también puede utilizarse junto con la depuración de SERDES para agilizar las pruebas. Dado que los búferes de memoria se pueden inspeccionar y modificar rápida y fácilmente con la depuración de memoria, es posible crear rápidamente paquetes de prueba y observar los resultados de las comunicaciones entre sistemas o en bucle. El diseñador puede aprovechar estas capacidades y, por lo tanto, minimizar la necesidad de arneses de prueba especializados que consumen más estructura de FPGA y podrían afectar la sincronización del chip.
Conclusión
Este artículo describe en detalle diferentes enfoques para implementar la depuración en circuito para FPGA y SoC FPGA: el uso de un analizador lógico integrado, el uso de equipos de prueba externos y el uso de circuitos de sonda dedicados integrados en la estructura FPGA. La adición de circuitos de sonda especializados y dedicados, como la sonda activa y la sonda activa, ofrecidas por Microsemi en los dispositivos FPGA SoC SmartFusion2 e IGLOO2 FPGA, demostró acelerar y simplificar significativamente el proceso de depuración. La capacidad de modificar rápidamente la selección de señales internas (sin la necesidad de ejecutar un ciclo de recompilación y reprogramación que requiere mucho tiempo) y la capacidad de sondear señales internas (sin la necesidad de usar la estructura FPGA y potencialmente introducir violaciones de tiempo) demostraron ser importantes ventajas.tages al depurar diseños de FPGA. Además, se describió el uso de múltiples metodologías que pueden trabajar juntas para proporcionar una capacidad de depuración aún más completa. Finalmente, dos ejemplosampSe presentaron casos de uso de depuración para ilustrar las compensaciones entre los métodos descritos.
Para saber más
- FPGAs IGLOO2
- FPGAs SoC SmartFusion2
Microsemi Corporation (Nasdaq: MSCC) ofrece una cartera integral de soluciones de sistemas y semiconductores para los mercados de comunicaciones, defensa y seguridad, aeroespacial e industrial. Los productos incluyen circuitos integrados analógicos de señal mixta de alto rendimiento y resistentes a la radiación, FPGA, SoC y ASIC; productos de administración de energía; dispositivos de temporización y sincronización y soluciones de tiempo preciso, estableciendo el estándar mundial para el tiempo; dispositivos de procesamiento de voz; soluciones de radiofrecuencia; componentes discretos; tecnologías de seguridad y anti-t escalablesampProductos er; circuitos integrados y midspans de alimentación a través de Ethernet; así como capacidades y servicios de diseño a medida. Microsemi tiene su sede en Aliso Viejo, California, y cuenta con aproximadamente 3,400 empleados en todo el mundo. Más información en www.microsemi.com.
© 2014 Microsemi Corporación. Reservados todos los derechos. Microsemi y el logotipo de Microsemi son marcas comerciales de Microsemi Corporation. Todas las demás marcas comerciales y marcas de servicio son propiedad de sus respectivos dueños.
Sede Corporativa Microsemi
- Uno Enterprise, Aliso Viejo CA 92656 EE. UU.
- Dentro Estados Unidos: +1 800-713-4113
- Afuera Estados Unidos: +1 949-380-6100
- Ventas: +1 949-380-6136
- Fax: +1 949-215-4996
- Correo electrónico: ventas.support@microsemi.com
Preguntas frecuentes
- P: ¿Cuál es la frecuencia máxima de captura de datos del dispositivo?
R: El dispositivo admite la captura de datos de hasta 100 MHz, lo que lo hace adecuado para la mayoría de los diseños de objetivos. - P: ¿Necesito volver a compilar el diseño cuando uso circuitos de sonda para depurar?
R: No, las ubicaciones de los puntos de prueba se pueden cambiar rápidamente sin necesidad de volver a compilar o reprogramar el diseño.
Documentos / Recursos
![]() |
Depuración de FPGA en circuito de Microsemi [pdf] Instrucciones Depuración de FPGA en circuito, depuración de FPGA, depuración |