路科验证MCDF_svlab5笔记_路科验证lab5实验文档_Hardworking_IC_boy的博客-CSDN博客
一、编译
在编译过程中,需要对于设计相关的文件设置额外的覆盖率编译选项,目的是通过工具自动统计你选中的代码覆盖率类型(功能覆盖率的收集需要写额外的代码)。注意,我们的关注点在于执行了设计中的多少代码,而不是测试平台,所以不需要对测试相关的文件进行覆盖率编译选项的设置。
1、只选中与设计相关的文件
2、点击右键,选择compile->compile properties,在弹出设置栏的coverage一栏中,如图选择以下选项,然后点击OK。
3、完成所有文件的编译“Compile All”。这一步将在编译DUT文件时生成代码覆盖率的模型。
二、仿真
vsim -i -classdebug -solvefaildebug -coverage -coverstore D:/Questasim64_10.6c/win64/project/svlab5/coverage -testname mcdf_full_random_test -sv_seed random +TESTNAME=mcdf_full_random_test -l mcdf_full_random_test.log work.tb
-coverage:添加这个命令能在仿真时产生代码覆盖率的数据。(功能覆盖率会默认生成,和此选项无关)
-coverstore COVERAGE_STORAGE_PATH:此命令用来在仿真结束时生成覆盖率数据并存储到你设定的COVERAGE_STORAGE_PATH位置。我自己是设在了下面这个位置:D:/Questasim64_10.6c/win64/project/svlab5/coverage。注意不要有中文
-testname TESTNAME:这个选项是你需要添加本次仿真的test名称,可以使用和+TESTNAME选项一样的test名称。仿真结束后,会在COVERAGE_STORAGE_PATH下产生一个覆盖率数据文件“{TESTNAME}_{SV_SEED}.data”。由于仿真时传入的种子是随机值,所以每次提交测试结束后,都会产生一个独一无二的覆盖率数据。
代码覆盖率:通过View->Coverage->Code Coverage Analysis,点击新添加的窗口,然后在sim窗口下选择dut下的某一个模块,查看代码的执行情况
功能覆盖率:通过View->Coverage->Covergroups打开窗口即可查看,
执行"quit -sim"命令之后,可以发现文件下中多了一个data文件
三、合并覆盖率
仿真不同的测试,或者多次仿真同一个测试后,会产生多个.data覆盖率数据文件,我们就可以进行合并覆盖率的操作。
vcover merge -out merged_coverage.ucdb D:/Questasim64_10.6c/win64/project/svlab5/coverage
此处的地址就是之前设定.data文件放置的位置。
四、分析覆盖率
可以选择Tools->Coverage Report->HTML生成报告
下面这些选项就选择你关注的就行。
详细代码分析:MCDF实验——Lab5_煎丶包的博客-CSDN博客