¿Cómo puedo hacer que Modelsim funcione más rápido para la simulación en lugar de algo en el rango de picosegundos (intervalo de tiempo)? ¿Existen otros métodos para acelerar la simulación? Se necesitan 45 minutos para llegar a 1 ms a partir de ahora. Quiero que la simulación se ejecute durante 20 ms para verificar ciertos contadores, módulos de temporizador y eventos. El reloj del sistema funciona a 50 MHz.
Y si hay una opción, habrá algún inconveniente. Por ejemplo, faltan eventos, etc.?
Este es un problema muy común para todos los desarrolladores de FPGA. Estos son mis consejos (probablemente haya muchos otros).
Primero, puede decidir ver solo algunas señales, de modo que el cálculo se ejecute más rápido. Solo necesita separar su diseño en módulos más pequeños (o solo mirar un proceso tras otro).
O puede definir diferentes constantes para la simulación como esta:
CONSTANT MY_CONSTANT : integer := 50; -- for simu
--CONSTANT MY_CONSTANT : integer := 500; -- for real
Hacer esto para cada contador realmente puede hacerte ahorrar tiempo.
Y finalmente, obviamente, también puedes acelerar el tuyo clock
.
-- pragma translate_off <return> return 50;<return> --pragma translate_on <return> return 500;
en lugar de comentar las cosas... (disculpe el formato en los comentarios. La síntesis ignorará el valor de la simulación.Asegúrese de que su escala de tiempo y precisión de tiempo se establezcan adecuadamente para su diseño. Si el reloj del sistema es de 50 Mhz, no necesita una resolución de 1ps. Al reducir la precisión del tiempo, el simulador evaluará menos eventos y debería ayudar a la velocidad de la simulación.
Para Verilog, use la directiva de escala de tiempo:
`timescale 1ns/100ps
El primer argumento es la escala de tiempo; se utilizará como unidad cuando se utilicen retrasos como #10
. El segundo argumento es la precisión de tiempo.
Para un diseño de 50 Mhz donde esa es la frecuencia más alta que necesita simular, 1ns/100ps sería apropiado.
Para VHDL, no recuerdo cómo se controla esto, y si es una construcción de lenguaje o una herramienta específica. Pero se mantiene el mismo concepto.
Dependiendo de su instalación, la resolución de su simulador puede ser de picosegundos por defecto. Verifique su modelsim.ini
y busque la Resolution
variable debajo del [vsim]
encabezado.
Alternativamente, puede forzar la resolución en la línea de comando. Estás muy cerca de tu ejemplo. La sintaxis es vsim -t ns
para resolución de nanosegundos.
Tenga en cuenta que Verilog timescale
es muy diferente en VHDL. Dado que time
es una unidad en VHDL, la naturaleza de la referencia de tiempo timescale
no es significativa (todos wait for ...
tienen un tiempo explícito, no implícito como el de Verilog #
). El parámetro de resolución para Modelsim es más análogo a la precisión en timescale
, pero redondeado a la precisión más pequeña. Entonces, si usa un Verilog timescale
que sugirió dwikle, Modelsim usará una resolución de picosegundos.
Ahora, si su ciclo de reloj es de 50 MHz, necesitará al menos una precisión de nanosegundos.
Solo vengo aquí para ver el problema de la velocidad de simulación. Simplemente deshabilité la visualización de errores en la sección Trascript durante la simulación, y se hizo mucho más rápido. solo inténtalo
En caso de que alguien vea esto nuevamente, deshabilitar los mensajes yendo a Simular> Opciones de tiempo de ejecución> Gravedad del mensaje y marcando todas las casillas en "No mostrar mensaje para" aceleró la simulación sustancialmente para mí. Creo que enviar el texto a la terminal tomó mucho tiempo.
usuario_1818839
Alex Krish
miedo_jeff
Alex Krish
miedo_jeff
Paebbels
Alex Krish
martin thompson
usuario8352