一、do脚本实现自动化仿真
Modelsim是支持命令的,我们可以用 .do 文件将这些命令先写好然后在Modelsim上调用。因为我的编辑器不支持.do的语法,所以这里改用 .tcl文件,它和 .do 的使用是没有任何区别的。
1. 我习惯设置一个test文件夹,里面放着仿真文件 XX_tb.v,然后在这test文件夹里放一个sim文件夹,在此文件夹内新建一个sim.tcl文件,这样后面的工程和乱七八糟的文件都在内部的sim文件夹里。
2. 在sim .tcl文件里写好以下代码,这些代码建议保存或制作成代码片段,以后只需要稍微改一改就能用。
1 # ========================================================================== 2 # == 清空软件残留信息 3 # ========================================================================== 4 5 # 退出之前仿真 6 quit -sim 7 8 # 清空信息 9 .main clear 10 11 # ========================================================================== 12 # == 建立工程并仿真 13 # ========================================================================== 14 15 # 建立新的工程库 16 vlib work 17 18 # 映射逻辑库到物理目录 19 vmap work work 20 21 # 编译仿真文件 22 vlog ./../*.v 23 24 # 编译设计文件 25 vlog ./../../rtl/*.v 26 27 # 无优化simulation *** 请修改文件名 *** 28 vsim -novopt work.fsm_tb 29 30 # ========================================================================== 31 # == 状态机名称查看器,如若不用请删除!!! 32 # ========================================================================== 33 34 # 结构体设置 35 virtual type { 36 {4'b0001 S0} 37 {4'b0010 S1} 38 {4'b0100 S2} 39 {4'b1000 S3} 40 } fsm_type; 41 42 # 结构体和信号名关联,命名为state_name 43 virtual function {(fsm_type)/fsm_tb/u_fsm/state} state_name 44 45 # ========================================================================== 46 # == 加载波形 47 # ========================================================================== 48 49 # 添加波形,高度30,以unsigned格式显示 *** 请修改路径名 *** 50 add wave -height 30 -radix unsigned /fsm_tb/u_fsm/* 51 52 # 跑完 53 run -all
3.打开Modelsim,点击 Files --- Change Directory ,找到刚刚那个 tcl 文件所在的文件夹。
4.在Transcript窗口输入 do sim.tcl,敲击Enter回车键。现在Modelsim就会自动帮你工作啦!
ps:
1.如果你的文件夹结构设置的和我一样,而且testbench文件命名为:XX_tb.v,里面例化的名称为 u_XX ,那么以后只需要将上述代码的 fsm 以"不匹配全词"方式替换成XX即可,当然手动修改也是很方便的,毕竟只要改2处地方即可。
2.这样操作在Project区域是空白的,那我们改了代码后怎么编译调试呢?在Library里找到模块用鼠标右键选择编译即可,和在Project里编译是一样的效果。然后在波形那restart一下重跑就行了。
二、用bat命令直接运行Modelsim
如果你懒得连Modelsim都不想打开,那可以试试 .bat文件的操作。
1.在 sim.tcl文件边上新建一个txt文件,里面写好下面的的代码然后保存。注意第4行需要和你的 .tcl 文件名称保持一致。
::请按任意键继续... pause ::打开Modelsim并执行do sim.tcl vsim -do sim.tcl
2.将刚刚那个 .txt 文件重命名为 .bat 文件
3.打开这个bat文件,敲Enter回车键,OK,电脑自动打开Modelsim自动仿真出波形了!