关注公众号FPGA开源工坊获取更多内容。
在做仿真的时候往往会去做代码覆盖率和功能覆盖率的分析,来保证仿真是做的比较充分完备的。
在Vivado里面也支持我们做这项操作,现在就来看一下流程吧。
第一步:选择设置
第二步:在仿真选项里面依次找到下面的设置选项,默认vivado是没有打开覆盖率分析这个选项的。
第三步:做如下设置,其中cover是我们想要设置的覆盖率的名字,这个可以自己设置,./是覆盖率信息放置的位置,这两项都可以根据自己的使用来设置。sbct是设置想要收集哪些覆盖率信息,s是行覆盖率,b是分支覆盖率,c的条件覆盖率,t是翻转覆盖率。设置完成之后点击Apply保存设置就可以了。这样在我们仿真的时候就会进行覆盖率的收集了。
第四步:点击仿真,跑一个测试用例
然后就可以看到在对应的仿真目录下生成一个xsim.codeCov的目录,因为我设置的./所以生成的信息放在了这个目录下。
点进去的话,会发现是一个xsim.CCInfo文件,之后就需要我们处理一下,把他变成可读的html文件。
第五步:在TCL里面输入下面的命令
xcrg.exe -cc_report E:/myreport1 -cc_db cover -cc_dir E:/fpga_image_sim/fpga_image_sim.sim/sim_1/behav/xsim/xsim.codeCov/
就可以看到vivado在帮我们生成相应的报告
生成的报告:
然后点击dashboard.html查看报告。
就可以看到相应的报告了,我仿真就跑了很短的时间所以覆盖率很低。
并且我们可以按模块来查看相应的报告
每个模块内部的报告也可以看到:
然后可以根据详细的报告去构造特殊的测试案例来提升覆盖率。
最后解释一下刚刚那句命令的含义:
这个参数用来控制生成的报告放到哪个目录下
-cc_report E:/myreport1
后面的cover就是我们在设置界面所设置的名字
-cc_db cover
这个是生成的覆盖率信息的路径,我设置的./所以vivado生成到了sim目录下
-cc_dir E:/fpga_image_sim/fpga_image_sim.sim/sim_1/behav/xsim/xsim.codeCov/
关于这个命令更多的信息可以参见: