Semulation es un término relacionado con la informática que significa simulación y emulación , y que significa el proceso de controlar una emulación a través de un simulador.
El hardware digital se describe utilizando lenguajes de descripción de hardware (HDL) como VHDL , Verilog o System Verilog . Estas descripciones se simulan junto con un banco de pruebas específico para el problema . La verificación funcional inicial de la mayoría de los diseños de IP se realiza mediante simulación a nivel de transferencia de registros (RTL) o a nivel de compuerta. En un método de simulación impulsado por eventos, el código debe ser procesado secuencialmente por una CPU , porque una computadora normal no puede procesar el hardware implementado en paralelo. Este enfoque secuencial conduce a tiempos de simulación prolongados, especialmente en diseños complejos de sistemas en chip (SoC) .
Después de la simulación, la descripción RTL debe sintetizarse para que encaje en el hardware final (por ejemplo, FPGA , ASIC ). Este paso conlleva muchas incertidumbres porque el hardware real normalmente no es tan ideal como el modelo de simulación. Las diferencias entre el mundo real y la simulación son una de las principales razones por las que se utiliza la emulación en el diseño de hardware.
Generalmente, el entorno de simulación y emulación son dos sistemas independientes. La simulación es una simbiosis de ambos métodos. En la simulación, una parte de un diseño de hardware se procesa secuencialmente en el software (por ejemplo, el banco de pruebas) mientras que la otra parte se emula.
En el siguiente diagrama de bloques se muestra un ejemplo de flujo de diseño para simulación :
La base de datos contiene los archivos de diseño y de banco de pruebas, así como la información sobre el bloque, ya sea que se vaya a simular o emular. La parte izquierda muestra la ruta de simulación normal donde se deben compilar los archivos de diseño para un simulador HDL. La parte derecha del diagrama de estados maneja el flujo para el sistema de emulación. Los archivos de diseño para el FPGA deben sintetizarse para la tecnología de destino adecuada. Un punto importante en la simulación es la conexión entre el sistema de emulación y el simulador HDL. La interfaz es necesaria para que el simulador maneje el hardware conectado.