stringtranslate.com

Prototipado FPGA

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 la verificación de hardware y el desarrollo temprano de software .

Los métodos de verificación para el diseño de hardware , así como el diseño conjunto de software y firmware , se han vuelto comunes. 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 lograrlo. [1]

Importancia

  1. La ejecución de un diseño de SoC en un prototipo de FPGA es una forma fiable de garantizar su funcionalidad correcta, en comparación con los diseñadores que solo confían en simulaciones de software para verificar que su diseño de hardware es sólido. Alrededor de un tercio de todos los diseños de SoC actuales no tienen fallos durante la primera pasada de silicio, y casi la mitad de todas las repeticiones de giros se deben a errores de lógica funcional. [2] Una única plataforma de creación de prototipos puede proporcionar verificación de la funcionalidad del diseño de hardware, firmware y software de aplicación antes de la primera pasada de silicio. [3]
  2. El tiempo de comercialización (TTM) se reduce con el prototipado de FPGA: en la sociedad impulsada por la tecnología actual, los nuevos productos se introducen rápidamente y no tener un producto listo en una ventana de mercado determinada puede costarle a una empresa una cantidad considerable de ingresos . [4] Si un producto se lanza demasiado tarde en una ventana de mercado, entonces el producto podría volverse inútil , lo que le costaría 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 producción. [4]
  3. Costo de desarrollo: el costo de desarrollo de un diseño ASIC/SoC de 90 nm es de alrededor de 20 millones de dólares, y un conjunto de máscaras cuesta más de un millón de dólares. [2] Se espera que los costos de desarrollo de los diseños de 45 nm superen los 40 millones de dólares. Con el aumento del costo de los conjuntos de máscaras y la disminución continua del tamaño de los circuitos integrados, minimizar la cantidad de reespiraciones es vital para el proceso de desarrollo.

Diseño para prototipado

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

Para implementar un diseño de SoC en un prototipo de FPGA es necesario planificar cuidadosamente para lograr los objetivos de creación de prototipos con el mínimo esfuerzo. Para facilitar el desarrollo del prototipo, las mejores prácticas denominadas "Diseño para creación de prototipos" influyen tanto en el estilo de diseño de SoC como en los procedimientos de proyecto aplicados por los equipos de diseño. Las recomendaciones de procedimiento incluyen la incorporación de convenciones DFP a los estándares de codificación RTL, el empleo de un entorno de simulación compatible con prototipos y la implementación de una estrategia de depuración del sistema en conjunto con el equipo de software.

Problemas de particionamiento

Debido a la creciente complejidad de los circuitos y a 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 chip (SoC) está creciendo. Las plataformas de hardware están cobrando cada vez más importancia entre los ingenieros de verificación debido a la capacidad de probar los diseños de sistemas a gran 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. [6] Estos diseños de varios millones de puertas suelen colocarse en una plataforma de creación de prototipos multi-FPGA con seis o más FPGA, ya que no pueden encajar completamente en un solo FPGA. Cuanto menor sea el número de FPGA que se deben dividir en particiones, menor será el esfuerzo del ingeniero de diseño. [7] A la derecha se muestra una imagen de una plataforma de creación de prototipos basada en FPGA que utiliza una configuración de doble FPGA.

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

Los diseños o listas de conexiones RTL del sistema deberán dividirse en cada FPGA para poder adaptar el diseño a la plataforma de creación de prototipos. [8] Esto presenta nuevos desafíos para el ingeniero, ya que la división manual requiere un esfuerzo tremendo y con frecuencia da como resultado una velocidad deficiente (del diseño en prueba). [7] Si se puede reducir la cantidad de particiones o se puede colocar todo el diseño 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 del FPGA mientras crea particiones de diseño

Al crear particiones de circuitos, los ingenieros primero deben observar los recursos disponibles que ofrece el FPGA, ya que el diseño se colocará en la estructura del FPGA. [7] La ​​arquitectura de cada FPGA depende del fabricante, pero el objetivo principal en la partición del diseño es tener un equilibrio uniforme de utilización de recursos del FPGA. Varios recursos de FPGA incluyen tablas de búsqueda (LUT), flip-flops D , RAM de bloque , procesadores de señal digital (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 eliminar cualquier lógica redundante o no utilizada. Un problema típico que surge con la creación de particiones balanceadas es que puede conducir a un conflicto de tiempo o recursos si el corte está en muchas líneas de señal. Para tener una estrategia de partición completamente optimizada, el ingeniero debe considerar cuestiones como las restricciones de tiempo/potencia 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 la ubicación y el enrutamiento óptimos para los diseños particionados, el ingeniero debe centrarse en el número de pines del FPGA y en las señales entre FPGA. Después de particionar el diseño en FPGA independientes, la cantidad de señales entre FPGA no debe superar el número de pines del FPGA. [9] 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), mediante la cual se pueden transferir múltiples señales a través de una sola línea. [10] Estas múltiples señales, llamadas subcanales, se transfieren por turnos a través de la línea durante un intervalo de tiempo. Cuando la relación TDM es alta, la frecuencia del reloj del bus debe reducirse para acomodar los intervalos de tiempo para cada subcanal. Al reducir la frecuencia del reloj, se obstaculiza el rendimiento del sistema. [7]

