微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > modelsim之do文件的最简使用示例

modelsim之do文件的最简使用示例

时间:10-02 整理:3721RD 点击:
文章背景:在大公司的大项目中的do文件比较复杂,调用的库比较多,编译的代码也比较多,仿真一次可能几十分分钟至几个小时。对于想验证独立小功能,在大工程上验证的话是非常麻烦,花的时间也会很长。此次用了最简单的一个实例说明了do文件在modelsim中的使用。

sim.do
#新建work库
vlib work
#该命令的作用是将目前的逻辑工作库work和实际工作库work映射对应
vmap work work
#编译v文件
vlog F:/modelsim_prj/*.v
#仿真work库中名为counter_tb的模块,最小时间单位为1ns
vsim  work.w_tb_top  -t 1ns

add wave -r sim:/w_tb_top/*
run 40us


w_tb_top.v
//wsz@20160508
`timescale
1ns/100ps
module  w_tb_top(
output
clk_o);
reg
board_clk_62_5 ;
reg
board_rst ;
initial
begin
board_clk_62_5 = 0 ;
board_rst = 1 ;
board_clk_62_5 = 0 ;
board_rst = 1 ;
#700 ;
board_rst = 0 ;
#400 ;
board_rst = 1 ;
end

always #8 board_clk_62_5 = ~board_clk_62_5 ;
assign clk_o = board_clk_62_5;

endmodule

#新建work库
vlib work
#该命令的作用是将目前的逻辑工作库work和实际工作库work映射对应
vmap work work
#编译v文件
vlog F:/modelsim_prj/*.v
#仿真work库中名为counter_tb的模块,最小时间单位为1ns
#需要添加-novopt,否则除了端口信号外的其他信号,其他信号不能在wave中呈现
vsim -novopt work.w_tb_top  -t 1ps
#添加波形信号到wave
add wave -r sim:/w_tb_top/*
#忽略错误
onerror {resume}
#记录设计相关的信号
log -r /*
#quietly WaveActiveNextPane {} 0
run 40us

谢谢分享!

thanks for sharing

补充:
如果不使用-novopt 命令行的话,会导致有些信号不会显示到modelsim中。

do文件里换行使用“\”在句末表示,增加层次感,方便理解,而且不会报错
例如:
vsim         -t 1ps \
        -L $XILINX_LIB/xilinxcorelib_ver \
        -L $XILINX_LIB/secureip \
        -L $XILINX_LIB/simprims_ver \
        -L $XILINX_LIB/unisims_ver \
        work.w_tb_top
不使用“\”的话需要这样写:
-L $XILINX_LIB/xilinxcorelib_ver -L $XILINX_LIB/secureip -L $XILINX_LIB/unisims_ver -lib work rniten_tb_top glbl

当然要走vopt flow,可以用acc来控制加哪些信号。Modelsim 10以上还可以启用debug功能...

上一篇:pcie IP
下一篇:请教DC综合

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top