Articulo de referencia

Emulación de hardware

Acelerador de simulación de hardware Ikos NSIM-64. En el diseño de circuitos integrados , la emulación de hardware es el proceso de imitar el comportamiento de una o más piezas ...

Acelerador de simulación de hardware Ikos NSIM-64.

En el diseño de circuitos integrados , la emulación de hardware es el proceso de imitar el comportamiento de una o más piezas de hardware (normalmente un sistema en diseño) con otra pieza de hardware, normalmente un sistema de emulación de propósito especial. El modelo de emulación se basa normalmente en un código fuente de lenguaje de descripción de hardware (por ejemplo, Verilog ), que se compila en el formato utilizado por el sistema de emulación. El objetivo normalmente es la depuración y la verificación funcional del sistema que se está diseñando. A menudo, un emulador es lo suficientemente rápido como para ser conectado a un sistema de destino en funcionamiento en lugar de un chip aún por construir, por lo que todo el sistema se puede depurar con datos en vivo. Este es un caso específico de emulación en circuito .

A veces, la emulación de hardware puede confundirse con dispositivos de hardware como tarjetas de expansión con procesadores de hardware que ayudan a las funciones de emulación de software, como placas base más antiguas con chips x86 para permitir que los sistemas operativos x86 se ejecuten en placas base de diferentes familias de procesadores.

Introducción

La mayor parte de los respins y steppings de circuitos integrados de silicio se deben, al menos en parte, a errores funcionales y fallos introducidos inadvertidamente en la etapa RTL del proceso de diseño. Por lo tanto, la verificación funcional integral es clave para reducir los costos de desarrollo y entregar un producto a tiempo. La verificación funcional de un diseño se realiza con mayor frecuencia mediante simulación lógica y/o creación de prototipos en matrices de puertas programables en campo (FPGA). Cada una de ellas tiene sus ventajas y desventajas y, a menudo, se utilizan ambas. La simulación lógica es fácil, precisa, flexible y de bajo costo. Sin embargo, la simulación a menudo no es lo suficientemente rápida para diseños grandes y casi siempre es demasiado lenta para ejecutar el software de aplicación contra el diseño de hardware. Los prototipos basados ​​en FPGA son rápidos y económicos, pero el tiempo necesario para implementar un diseño grande en varias FPGA puede ser muy largo y propenso a errores. Los cambios para corregir fallas de diseño también tardan mucho en implementarse y pueden requerir cambios en el cableado de la placa. Con las herramientas de los proveedores tradicionales, los prototipos de FPGA tienen poca capacidad de depuración, sondear las señales dentro de los FPGA en tiempo real es muy difícil y la recompilación de los FPGA para mover las sondas lleva demasiado tiempo. Esto está cambiando con la aparición de herramientas de depuración de prototipos de FPGA más avanzadas [1] que eliminan las limitaciones en la visibilidad de las señales. El compromiso habitual es utilizar la simulación al principio del proceso de verificación, cuando los errores y las correcciones son frecuentes, y la creación de prototipos al final del ciclo de desarrollo, cuando el diseño está básicamente completo y se necesita velocidad para realizar pruebas suficientes para descubrir cualquier error restante a nivel de sistema. La creación de prototipos de FPGA también es popular para probar software.

La aceleración de la simulación puede solucionar hasta cierto punto las deficiencias de rendimiento de la simulación. Aquí, el diseño se asigna a un acelerador de hardware para que se ejecute mucho más rápido y el banco de pruebas (y cualquier código de diseño de comportamiento) continúa ejecutándose en el simulador en la estación de trabajo. Un canal de gran ancho de banda y baja latencia conecta la estación de trabajo con el acelerador para intercambiar datos de señal entre el banco de pruebas y el diseño. Según la ley de Amdahl , el dispositivo más lento de la cadena determinará la velocidad alcanzable. Normalmente, este es el banco de pruebas en el simulador. Con un banco de pruebas muy eficiente (escrito en C o basado en transacciones), el canal puede convertirse en el cuello de botella. En algunos casos, un banco de pruebas a nivel de transacción puede alimentar tantos datos al diseño que se está emulando como estímulo "en vivo".

La emulación en circuito mejora un poco los tiempos de implementación de los prototipos FPGA y proporciona una capacidad de depuración completa y eficiente. La emulación logra esto a expensas de la velocidad de ejecución y un alto costo ($1M+) en comparación con los prototipos FPGA ($75K). [ ¿según quién? ] Mirando la emulación desde la otra dirección, mejora el rendimiento de la aceleración al sustituir el banco de pruebas simulado por un estímulo "en vivo". Este estímulo puede provenir de un sistema de destino (el producto que se está desarrollando) o de un equipo de prueba. A una velocidad de 10.000 a 100.000 veces la de la simulación, la emulación permite probar el software de la aplicación al mismo tiempo que proporciona un entorno de depuración de hardware completo.

Simulaciones de depuración vs. emulaciones/prototipado

Vale la pena señalar que la simulación y la creación de prototipos implican dos estilos de ejecución diferentes. La simulación ejecuta el código RTL en serie, mientras que un prototipo se ejecuta completamente en paralelo. Esto genera diferencias en la depuración. En la simulación:

  • El usuario puede establecer un punto de interrupción y detener la simulación para inspeccionar el estado del diseño, interactuar con el diseño y reanudar la simulación.
  • El usuario puede detener la ejecución “a mitad del ciclo”, por así decirlo, con sólo una parte del código ejecutado.
  • El usuario puede ver cualquier señal en el diseño y el contenido de cualquier ubicación de memoria en cualquier momento.
  • El usuario puede incluso hacer una copia de seguridad del tiempo (si guardó puntos de control ) y volver a ejecutarlo.

