Modelsim的自动化使用(一)脚本的基本使用

2020-01-11  本文已影响0人  lanFeng666

一、 实验来源

通过vivado联合Modelsim调试,自动生成脚本,通过学习人家写好的脚本,来学习如何自动化使用Modelsim。毕竟,每一次都在那几个按钮上点来点去,实在是太恶心人了,我觉得,没有人喜欢这样重复做实验,因此,写了这篇blog。本文,最后会给一个简单的Modelsim通用型工具脚本。如果对笔者的实验过程,不感兴趣,可以直接跳到最后,简单看看,直接拿来用即可。

二、vivado调用modelsim的过程

image.png

住里面主要说明两种文件:

2.1 compile.bat

set bin_path=D:\modelsim\win64
call %bin_path%/vsim  -c -do "do {tb_test_compile.do}" -l compile.log
if "%errorlevel%"=="1" goto END
if "%errorlevel%"=="0" goto SUCCESS
:END
exit 1
:SUCCESS
exit 0

这个脚本,调用了位于D:\modelsim\win64的vism.exe文件,让 modelsim执行了tb_test_compile.do脚本,并将日志信息,输出到了compile.log文件中

2.1.1 tb_test_compile.do

编译的过程是:

vlib modelsim_lib/work
vlib modelsim_lib/msim

vlib modelsim_lib/msim/xil_defaultlib

vmap xil_defaultlib modelsim_lib/msim/xil_defaultlib

vlog -64 -incr -work xil_defaultlib  \
"../../../../Miz_sys.srcs/sources_1/new/block.v" \
"../../../../Miz_sys.srcs/sources_1/new/unblock.v" \
"../../../../Miz_sys.srcs/sim_1/new/tb_test.v" \

quit -force

前面三条语句是新建一个库,并设置库的位置,如下图


image.png

vmap 是把系统的work库文件映射到新建的work库中
vlog 添加并编译HDL文件

2.2 simulate.bat 仿真操作

在编译成功之后,就使用simulate.bat去仿真目标模块

set bin_path=D:\modelsim\win64
call %bin_path%/vsim   -do "do {tb_test_simulate.do}" -l simulate.log
if "%errorlevel%"=="1" goto END
if "%errorlevel%"=="0" goto SUCCESS
:END
exit 1
:SUCCESS
exit 0

和刚才编译时,一样,只是调用vsim.exe去执行相应的脚本

2.2.1 tb_test_simulate.do

vsim -voptargs="+acc" -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -lib xil_defaultlib xil_defaultlib.tb_test 

set NumericStdNoWarnings 1
set StdArithNoWarnings 1

do {tb_test_wave.do}

view wave
view structure
view signals

run 1000ns

vsim命令的编译选项:

选项 说明
voptargs +acc 优化编译
-L unisims_ver(以这个为例) 链接unisims_ver库
-lib xil_defaultlib 这个和-L没啥区别(笔者已经试过了)

执行完下面的指令之后

vsim -voptargs="+acc" -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -lib xil_defaultlib xil_defaultlib.tb_test 

两个set无关紧要,也就关一关警告。
之后,就执行tb_test_wave.do脚本
这个脚本的内容很简单

add wave *

说白了就是添加了所有的信号线,放到了右边的框里(这个时候,已经仿真完了),完事之后,执行:

view wave
view structure
view signals

run 1000ns

查看波形,查看结构,查看信号线,同时设置了一下具体时间。

三、把Vivado生成的脚本转变为一个通用的脚本

通过上面的论述,其实只需要更改Vivado生成的脚本,就可以做一个简单的通用Modelsim仿真自动化工具了

改的东西,最基本的仅仅是:

modelsim更进一步的使用,就参照下一个文档

上一篇下一篇

猜你喜欢

热点阅读