下表概括了用于基于 .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}
。例如:
要完成此操作,请在 Tcl 控制台命令上调用$bin_path/vsim -64 -c -do do {bft_tb_compile.do} -l compile.log
set_param project.writeNativeScriptForUnifiedSimulation 0
将project.writeNativeScriptForUnifiedSimulation
设置为 0。
此文件格式对于共享工程很有用,因为 Questa Advanced Simulator/ModelSim 实用工具的路径会硬编码到 shell 脚本内。
参数 | 描述 | 默认 |
---|---|---|
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 0
将simulator.quitOnSimulationComplete
设置为 0。 -
simulator.modelsimNoQuitOnError
- 默认情况下,仿真器遇到错误或中断时并不会退出。如果希望退出仿真器,请设置以下参数:
这样会在 <tb>_simulate.do 中添加以下 2 行。set_param simulator.modelsimNoQuitOnError 0
onbreak {quit -f} onerror {quit -f}