vsim 6.2
vsim may use several alternative licenses, or even more than one, which creates challenges in accurate management and preemption.
Environment
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.
Preemption
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
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, callcatch {exec vlib work}