Modelsim能够基本使用后,如果能够掌握一点技巧,会使你的仿真效率更高!
一、界面
1.隐藏信号名的路径,波形窗口中,信号名的默认显示方式是包含路径名的,点击该页面左下角的灰色原点即可隐藏路径名。但这样每次打开都得点,软件不会记忆住。可以点击Tools --- Window preference --- display signal path,数值改写成1,ok。这样每次加载信号时,信号名都不包含路径了。
2.更改波形颜色,点击Tools --- Edit preferences,这里可以修改你的界面颜色,让其变得五彩缤纷。
3.Modelsim上面很多快捷按钮供我们使用,但是它经常跑偏而且太杂了。鼠标停在按钮那,点鼠标右键,将Compile、Simulate、Zoom保留打钩,其他项都不打钩。这样快捷按钮栏就变得简洁了。留下的这三个快捷按钮基本够我们用了,以后还要用到哪个快捷按钮再鼠标右键打钩就行。
二、脚本自动化仿真
Modelsim是支持命令的,我们可以用 .do 文件将这些命令先写好,然后在Modelsim上调用即可。很多编辑器不支持.do文件,可以用 .tcl 文件,是一模一样的。ok来看看怎么做吧。
1. 我习惯在testbench文件夹里放一个sim文件夹和 tb.v 文件,现在我在这内部的sim文件夹里新建一个run.do文件,这样后面的工程和乱七八糟的文件都在内部的sim文件夹里。
2. 在 .do文件里写上一下代码:
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 # 优化部分参数,进行simulation 31 # vsim -voptargs=+acc work.fsm_tb 32 33 # ====================================================================== 34 # == 状态机名称查看器 35 # ====================================================================== 36 37 # 结构体设置 38 virtual type { 39 {4'b0001 S0} 40 {4'b0010 S1} 41 {4'b0100 S2} 42 {4'b1000 S3} 43 } fsm_type; 44 45 # 结构体和信号名关联,命名为state_name 46 virtual function {(fsm_type)/fsm_tb/u_fsm/state} state_name 47 48 # ====================================================================== 49 # == 加载波形 50 # ====================================================================== 51 52 # 添加fsm的所有波形,并以unsigned格式显示 53 add wave -radix unsigned /fsm_tb/u_fsm/* 54 55 # 跑10us 56 run 10us
3.打开Modelsim,点击 Files --- Change Directory ,找到刚刚那个do文件所在的文件夹。
4.在Transcript窗口输入 do run.do,敲击Enter回车键。现在Modelsim就会自动帮你工作啦!
未完待续......