De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

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 generalmente se basa 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 conectarse 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 se puede confundir 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 hijas 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 [ editar ]

La mayor parte de los giros y pasos de circuitos integrados de silicio se deben, al menos en parte, a errores funcionales y errores 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 arreglos de puertas programables en campo.(FPGA). Hay ventajas y desventajas para cada uno y, a menudo, se utilizan ambos. 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 del hardware. FPGALos prototipos basados ​​en tecnología son rápidos y económicos, pero el tiempo necesario para implementar un diseño grande en varios FPGA puede ser muy largo y propenso a errores. Los cambios para corregir fallas de diseño también requieren mucho tiempo para implementarse y pueden requerir cambios en el cableado de la placa. Con las herramientas tradicionales de los proveedores, 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 volver a compilar los FPGA para mover las sondas lleva demasiado tiempo. Esto está cambiando con la aparición de herramientas de depuración de prototipos FPGA más avanzadas [1]que eliminan las limitaciones en la visibilidad de la señal. 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 obtener suficientes pruebas para descubrir los errores restantes a nivel del sistema. . La creación de prototipos FPGA también es popular para probar software.

La aceleración de la simulación puede abordar las deficiencias de rendimiento de la simulación hasta cierto punto. 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 de la estación de trabajo. Un canal de gran ancho de banda y baja latencia conecta la estación de trabajo al 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 del 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 enviar tantos datos al diseño que se emula como un estímulo "en vivo".

La emulación en circuito mejora un poco los tiempos de implementación de la creación de prototipos FPGA y proporciona una capacidad de depuración eficiente e integral. La emulación hace esto a expensas de la velocidad de ejecución y el 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 sustituyendo el estímulo "en vivo" por el banco de pruebas simulado. Este estímulo puede provenir de un sistema objetivo (el producto que se está desarrollando) o de un equipo de prueba. Con una velocidad de 10.000 a 100.000 veces la velocidad de la simulación, la emulación hace posible probar el software de la aplicación y, al mismo tiempo, proporciona un entorno de depuración de hardware completo.

Depuración de simulaciones frente a emulaciones / creación de prototipos [ editar ]

Vale la pena señalar que la simulación y la creación de prototipos implican dos estilos diferentes de ejecución. La simulación ejecuta el código RTL en serie, mientras que un prototipo se ejecuta completamente en paralelo. Esto conduce a diferencias en la depuración. En 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 solo 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 la memoria en cualquier momento.
  • El usuario puede incluso hacer una copia de seguridad del tiempo (si guardó los puntos de control ) y volver a ejecutar.

Con un prototipo:

  • El usuario emplea un analizador lógico para la visibilidad y, por lo tanto, puede ver solo un número limitado de señales que determinaron con anticipación (recortando las sondas). Esto está cambiando con las herramientas de prototipos de FPGA emergentes que brindan visibilidad total a 10,000 señales internas, como Certus. [2]
  • El objetivo no se detiene cuando se dispara el analizador lógico, por lo que cada vez que el usuario cambia las sondas o la condición de disparo, debe restablecer el entorno y comenzar de nuevo desde el principio.
  • Las sondas se agregan directamente al diseño RTL para que las señales específicas estén disponibles para la 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 brinda 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 de RTL, ya que todo el diseño se ejecuta simultáneamente como lo haría en el silicio. Dado que el mismo hardware se utiliza a menudo para proporcionar tanto la aceleración de la simulación como la emulación en circuito, estos sistemas proporcionan una combinación de estos dos estilos de depuración muy diferentes.

Los emuladores de hardware de gama alta 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 tiene visibilidad de cualquier señal o contenido de memoria en el diseño sin la necesidad de configurar sondas antes de la ejecución. Si bien también se proporciona visibilidad para 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ó los puntos de control ) y volver a ejecutar.
  • Debido a su alto costo, los emuladores están fuera del alcance de muchos desarrolladores, lo que ha llevado al surgimiento de plataformas avanzadas de creación de prototipos FPGA y herramientas de depuración.

Emulación y lógica de 2 estados [ editar ]

Otra diferencia entre la simulación y la aceleración y la emulación es una consecuencia de que los aceleradores utilizan hardware para la implementación (solo tienen dos estados lógicos) y actúan de la forma en que lo hará el silicio cuando se fabrique. Esto implica:

  • No son útiles para analizar la inicialización del estado X.
  • No pueden analizar la resolución de la fuerza, o al menos esto debe hacerse estáticamente en tiempo de compilación.
  • Los emuladores no modelan la sincronización precisa del circuito y, por lo tanto, es probable que no encuentren ninguna condición de carrera o violaciones del tiempo 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 temporización estática .

Emulación versus creación de prototipos [ editar ]

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 rico, mientras que un sistema de creación de prototipos tiene poca o ninguna capacidad de depuración y se utiliza principalmente después de depurar el diseño para crear múltiples copias para el análisis del sistema y desarrollo de software. Están surgiendo nuevas herramientas que permiten una visibilidad completa de la señal RTL con un pequeño impacto de FPGA LUT, permiten una profundidad de captura profunda y proporcionan análisis de dominio de reloj y de múltiples chips para permitir una depuración eficiente, comparable al emulador. [2]

Ver también [ editar ]

Referencias [ editar ]

  1. ^ "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 . CS1 maint: parámetro desalentado ( enlace )
  2. ^ a b "Tektronix espera revolucionar la creación de prototipos ASIC" . EE Times. 30 de octubre de 2012 . Consultado el 30 de octubre de 2012 . CS1 maint: parámetro desalentado ( enlace )
  3. ^ "Romper sus cuellos de botella de creación de prototipos ASIC" . 23 de octubre de 2012 . Consultado el 30 de octubre de 2012 . CS1 maint: parámetro desalentado ( enlace )
  • Manual de Automatización de Diseño Electrónico para Circuitos Integrados , por Lavagno, Martin y Scheffer, ISBN 0-8493-3096-3 Un estudio del campo, del cual se derivó el resumen anterior, con permiso. 

Lectura adicional [ editar ]

  • SNEAK PEEK: DENTRO DEL LABORATORIO DE EMULACIONES DE NVIDIA
  • Plataforma de emulación empresarial Cadence Palladium Z1
  • Emulador Synopsys Zebu Server
  • Sistemas de emulación Mentor Graphics Veloce