ModelSim 和 Questa Advanced Simulator 的仿真步骤控制构造 - 2023.2 简体中文

Vivado Design Suite 用户指南: 逻辑仿真 (UG900)

Document ID
UG900
Release Date
2023-10-18
Version
2023.2 简体中文

下表概括了用于基于 .do 文件格式控制步骤执行的构造:

本机 .do 文件
这是默认 .do 文件格式。在此格式下,编译和细化 shell 脚本会调用 source <tb>_compile/elaborate.do。例如:
source bft_tb_compile.do 2>&1 | tee -a compile.log
仿真脚本会调用 vsim -64 -c -do do {<tb>_simulate.do}。例如:
$bin_path/vsim -64 -c -do do {bft_tb_simulate.do} -l simulate.log
经典 .do 文件
经典 .do 文件格式不同于编译和细化 shell 脚本中的本机 .do 文件。仿真脚本并无更改。在编译和细化 shell 脚本中,它会调用 vsim -c -do do {<tb>_compile/elaborate.do}。例如:
$bin_path/vsim -64 -c -do do {bft_tb_compile.do} -l compile.log
要完成此操作,请在 Tcl 控制台命令上调用 set_param project.writeNativeScriptForUnifiedSimulation 0project.writeNativeScriptForUnifiedSimulation 设置为 0。

此文件格式对于共享工程很有用,因为 Questa Advanced Simulator/ModelSim 实用工具的路径会硬编码到 shell 脚本内。

表 1. 仿真步骤控制构造参数
参数 描述 默认
project.writeNativeScriptForUnifiedSimulation 仅使用仿真器命令编写纯 .do 文件(无 Tcl 或 Shell 构造)。 0 (false)
simulator.quitOnSimulationComplete 在仿真器完成 ModelSim/Questa Advanced Simulator 仿真时,退出仿真器。要禁用退出,请将此参数设为 false。 1 (true)
simulator.modelsimNoQuitOnError 默认情况下,ModelSim/Questa Advanced Simulator 仿真出现错误或中断时不会退出。要在遇到错误或中断时退出仿真,请将此参数设为 false。 1 (true)

解释

simulator.quitOnSimulationComplete
默认情况下,生成的 simulate.do 包含 quit -force。当仿真在指定时间内完成时,仿真器就会退出。如果您不希望仿真器退出,请通过调用 set_peram simulator.quitOnSimulationComplete 0simulator.quitOnSimulationComplete 设置为 0。
simulator.modelsimNoQuitOnError
默认情况下,仿真器遇到错误或中断时并不会退出。如果希望退出仿真器,请设置以下参数:
set_param simulator.modelsimNoQuitOnError 0
这样会在 <tb>_simulate.do 中添加以下 2 行。
onbreak {quit -f}
onerror {quit -f}