先说最终可以达到的效果:运行run.bat文件后,modelsim在后台运行(从始至终不出现GUI),约5秒左右,debussy代码窗口和波形窗口出现,在波形串口里(如图1)点击添加信号按钮即可将所需要观察的信号添加进来(默认是保存仿真过程中的所有信号)。接下来就可以在debussy中分析波形
图1:点击波形窗口的添加波形按钮,加入观察信号
整个自动仿真过程所需文件如图2示,其中顶层的TB中需要添加一处代码,另外需要rtl.f,run.bat,sim.do这三个文件。一共是4个注意的地方,接下来,分别介绍这4处。
图2:rtl是源文件夹,其余三个是新文件
1) 顶层的TB中添加代码:
initial begin
$dumpfile("x4.vcd"); //表示生成vcd(值变化存储)文件
$dumpvars; //表示想要把指定模块的哪些层次的数值变化记录到VCD文
end //件中,没有任何参数表示,设计中所有变量的变化均记录到//VCD文件
2) rtl.f文件:
给出了verilog源文件的相对路径。
如:RTL/mem_arbiter.v
simulation/modelsim/mem_arbiter.vt
3) run.bat文件:
批处理文件调用modelsim,仿真完成后,生成vcd文件,
接着将vcd文件转化为fsdb(fast signal database)文件,
接着在debussy中打开fsdb文件,至此波形窗口已经打开。
//-------------------------------------------------------------------------------------------
::关闭回显
@ECHO OFF
::设置软件路径
SET debussy=D:Debussy54inDebussy.exe
SET vfast=D:Debussy54invfast.exe
SET vsim=D:modelsim10.1cwin32vsim.exe
::ModelSim Command
%vsim% -c -do sim.do
%vfast% x4.vcd -o xxx4.fsdb
::删除ModelSim生成的相关文件
::RD work /s /q
::DEL transcript vsim.wlf /q
::Debussy Command
%Debussy% -f rtl.f -ssf xxx4.fsdb -2001
::删除波形文件
::DEL Debussy.fsdb /q
::删除Debussy生成的相关文件
::RD Debussy.exeLog /s /q
::DEL novas.rc /q
::退出命令行
EXIT
//----------------------------------------------------------------------------------------------
4) sim.do文件:
//----------------------------------------------------------------------------------------------
vlib work #建立work库
vlog -f rtl.f #编译rtl.f所指示的源文件
vsim -novopt work.mem_arbiter_vlg_tst #以mem_arbiter_vlg_tst作为顶层,开
run -all #始仿真
quit #退出modelsim
//----------------------------------------------------------------------------------------------
☆注意sim.do文件中所指示的仿真顶层,由于quartus的“Start TestBench Tempate Writer”生成的TB文件名和内部的实体名是不一致的,这次我就是由于粗心将顶层写为了mem_arbiter(TB文件名),所以一直提示没有生成x4.vcd。还是要一再细心,然后灵魂在场啊~!