Creación de prototipos FPGA - FPGA prototyping

La creación de prototipos de matriz de puertas programables en campo ( creación de prototipos FPGA ), también conocida como creación de prototipos basada en FPGA, creación de prototipos ASIC o creación de prototipos de sistema en chip (SoC), es el método para crear prototipos de sistemas en chip y diseños de circuitos integrados específicos de la aplicación. en FPGA para verificación de hardware y desarrollo temprano de software .

Los métodos de verificación para el diseño de hardware , así como el codiseño inicial de software y firmware , se han convertido en la corriente principal. La creación de prototipos de diseños de SoC y ASIC con uno o más FPGA y software de automatización de diseño electrónico (EDA) se ha convertido en un buen método para hacerlo.

Por qué la creación de prototipos es importante

  1. Ejecutar un diseño de SoC en un prototipo de FPGA es una forma confiable de garantizar que sea funcionalmente correcto. Esto se compara con los diseñadores que solo confían en simulaciones de software para verificar que el diseño de su hardware sea sólido. Aproximadamente un tercio de todos los diseños actuales de SoC están libres de fallas durante la primera pasada de silicio, y casi la mitad de todas las repeticiones de giro son causadas por errores lógicos funcionales. Una única plataforma de creación de prototipos puede proporcionar verificación de la funcionalidad de diseño de hardware, firmware y software de aplicación antes de la primera pasada de silicio.
  2. El tiempo de comercialización (TTM) se reduce a partir de la creación de prototipos FPGA: en la sociedad actual impulsada por la tecnología, los nuevos productos se introducen rápidamente y no tener un producto listo en una ventana de mercado determinada puede costarle a la empresa una cantidad considerable de ingresos . Si un producto se lanza demasiado tarde en una ventana de mercado, entonces el producto podría volverse inútil , costando a la empresa su capital de inversión en el producto. Después del proceso de diseño, los FPGA están listos para la producción, mientras que los ASIC de celda estándar tardan más de seis meses en llegar a la producción.
  3. Costo de desarrollo: el costo de desarrollo de la cinta de diseño ASIC / SoC de 90 nm es de alrededor de $ 20 millones, con un conjunto de máscaras que cuesta más de $ 1 millón solo. Se espera que los costos de desarrollo de los diseños de 45 nm superen los $ 40 millones. Con el aumento del costo de los juegos de máscaras y la disminución continua del tamaño de los circuitos integrados, minimizar el número de vueltas a girar es vital para el proceso de desarrollo.

Diseño para prototipos

El diseño para la creación de prototipos ( DFP ) se refiere al diseño de sistemas que son susceptibles de creación de prototipos . Muchos de los obstáculos que enfrentan los equipos de desarrollo que adoptan prototipos FPGA se pueden resumir en tres "leyes":

  • Los SoC son más grandes que los FPGA
  • Los SoC son más rápidos que los FPGA
  • Los diseños de SoC son hostiles a FPGA

Poner un diseño de SoC en un prototipo de FPGA requiere una planificación cuidadosa para lograr los objetivos de creación de prototipos con un esfuerzo mínimo. Para facilitar el desarrollo del prototipo, las mejores prácticas denominadas Diseño para prototipos influyen tanto en el estilo de diseño de SoC como en los procedimientos del proyecto aplicados por los equipos de diseño. Las recomendaciones de procedimiento incluyen agregar convenciones de DFP a los estándares de codificación RTL, emplear un entorno de simulación compatible con prototipos e instituir una estrategia de depuración del sistema junto con el equipo de software.

Problemas de particionamiento

Debido a la mayor complejidad de los circuitos y la reducción del tiempo de comercialización, la necesidad de verificación de los diseños de circuitos integrados específicos de la aplicación (ASIC) y de sistemas en chips (SoC) está creciendo. Las plataformas de hardware se están volviendo más prominentes entre los ingenieros de verificación debido a la capacidad de probar diseños de sistemas a alta velocidad con relojes de bus en chip, en comparación con los relojes de simulación que pueden no proporcionar una lectura precisa del comportamiento del sistema. Estos diseños de puertas multimillonarias generalmente se colocan en una plataforma de creación de prototipos de múltiples FPGA con seis o más FPGA, ya que no pueden caber por completo en una sola FPGA. Cuanto menor sea el número de FPGA, el diseño debe dividirse para reducir el esfuerzo del ingeniero de diseño. A la derecha hay una imagen de una plataforma de creación de prototipos basada en FPGA que utiliza una configuración de FPGA dual.

