随着fpga的不断学习,使用仿真的次数也逐渐增多,每次都是使用GUI界面,感觉调试很不方便,改下代码又要重新编译再添加波形,大大增加了调试的周期。最近了解了一种新的仿真方式——利用TCL语言进行脚本控制。
首先需要了解modelsim仿真的步骤:
(1) GUI控制
1.启动ModelSim,建立库
2.映射库到物理目录
3.编译代码源
4.启动仿真器
5.执行仿真
(2)TCL脚本控制
1.建立库
2.映射库到物理目录
3.编译代码源
4.启动仿真器
5.执行仿真
知道了仿真步骤,接下来需要了解每个步骤的TCL命令。
建立库:
·vlib命令
语法格式 vlib < library name >
库名省缺值是work
映射逻辑库名(映射一个逻辑库名到库路径):
·vamp命令
语法格式vamp work
其他库命令:
·vdel命令
从指定的库中删除一个完整的库或者一个设计单元
语法格式vdel -lib
·vdir
显示指定库的内容
语法格式vdir -lib
编译源代码:
·vlog命令
语法格式vlog -work .v .v
库名省缺编译到work库,文件按顺序被编译。
启动仿真器:
·vsim命令
语法格式vsim -lib
执行仿真:
·run命令
语法格式run
按timesteps指定的时间长度执行仿真
run命令的参数:
·-
指定运行的timesteps数量
单位可用{fs, ps, ns, ms, sec}
·-step
Steps to the next HDL statement
·-continue
继续上次在-step或断点后的仿真
·-all
运行仿真器直到没有其他的事件
以上的仿真步骤是用TCL语言写的,我们将它保存在一个新建的.do文件中。
然后编写.bat文件(批处理文件),用于在 windows cmd 下运行整个modelsim仿真。.bat文件源码如下:
vsim -do clk_sim.do (保存文件为 gui_sim.bat)。
在windows cmd中运行.bat文件或直接点击.bat文件,modelsim会自动被打开并进行仿真。
*(注:当发现.do文件中的命令代码有问题是,可用GUI操作modelsim,在transcript窗口会自动出现相应操作的TCL命令,可与.do文件中的命令代码对比看自己写的是否正确)。
至此,便用TCL控制modelsim实现了仿真测试自动化。