vsim 6.2

vsim may use several alternative licenses, or even more than one, which creates challenges in accurate management and preemption.


We strongly recommend using a named environment called, for example, MODELSIM. Use the environment to set the path and also the JOBSPY_DAEMON in the form port@host.


With release 6.2 of ModelSim, you can use two preemption methods: MODELSIM (see information for vsim6.0 or JOBSPY, which is explained here.

To use the JOBSPY method, you do need to have the JobSpy daemon running and set the JOBSPY_DAEMON environment variable.

The SIGTSTP method seems to work, but actually does not because the resumed job restarts in a confused state. The LMREMOVE method is not recommended, because it is much slower than JOBSPY and also less reliable.

# Example: assuming the license used by vsim is License:msimhdlsim.
VovPreemptPolicy License:msimhdlsim  -method JOBSPY -maxage 120 -delay 20

Note: because of a short delay between the delivery of SIGTSTP to the simulator and the actual release of the license, it is normal to notice that the newly started simulation finds all licenses taken and is therefore put in the "vendor queue" (i.e. lmstat reports the handle as 'queued'). This situation is quickly and automatically resolved.

Using vsim in Flows

Exclude from the trace the files ~/.modelsim and ~/.modelsim_new. Also exclude all .asm and .asm64 files that are created in the library directories.
vtk_exclude_rule -regexp {/.modelsim$}
vtk_exclude_rule -regexp {_fast.asm$}
# vtk_exclude_rule -regexp {\.asm$}
# vtk_exclude_rule -regexp {\.asm64$}

if [info exists env(MTI_HOME)] {
  vtk_exclude_rule -prefix $env(MTI_HOME)
The file work/_info is created by vlib and modified by vlog. Do not make 'vlib' part of the flow. Instead consider it at the same level as a 'mkdir' command and execute it as part of vovbuild. In your flow description file, call
catch {exec vlib work}