日常modelsim仿真,每次都需要建立工程,添加波形,很是麻烦,于是我就上网搜了一下,总结写了一点脚本来自动编译仿真代码文件。菜鸟学习中,写得不当,还请指正。
常用指令简介
vlib work :创建名叫work的工作库
vmap work work : 映射逻辑库名work到指定的目录
vlog test.v :编译名叫test的verilog文件
vcom test.vhd :编译名叫test的vhdl文件
vsim -voptargs=+acc -L altera_mf test: 仿真test文件,-L表示使用altera库add wave /*
: 将所有信号waveform dump出来
quit -sim : 停止仿真
run 10ms :运行10个ms
实际操作
- 创建一个名叫run的文本文档,将后缀名改为.bat
填写内容:
#C:\modeltech64_10.5\win64\modelsim -do mrun.do
#用modelsim仿真则注释下面,根据modelsim安装路径填写上面路径
C:\questasim64_10.6c\win64\questasim -do mrun.do
#用questasim仿真则注释上面
然后关闭
- 创建一个名叫mrun的文本文档,将后缀名改为.do
填写内容;
.main clear
#清空命令行
vlib work
vmap work work
vlog altera_mf.v
vlog filelist.sv
#大型工程中,文件众多,可以在filelist中include所有文件
#也可以换成vlog src/*.v,这需要所以代码放进同一文件夹
vsim -novopt -voptargs=+acc work.dma_test_top
#使用vopt进行设计优化,常与+acc配合使用
#vsim用来仿真顶部模块,一般是tb文件,例如上面换成work.test_tb
add log -r /*
#添加日志,方便仿真中每次添加信号后能自动显示其值,不用重新run
do wave.do
run 10ms
然后关闭
- 创建一个名叫wave的文本文档,将后缀名改为.do
填写内容:
add wave –hex /top/clk
#根据信号引脚填写
为什么要另创建一个wave文件,而不是直接写在mrun.do里,是方便在波形展示界面添加需要查看的信号后可以点击保存信号列表文件,然后覆盖wave文件
- filelist文件编写
`include "./../env/ram/ram_400_128.v" //路径要使用相对路径,本工作目录是和work文件夹在同一目录
`include "./../env/ram/ram_400_128_add_csn.v"// ./表示在同一路径 ../表示返回上一目录