¿Cuál es la forma estándar de detener un banco de pruebas VHDL después de un cierto período de tiempo?

4

En Verilog puedo usar la función $ finish para detener la simulación, pero mi búsqueda de la opción similar en VHDL ha fallado hasta ahora.

La solución más cercana que encontré en línea es usar este código en mi banco de pruebas VHDL:

stop_simulation :process
begin
   wait for 1000 ns; --run the simulation for this duration
   assert false
       report "simulation ended"
       severity failure;
end process ;

¿Cómo configura la hora para su simulación en VHDL? Por ejemplo, si quiero que mi reloj funcione para nosotros 10, ¿cuál es la opción ESTÁNDAR para lograr esto?

    
pregunta Ehsan

1 respuesta

6

Se usan comúnmente dos formas:

Detener el reloj (o relojes). De esa manera no hay más eventos, y la simulación se detiene. A veces, hay una señal (por ejemplo llamada done ) que apaga el generador de reloj. El banco de pruebas afirma la señal done cuando se completan todas las pruebas.

Reportar un error . Esto no es tan elegante, pero mucha gente lo usa. Una severidad de falla hará que el simulador se detenga. report "simulation finished successfully" severity FAILURE;

Detener procedimiento Una tercera forma, solo disponible desde VHDL 2008 es llamar al procedimiento stop , en el paquete env de la biblioteca std . Por ejemplo, como este: std.env.stop;

    
respondido por el Philippe

Lea otras preguntas en las etiquetas