上边所示的命令是 ModelSim专用的TCL扩展命令,具体分析如下:
本质关系
-
基础语言:TCL(Tool Command Language)
- 通用脚本语言(变量、循环、过程等基础语法)
- 例如:
#
注释、\
续行符、引号规则等是标准TCL语法
-
扩展命令:ModelSim TCL API
- 所有以
v
开头的命令(vlib
,vmap
,vlog
,vsim
) - 所有仿真控制命令(
restart
,run
,add wave
等) - 这些是ModelSim对TCL的扩展,只能在ModelSim环境中执行
- 所有以
命令分类说明
命令类型 | 示例命令 | 可执行环境 |
---|---|---|
纯TCL命令 | set x 10 , puts "Hello" | 任何TCL解释器 |
ModelSim TCL扩展 | vlog , vsim , add wave | 仅ModelSim环境 |
ModelSim控制台命令 | .main clear | 仅ModelSim控制台 |
具体分析脚本中的命令
-
ModelSim专用扩展命令:
vlib work # 创建仿真库 vmap work work # 库映射 vlog -work work ...# 编译Verilog vsim ... # 启动仿真 add wave ... # 添加波形信号 run 100ns # 运行仿真
-
ModelSim控制台原生命令:
.main clear # 清除命令历史(注意开头的".") quit -sim # 退出仿真
-
标准TCL元素:
# 注释 # 标准TCL注释语法 \ # 续行符 "and_gate.v" # 字符串引用
关键区别
-
在标准TCL环境(如tclsh或wish)中执行这些命令会报错:
% vsim invalid command name "vsim"
-
这些命令只能在ModelSim的TCL控制台中执行:
ModelSim> vsim ...
实际工作流程
- 用户编写
.do
文件(ModelSim的TCL脚本) - 在ModelSim中执行:
ModelSim> do simulation_script.tcl
- ModelSim解释器:
- 解析标准TCL语法
- 执行专用扩展命令
- 调用底层仿真引擎
简而言之:这是使用TCL语法编写的ModelSim自动化脚本,依赖于ModelSim的执行环境,不是通用的TCL程序。