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


    前言

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

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

    创建参考源

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

    cd e:/Soft_File/Sim_File/compare
    
    • 1

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

    vlib work
    vlog *.v
    vsim -wlf gold.wlf test_sm
    add wave *
    run 750 ns
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20221106101655297

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

    quit -sim
    
    • 1

    产生测试源

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

    image-20221106105805602

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

    vlog test_sm.v
    vsim test_sm
    add wave *
    run 750 ns
    
    • 1
    • 2
    • 3
    • 4

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

    比较差异

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

    image-20221106102203448

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

    image-20221106102325627

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

    image-20221106110003781

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

    image-20221106110131347

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

    image-20221106110340290

    结果查看

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

    image-20221106110926817

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

    image-20221106111227535

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

    image-20221106112057602

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

    image-20221106112243712

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

    image-20221106112414839

    保存结果

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

    image-20221106112748918

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

    image-20221106112946049

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

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

    image-20221106113101810

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

    image-20221106113201976

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

    image-20221106113312156

    重载结果

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

    image-20221106113622449

    image-20221106113644974

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

    image-20221106113745853

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

    image-20221106113815466

    退出所有操作…

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

    结束

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

    表述有误的地方欢迎指出~~


    链接:https://pan.baidu.com/s/1NaQF9Q3SIwCwgcKjjESn9w
    提取码:dzkr
    复制这段内容后打开百度网盘手机App,操作更方便哦


    传送门

    更多精彩,等你发现~

  • 相关阅读:
    【Python】第八课 异常处理
    客观题【笔试】
    C++17开始取消std::codecvt_utf8支持
    在 Kubernetes 上部署 DM
    元数据管理-解决方案调研二:元数据管理解决方案——Saas/内部解决方案(3)
    背包问题汇总(01背包、完全背包、多重背包、分组背包)
    kube-scheduler源码分析(2)-核心处理逻辑分析
    MySQL数据库进阶篇
    leetcode 88:合并两个有序数组 。 双指针解法
    CSS样式怎么实现圆角矩形功能
  • 原文地址:https://blog.csdn.net/Smart_Devil/article/details/127714396