Requisitos de tiempo

Los diseños de sistemas suelen abarcar varios dominios de reloj con señales que atraviesan dominios separados. [7] Los osciladores de reloj integrados y las líneas de reloj globales suelen mitigar 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 las líneas de reloj y los búferes de reloj son limitadas entre los FPGA. Los diseños con reloj interno que se dividen en varios FPGA deben replicar el generador de reloj dentro del FPGA, lo que garantiza un desfase de reloj bajo entre las señales entre FPGA. Además, cualquier lógica de reloj con compuerta debe transformarse para permitir que el reloj reduzca el desfase mientras se opera a frecuencias de reloj altas.

Los cruces de dominios de reloj no se deben dividir en FPGAs independientes. Las señales que pasan por el cruce se deben mantener dentro de un único FPGA, ya que el tiempo de retardo adicional entre FPGAs puede causar problemas en un dominio diferente. También se recomienda que las señales enrutadas entre FPGAs se registren en registros.

Depuración

Una de las tareas más difíciles y que más tiempo consume en el prototipado de FPGA es la depuración de los diseños de sistemas. El término acuñado para esto es "el infierno de los FPGA". [11] [12] La depuración se ha vuelto más difícil y lenta con la aparición de diseños de ASIC y SoC grandes y complejos. Para depurar un prototipo de FPGA, se agregan sondas directamente al diseño RTL para que las señales específicas estén disponibles para la observación, se sinteticen y se descarguen a la plataforma del prototipo de FPGA.

Los proveedores de FPGA ofrecen una serie de herramientas de depuración estándar, entre las que se incluyen ChipScope y SignalTAP. Estas herramientas pueden analizar un máximo de 1024 señales y requieren amplios recursos de memoria y LUT. En el caso de los SoC y otros diseños, la depuración eficiente suele requerir acceso simultáneo a 10 000 o más señales. Si el conjunto original de sondas no puede detectar un error, obtener acceso a señales adicionales da como resultado una situación de “volver a casa por el día”. Esto se debe a los largos y complejos flujos de CAD para la síntesis y la ubicación y el enrutamiento que pueden requerir de 8 a 18 horas para completarse.

Los enfoques mejorados incluyen herramientas como Certus de Tektronix [13] o EXOSTIV de Exostiv Labs. [14]

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

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

Véase también

Referencias

  1. ^ "FPGA vs ASIC: ¿Diferencias entre ellos y cuál usar? – Centro de ayuda de Numato Lab". numato.com . 17 de julio de 2018 . Consultado el 17 de octubre de 2018 .
  2. ^ ab "SOCcentral: Cómo aprovechar al máximo los prototipos ASIC con FPGAs (EE Times Programmable Logic Designline 30794)". Archivado desde el original el 2 de febrero de 2013 . Consultado el 9 de octubre de 2012 .
  3. ^ Rittman, Danny (5 de enero de 2006). "Prototipos nanométricos" (PDF) . Tayden Design . Consultado el 7 de octubre de 2018 .
  4. ^ ab "Prototipado de FPGA para producción de ASIC estructurado para reducir costos, riesgos y tiempo de uso". Diseño y reutilización . Consultado el 7 de octubre de 2018 .
  5. ^ "Diseños de sistemas de prototipado en FPGAs". New Electronics. 22 de marzo de 2011. Archivado desde el original el 6 de marzo de 2012. 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. ^ abcde "Documento técnico coescrito por Aldec y Xilinx "Prototipos ASIC HES-7", se requiere registro
  8. ^ "Prototipos FPGA: se trata del software - 2/11/2007 - Electronics Weekly". Archivado desde el original el 22 de enero de 2013 . Consultado el 9 de octubre de 2012 .
  9. ^ http://www.fpga-faq.com/FAQ_Pages/prototyping.pdf [ URL básica PDF ]
  10. ^ "Multiplexación por división de tiempo". www.inetdaemon.com . Consultado el 8 de octubre de 2018 .
  11. ^ "FPGA Hell". zipcpu.com . Consultado el 5 de noviembre de 2019 .
  12. ^ "Introducción a los FPGA" (PDF) .
  13. ^ "Tektronix revoluciona la creación de prototipos, la instrumentación integrada eleva las placas al nivel de emulador". Electronic Engineering Journal. 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 de FPGA". Diseño y reutilización. 14 de octubre de 2015. Consultado el 25 de noviembre de 2015 .
  15. ^ "Supere los cuellos de botella en la 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. ^ "Prototipos ASIC/SoC" . Consultado el 12 de abril de 2020 .

Enlaces externos