Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

Modelsim的仿真之路(结束篇之波形比较)

前言

有备份习惯的人都会在遇到一些问题时,把备份前后的内容进行比较,用以了解改动的地方是否为该问题的导致因素。

在仿真上,除了比较仿真激励代码外,直接比较仿真结果也是一种需要。

~Show Time~

图片[1]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

创建参考源

先准备创建一个用于比较的参考源,相应使用的参考代码文末获取,Modelsim进入相应的路径

cd e:/Soft_File/Sim_File/compare

 

接着编译,并添加仿真信号至窗口显示,并同步将仿真结果存在“gold.wlf” 的文件中

vlib work 
vlog *.v 
vsim -wlf gold.wlf test_sm 
add wave * 
run 750 ns

 

图片[2]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

运行完之后直接退出即可,准备创建测试源2

quit -sim

 

产生测试源

更改test_sm.v的文件内容,原本的’hbb换成’hac

图片[3]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

保存好代码后,重新在Modelsim内编译

vlog test_sm.v 
vsim test_sm 
add wave * 
run 750 ns

 

这个源就不用保存了,在仿真的界面准备导入刚刚存好的glod.wlf进行比较即可。

比较差异

在工具栏找比较的向导,Tools > Waveform Compare > Comparison Wizard

图片[4]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

出现的界面选好参考源,默认采用当前仿真的测试源进行比较,也可以自行指定测试源;

图片[5]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

点Next,在该界面选择要比较的形式,可以是全部信号,也可以是顶层端口,或者自定义,这时注意看窗口,会发现多了gold以及cmpare;

图片[6]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

选第一个“Compare All Signals”后,Next,可以看到Wave窗口添加了比较的信号,此时图标颜色也明显做了黄蓝的区分

图片[7]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

再Next,出现比较的按钮,点击Compute…,Wave界面的信号会出现红色的信息,即波形差异结果,点击Finish关掉向导窗口,准备后面的观察。

图片[8]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

结果查看

找到第一个红色区,然后点击比较结果旁边的“+”,把信号展开,相应的时序差异一目了然

图片[9]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

其他区域同样的操作可查看对比结果,在工具栏有这几个跳转的图标,可以自己体验下…..(选中某行的对比信号,然后按Tab键或者Shift+Tab键个人感觉好用些)

图片[10]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

除了看波形外,还可以直接看数据,工具栏View > List

图片[11]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

这时候List界面是空的,需要将compare界面的test_sm拖到List中显示

图片[12]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

拖动滚轴,差异的地方会是高亮黄色,点对应的变量,相应列会高亮绿色;

图片[13]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

保存结果

可以将比较的结果以报告的形式保存,Tools > Waveform Compare > Differences > Write Report

图片[14]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

默认以compare.txt的文件存于当前运行路径下

图片[15]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

还可以保存比较的差异与规则,后面直接调用即可进行相同的比较操作;

先保存差异信息,Tools > Waveform Compare > Difference > Save ,默认以compare.dif的文件存于当前运行路径下

图片[16]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

再保存对应的比较规则,Tools > Waveform Compare > Rules > Save ,默认以compare.rul的文件存于当前运行路径下

图片[17]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

然后就可以关闭比较界面,Tools > Waveform Compare > End Comparison ,准备重载结果查看下操作了。

图片[18]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

重载结果

此时的gold源是已经关掉了,因而重载前需要再将该文件打开

图片[19]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

图片[20]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

接着就可以正式重载结果了,Tools > Waveform Compare > Reload

图片[21]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

默认已经填好了上边存好的两个文件,点OK即可重现刚刚的结果~

图片[22]-Modelsim的仿真之路(结束篇之波形比较)-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

退出所有操作….

quit -sim 
#附注:可以命令关闭gold源文件 
dataset close gold

 

结束

本篇到此结束,关于ModelSim的仿真之路也到此结束,拖着写,也终于结束了该工具的总体使用,接下来就是你们自行发挥各种组合操作了!

 

请登录后发表评论

    没有回复内容