Con un prototipo:

  • El usuario utiliza un analizador lógico para obtener visibilidad, por lo que solo puede ver un número limitado de señales que determinó de antemano (mediante la conexión de sondas). Esto está cambiando con las herramientas de prototipos FPGA emergentes que brindan visibilidad total de decenas de miles de señales internas, como Certus. [2]
  • El objetivo no se detiene cuando se activa el analizador lógico, por lo que cada vez que el usuario cambia las sondas o la condición de activación, debe restablecer el entorno y comenzar nuevamente desde el principio.
  • Se añaden sondas directamente al diseño RTL para que las señales específicas estén disponibles para su observación. Cuando se ejecuta el sistema, la sonda basada en RTL conectada a cada una de las señales instrumentadas recopila el valor de la señal en cada ciclo de reloj. Los datos se almacenan en un búfer de seguimiento en la RAM del bloque FPGA. Un analizador conectado al prototipo descarga la información, lo que le da al usuario visibilidad fuera de línea del sistema para una depuración eficiente. [3]

La aceleración y la emulación se parecen más a la creación de prototipos y al silicio en términos de ejecución y depuración RTL, ya que todo el diseño se ejecuta simultáneamente como lo haría en el silicio. Dado que a menudo se utiliza el mismo hardware para proporcionar aceleración de simulación y emulación en circuito, estos sistemas proporcionan una combinación de estos dos estilos de depuración muy diferentes.

Los emuladores de hardware de alta gama proporcionan un entorno de depuración con muchas características que se pueden encontrar en los simuladores lógicos y, en algunos casos, incluso superan sus capacidades de depuración:

  • El usuario puede establecer un punto de interrupción y detener la emulación para inspeccionar el estado del diseño, interactuar con el diseño y reanudar la emulación. El emulador siempre se detiene en los límites del ciclo.
  • El usuario puede ver cualquier señal o contenido de memoria en el diseño sin necesidad de configurar sondas antes de la ejecución. Si bien también se puede ver el tiempo pasado, la cantidad de tiempo que puede mostrar en el pasado puede estar limitada en algunos casos a la profundidad de la memoria de seguimiento del emulador.
  • El usuario puede incluso hacer una copia de seguridad del tiempo (si guardó puntos de control ) y volver a ejecutarlo.
  • Debido a su alto costo, los emuladores están fuera del alcance de muchos desarrolladores, lo que lleva al surgimiento de plataformas avanzadas de creación de prototipos FPGA y herramientas de depuración.

Emulación y lógica de 2 estados

Otra diferencia entre simulación y aceleración y emulación es que los aceleradores utilizan hardware para su implementación (tienen solo dos estados lógicos) y actúan de la misma manera que lo haría el silicio cuando se fabrica. Esto implica:

  • No son útiles para analizar la inicialización del estado X.
  • No pueden analizar la resolución de fuerza, o al menos esto debe hacerse estáticamente en tiempo de compilación.
  • Los emuladores no modelan tiempos de circuito precisos y, por lo tanto, probablemente no encontrarán condiciones de carrera ni violaciones de tiempos de configuración y espera.

Estas tareas se llevan a cabo correctamente durante la simulación lógica o con una herramienta de análisis de tiempo estático .

Emulación versus creación de prototipos

Una distinción tradicional clave entre un emulador y un sistema de creación de prototipos FPGA ha sido que el emulador proporciona un entorno de depuración enriquecido, mientras que un sistema de creación de prototipos tiene poca o ninguna capacidad de depuración y se utiliza principalmente después de que se depura el diseño para crear múltiples copias para el análisis del sistema y el desarrollo de software. Están surgiendo nuevas herramientas que permiten una visibilidad completa de la señal RTL con un pequeño impacto en la LUT de FPGA, permiten una gran profundidad de captura y brindan un análisis de múltiples chips y del dominio del reloj para permitir una depuración eficiente, comparable al emulador. [2]

Véase también

Referencias

  1. ^ "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 .
  2. ^ ab "Tektronix espera revolucionar el prototipado ASIC". EE Times. 30 de octubre de 2012. Archivado desde el original el 22 de enero de 2013. Consultado el 30 de octubre de 2012 .
  3. ^ "Supere los cuellos de botella en la creación de prototipos ASIC". 23 de octubre de 2012. Consultado el 30 de octubre de 2012 .
  • Manual de automatización de diseño electrónico para circuitos integrados , de Lavagno, Martin y Scheffer, ISBN 0-8493-3096-3 Un estudio del campo, del cual se derivó el resumen anterior, con permiso. 

Lectura adicional

  • VISTAZO: DENTRO DEL LABORATORIO DE EMULACIÓN DE NVIDIA
  • Plataforma de emulación empresarial Cadence Palladium Z1
  • Emulador de servidor Zebu de Synopsys
  • Sistemas de emulación Mentor Graphics Veloce
Obtenido de "https://es.wikipedia.org/w/index.php?title=Emulación_de_hardware&oldid=1181419761"