Plataforma de creación de prototipos basada en FPGA de Aldec con configuración de FPGA dual.
Solución de creación de prototipos ASIC HES-7 de Aldec

Los diseños o listas de red RTL del sistema deberán dividirse en cada FPGA para poder ajustar el diseño a la plataforma de creación de prototipos. Esto presenta nuevos desafíos para el ingeniero, ya que la partición manual requiere un gran esfuerzo y con frecuencia da como resultado una velocidad deficiente (del diseño bajo prueba). Si el número de particiones se puede reducir o el diseño completo se puede colocar en un solo FPGA, la implementación del diseño en la plataforma de creación de prototipos se vuelve más fácil.

Equilibre los recursos FPGA mientras crea particiones de diseño

Al crear particiones de circuito, los ingenieros deben observar primero los recursos disponibles que ofrece la FPGA, ya que el diseño se colocará en la estructura de la FPGA. La arquitectura de cada FPGA depende del fabricante, pero el objetivo principal en el diseño de particiones es tener un equilibrio uniforme en la utilización de recursos de FPGA. Varios recursos FPGA incluyen tablas de búsqueda (LUT), flip-flops D , RAM de bloques , procesadores de señales digitales (DSP), búferes de reloj, etc. Antes de equilibrar las particiones de diseño, también es valioso para el usuario realizar una optimización lógica global para elimine cualquier lógica redundante o no utilizada. Un problema típico que surge con la creación de particiones balanceadas es que puede dar lugar a conflictos de tiempo o recursos si el corte se realiza en muchas líneas de señal. Para tener una estrategia de partición totalmente optimizada, el ingeniero debe considerar cuestiones como las limitaciones de tiempo / energía y la ubicación y el enrutamiento, mientras mantiene una partición equilibrada entre los FPGA. Centrarse estrictamente en un solo problema durante una partición puede crear varios problemas en otra.

Colocación y enrutamiento de particiones

Para lograr un lugar y un enrutamiento óptimos para los diseños con particiones, el ingeniero debe centrarse en el recuento de pines de FPGA y las señales entre FPGA. Después de dividir el diseño en FPGA separados, el número de señales entre FPGA no debe exceder el número de pines en el FPGA. Esto es muy difícil de evitar cuando los diseños de circuitos son inmensos, por lo que las señales deben utilizar estrategias como la multiplexación por división de tiempo (TDM), en la que se pueden transferir múltiples señales a través de una sola línea. Estas múltiples señales, llamadas subcanales, se turnan para transferirse a través de la línea en un intervalo de tiempo. Cuando la relación TDM es alta, la frecuencia del reloj del bus debe reducirse para adaptarse a los intervalos de tiempo para cada subcanal. Al reducir la frecuencia del reloj, se obstaculiza el rendimiento del sistema.

Requisitos de tiempo

Los diseños de sistemas generalmente abarcan varios dominios de reloj con señales que atraviesan dominios separados. Los osciladores de reloj integrados y las líneas de reloj globales generalmente mitigan estos problemas, pero a veces estos recursos pueden ser limitados o no cumplir con todos los requisitos de diseño. Los relojes internos deben implementarse dentro de los dispositivos FPGA, ya que las conexiones de la línea de reloj y los búferes de reloj están limitadas entre las FPGA. Los diseños de reloj interno que están divididos en múltiples FPGA deben replicar el generador de reloj dentro de la FPGA, asegurando una baja desviación de reloj entre las señales entre FPGA. Además, cualquier lógica de reloj con compuerta debe transformarse en habilitaciones de reloj para reducir la desviación mientras se opera a frecuencias de reloj altas.

Los cruces de dominios de reloj no deben dividirse en FPGA separados. Las señales que pasan a través del cruce deben mantenerse internas a una sola FPGA, ya que el tiempo de retardo adicional entre las FPGA puede causar problemas en un dominio diferente. También se recomienda que las señales enrutadas entre FPGA se registren.

Depuración

Una de las tareas más difíciles y que requieren más tiempo en la creación de prototipos FPGA es la depuración de diseños de sistemas. El término acuñado para esto es "FPGA infierno". La depuración se ha vuelto más difícil y requiere más tiempo con la aparición de diseños de ASIC y SoC grandes y complejos. Para depurar un prototipo de FPGA, las sondas se agregan directamente al diseño de RTL para hacer que las señales específicas estén disponibles para la observación, sintetizadas y descargadas a la plataforma del prototipo de FPGA.

