La integración del sistema en chip (SoC) sustenta el éxito de la industria de los semiconductores a medida que continúa cumpliendo sus objetivos de chips mejores, más pequeños y más rápidos. Se utilizan diversas herramientas para el diseño y verificación de sistemas electrónicos. La verificación es uno de los aspectos más importantes, ya que demuestra la corrección funcional del diseño. El uso de FPGA para verificar los diseños de SoC es una herramienta poderosa y se está convirtiendo en una parte muy importante del diseño de semiconductores.
Las metodologías tradicionales no son suficientes para validar completamente un sistema. Hay razones convincentes para realizar un análisis de tiempo dinámico. Los proveedores de EDA proporcionan soluciones de simulación básicas que admiten bien los dispositivos de baja densidad. Estas herramientas no son lo suficientemente poderosas para depurar y verificar en la medida en que los diseñadores de hoy necesitan enfrentarse a la feroz competencia para cumplir con los cronogramas y depurar de manera efectiva los FPGA grandes.
Varias herramientas de investigación arquitectónica resuelven problemas relacionados con la verificación mediante la reutilización de modelos de sistemas para probar el tiempo, la potencia y la funcionalidad bajo cargas de trabajo realistas en tiempo real. Abordan muchas deficiencias de las soluciones de verificación actuales. Cubriremos cómo abordar cada problema específico y cómo se resolvió cada uno.
Problemas detrás de la verificación SoC actual
A medida que aumentan el tamaño y la complejidad de los SoC, aumenta la necesidad de herramientas de verificación más eficaces. La competencia excesiva reduce el tiempo de comercialización. Esto dificulta que los diseñadores utilicen el enfoque tradicional de implementar y probar diseños en hardware.
La simulación funcional solo prueba la funcionalidad funcional del diseño RTL. Lo que esencialmente hacen es enviar un conjunto general de entradas y probar esos escenarios para determinar si funcionó. Incapacidad para proporcionar sincronización, consumo de energía y respuesta a las cargas de trabajo del resto del sistema.
El análisis estático no encuentra los problemas que se observan cuando el diseño se ejecuta dinámicamente. Las técnicas de análisis de tiempo también tienen varios inconvenientes. En un sistema real, los factores dinámicos pueden causar violaciones de tiempo en el SoC. Puede decirle al usuario si el diseño puede cumplir con la configuración y si se cumplen las restricciones de tiempo aplicadas. Un ejemplo es el diseño de enrutadores de red sensibles al tiempo. En este caso, se debe tener cuidado para especificar los niveles de prioridad en los que se pueden utilizar los intervalos de tiempo. También se debe tener cuidado para garantizar que los paquetes de nivel de prioridad no utilicen recursos asignados a diferentes intervalos de tiempo. Por ejemplo, las tramas de datos de control tienen un nivel de prioridad de 3. Los paquetes de clase A comienzan a usar el recurso en el intervalo de tiempo actual. Mientras se transfiere una trama de clase A, comienza el siguiente intervalo de tiempo y los paquetes (tramas de datos de control) programados durante este nuevo intervalo de tiempo deben esperar hasta que se complete la transferencia actual. Una herramienta de análisis estático no encontrará este problema. De manera similar, el enrutamiento de paquetes a través de una barra transversal común en la red puede provocar la caída de paquetes. Por lo tanto, se debe establecer un mecanismo de control de flujo apropiado. El análisis de tiempo estático no puede encontrar este problema.
Otro método de validación es la prueba en el sistema. Una vez que el diseño funciona en la placa y pasa el conjunto de pruebas, está listo para su lanzamiento. Sin embargo, es posible que problemas como las violaciones de tiempo no ocurran de inmediato, momento en el que el diseño ya está en manos del cliente.
Obtenga precisión con el simulador de arquitectura
Para demostrar esta nueva solución de verificación del sistema, utilizaremos un simulador de arquitectura comercial llamado VisualSim Architect de Mirabilis Design. Los simuladores de arquitectura se han utilizado tradicionalmente para la verificación de especificaciones del sistema, compensaciones y cobertura de arquitectura. Una nueva tendencia es ampliar el papel de estos simuladores integrándolos con placas y emuladores FPGA. Los simuladores SystemC y Verilog ofrecen enfoques similares, pero sus modelos de sistema son demasiado detallados o demasiado abstractos. El rendimiento de la simulación, que permite realizar pruebas a gran escala, no puede capturar con precisión los escenarios del sistema.
Una función lógica o IP se considera un bloque de un modelo arquitectónico gráfico. La mayoría de los simuladores de arquitectura tienen una biblioteca de diferentes componentes que cubren los bloques de diseño ASIC implementados en RTL. En este entorno, se puede capturar toda la arquitectura para que el usuario pueda ver lo que está haciendo todo el sistema. Un sistema puede estar en un chip o en una caja o red completa. La arquitectura contiene los detalles necesarios para ayudar a generar la ocupación del búfer, el tiempo o el consumo de energía. También proporciona información sobre la respuesta general del sistema después de reemplazar bloques en el diseño. Por ejemplo, si un bloque de memoria se reemplaza con un emulador o FPGA, ¿cuál es el impacto en el resto del sistema?
Cumplir con los plazos de tiempo es fundamental para un diseño exitoso. Por ejemplo, se espera que el bloque complete la simulación en 20 µs, pero se ha observado que tarda 20 ms. Como resultado, el resto del sistema se ve afectado. Dichos detalles se capturan para brindarle al usuario una idea del tiempo de todas las implementaciones en el FPGA en comparación con el resto del sistema. El incumplimiento de la fecha límite de tiempo también puede resultar en la falla de las pruebas requeridas para estar listo para su uso en un entorno de producción.
Una segunda característica interesante es la capacidad de reducir el costo y el tiempo que lleva probar cada bloque o IP con un chip de prueba. El NRE para un chip de prueba es de $ 200,000, el empaque y otras actividades de soporte son de alrededor de $ 200-300, y las pruebas demoran de 6 a 9 meses. VisualSim le permite cargar el RTL para bloques IP específicos para reemplazar los bloques arquitectónicos actuales con bloques FPGA específicos. Las API de C++ se conectan a bloques FPGA específicos. Esto facilita que el usuario mantenga el mismo entorno arquitectónico y obtenga una visión general de la actividad del chip o de todo el sistema. Esto incluye el rendimiento, el tiempo y la latencia.
La propiedad intelectual colocada en FPGA finalmente se incorporará a los productos. Esto muestra al usuario probando la IP en el contexto de la arquitectura real. Valide si la IP funciona en su sistema. También genera información adicional como el rendimiento y el consumo de energía. Entonces, en lugar de solo verificar una sola IP, verificamos todo el SoC con ese bloque o IP en el FPGA.
Una solución para resolver el dilema.
La mayoría de los ingenieros tienen razones convincentes para negarse a realizar simulaciones de tiempo. Algunas de las principales preocupaciones son:
- Toma tiempo. El tiempo es uno de los factores más importantes para el éxito de cualquier diseño. Crear un modelo de tiempo desde cero requiere mucho tiempo. Pero la idea aquí es reutilizar el modelo arquitectónico en el entorno de VisualSim. Esto tiene dos propósitos. Los modelos arquitectónicos se pueden mejorar mejorando la precisión y la evaluación de la propiedad intelectual existente, interna o comprada. Esto también es útil para realizar análisis de tiempo en IP para las que hay código disponible. Por eso lleva tan poco tiempo.
- Requiere mucha memoria y potencia de procesador para poder validar. Los diseñadores prefieren la simulación basada en componentes a la simulación de un gran diseño. El método divide y vencerás se introdujo porque una placa FPGA solo puede ejecutar una pequeña parte del chip. La simulación de un diseño grande consume mucha potencia de procesador, memoria y capacidad de FPGA. Por ejemplo, se pueden requerir 2000 FPGA para simular un SoC completo. Correr con tantos FPGA en una placa es muy difícil. Por lo tanto, el concepto de divide y vencerás fue bien recibido por la mayoría de los diseñadores que esperaban que cada pieza funcionara después del ensamblaje. Las herramientas actuales también contienen muchos detalles fundamentales que no son útiles para la verificación, lo que ralentiza la simulación de todo el diseño. En segundo lugar, la solución “Mantener jerarquía” permite conservar la jerarquía a medida que se implementa el diseño. Por ejemplo, tome cada parte del procesador y cree una jerarquía. Sin embargo, la mayoría de las herramientas actuales ofrecen uno o dos niveles de jerarquía.
Un entorno de modelado arquitectónico como VisualSim puede modelar un SoC o una placa completa. Este entorno prueba todas las funciones y se completa en muy poco tiempo (1-2 horas). Esto se debe a que abstrae relojes y señales y reutiliza bloques arquitectónicos, lo que acelera significativamente la simulación. La placa FPGA solo debe contener la IP específica que se va a probar. El simulador también se ejecuta a más de 80 millones de eventos por segundo y más de 40 000 instrucciones (no ciclos) por segundo en todo el SoC. Además, puede ejecutarse en cualquier servidor Linux común. Por lo tanto, el uso de un sistema listo para usar mantiene los costos bajos. Además, se crea una jerarquía de 30-40 niveles. Cada componente jerárquico puede ser un componente reutilizable. Un modelo se construye con estos componentes jerárquicos más pequeños.
- No hay forma de reutilizar el banco de pruebas de la simulación funcional. Necesito crear un nuevo banco de pruebas. El entorno reutiliza maquetas arquitectónicas. El modelo arquitectónico tiene tiempo, funcionalidad y poder dentro del mismo modelo. Contiene todas las estadísticas que necesita: latencia, rendimiento, consumo de energía, eficiencia, disponibilidad del servicio, formas de onda y más. Todos los detalles están incluidos, lo que facilita su reutilización, tanto en tiempo como en funcionalidad.
- La depuración de un diseño es tediosa porque toda la lista de conexiones se aplana y no hay forma de identificar los problemas de manera oportuna. Este entorno ayuda a los esfuerzos de depuración. Proporciona muchas sondas en el lado del entorno de prueba. Además, el modelo de arquitectura se puede utilizar como referencia para comparar la salida de la placa FPGA. Entonces es mucho más fácil ver qué secuencia tiene un error. Entonces es posible reducir el error.
- La simulación de tiempo muestra los peores números de caso. El diseño tiene cabida en la medida en que no importa. Las herramientas comerciales como VisualSim realizan simulaciones con precisión de ciclo. Se ha demostrado que obtiene tiempos con una precisión del 90 % al 95 % y potencia con una precisión del 85 % al 98 %. Por lo tanto, incluso los diseños con muy alto rendimiento y plazos de tiempo pueden probarse con precisión.
- No todos los submódulos están codificados en el mismo sitio. No hay forma de dividir las partes codificadas en cada sitio. Diseñadores de estas piezas para comprender mejor y validar sus diseños. Toda la arquitectura se captura en VisualSim. Cada equipo remoto puede reemplazar su diseño con un modelo de sistema completo en VisualSim. De esta manera, cada equipo puede probarse individualmente y varios equipos pueden probarse en combinación.
Beneficios clave:
- Reduzca el costo y el tiempo de las pruebas
- jerarquía de varios niveles
- Reutilizar modelos arquitectónicos
- Puede modelar SoC o tableros completos
- probado de forma independiente
- Ayuda en el trabajo de depuración
examinar la perspectiva
La reutilización de modelos arquitectónicos puede ahorrar mucho tiempo. La simulación basada en componentes es ahora un concepto obsoleto. La verificación de todo el SoC en muy poco tiempo ahorra tiempo y dinero. Herramientas como VisualSim pueden capturar toda la arquitectura, lo que permite al usuario ver el comportamiento de todo el sistema. La información adicional, como el rendimiento, el tiempo y la latencia, es información que le dice al usuario cómo funcionará el diseño final. Las simulaciones que se ejecutan son muy rápidas y pueden demorar de 1 a 2 horas en comparación con los varios días de los métodos tradicionales de verificación.
A Deepak Shankar, Fundador. Anupurba Mukherjee, ingeniero de mercado de productos. Tom Jose, especialista en aplicaciones
Mirabilis Diseño Co., Ltd.