Los proveedores de FPGA ofrecen una serie de herramientas de depuración estándar, incluidos ChipScope y SignalTAP. Estas herramientas pueden sondear un máximo de 1024 señales y requieren una gran cantidad de recursos de memoria y LUT. Para SoC y otros diseños, la depuración eficiente a menudo requiere acceso simultáneo a 10,000 o más señales. Si un error no puede ser capturado por el conjunto original de sondas, obtener acceso a señales adicionales resulta en una situación de "ir a casa por el día". Esto se debe a los flujos CAD largos y complejos para la síntesis y el lugar y la ruta que pueden requerir de 8 a 18 horas para completarse.

Los enfoques mejorados incluyen herramientas como Certus de Tektronix o EXOSTIV de Exostiv Labs.

Certus brinda visibilidad mejorada a nivel de RTL a la depuración basada en FPGA. Utiliza un concentrador de múltiples etapas altamente eficiente como base para su red de observación para reducir la cantidad de LUT requeridas por señal para aumentar la cantidad de señales que se pueden sondear en un espacio dado. La capacidad de ver cualquier combinación de señales es exclusiva de Certus y rompe uno de los cuellos de botella de creación de prototipos más críticos.

EXOSTIV utiliza un gran almacenamiento externo y transceptores gigabit para extraer rastros profundos de FPGA funcionando a gran velocidad. La mejora radica en su capacidad para ver grandes trazos en el tiempo como un flujo continuo o en ráfagas. Esto permite explorar escenarios de depuración extendidos que no se pueden alcanzar con las técnicas tradicionales de instrumentación incorporada. La solución afirma ahorrar tanto los recursos de E / S FPGA como la memoria FPGA a expensas de los transceptores gigabit, para una mejora de un factor de 100.000 y más en visibilidad.

Ver también

Referencias

  1. ^ "FPGA vs ASIC: diferencias entre ellos y cuál usar? - Centro de ayuda de Numato Lab" . numato.com . Consultado el 17 de octubre de 2018 .
  2. ^ a b "Copia archivada" . Archivado desde el original el 2 de febrero de 2013 . Consultado el 9 de octubre de 2012 .Mantenimiento de CS1: copia archivada como título ( enlace )
  3. ^ Rittman, Danny (5 de enero de 2006). "Creación de prototipos de nanómetros" (PDF) . Tayden Design . Consultado el 7 de octubre de 2018 .
  4. ^ a b "Prototipos de FPGA para producción ASIC estructurada para reducir costos, riesgos y TTM" . Diseño y reutilización . Consultado el 7 de octubre de 2018 .
  5. ^ "Diseños de sistemas de creación de prototipos en FPGA" . Electrónica nueva. 22 de marzo de 2011 . Consultado el 22 de marzo de 2011 .
  6. ^ "Mejores prácticas para la creación de prototipos FPGA de algoritmos MATLAB y Simulink" . EEJournal . 25 de agosto de 2011 . Consultado el 8 de octubre de 2018 .
  7. ^ a b c d e "Documento técnico en coautoría de Aldec y Xilinx" HES-7 ASIC Prototyping " , se requiere registro
  8. ^ "Copia archivada" . Archivado desde el original el 22 de enero de 2013 . Consultado el 9 de octubre de 2012 .Mantenimiento de CS1: copia archivada como título ( enlace )
  9. ^ http://www.fpga-faq.com/FAQ_Pages/prototyping.pdf
  10. ^ "Multiplexación por división de tiempo" . www.inetdaemon.com . Consultado el 8 de octubre de 2018 .
  11. ^ "Infierno FPGA" . zipcpu.com . Consultado el 5 de noviembre de 2019 .
  12. ^ "Introducción a FPGA" (PDF) .
  13. ^ "Tektronix sacude la creación de prototipos, la instrumentación integrada aumenta las placas al estado del emulador" . Revista de Ingeniería Electrónica. 30 de octubre de 2012 . Consultado el 30 de octubre de 2012 .
  14. ^ "Exostiv Labs anuncia la disponibilidad de su solución 'EXOSTIV' para depuración FPGA" . Diseño y reutilización. 14 de octubre de 2015 . Consultado el 25 de noviembre de 2015 .
  15. ^ "Romper sus cuellos de botella de creación de prototipos ASIC" . 23 de octubre de 2012 . Consultado el 30 de octubre de 2012 .
  16. ^ "¿Por qué EXOSTIV?" . 14 de octubre de 2015 . Consultado el 25 de noviembre de 2015 .
  17. ^ "Creación de prototipos ASIC / SoC" . Consultado el 12 de abril de 2020 .

enlaces externos