UG900 Vivado Design Suite User Guide:Logic Simulation Chapter7.4.3Code Coverage Support

        代码覆盖率是衡量RTL代码在测试台上执行得有多好的一个指标。启用时,模拟器会自动提取代码覆盖率。AMD Vivado™ 模拟器目前支持四种类型的代码覆盖:line, branch, condition和 toggle。
        当您为任何代码覆盖率类型启用代码覆盖率时,该工具会自动生成一个代码覆盖率数据库。要查看设计的覆盖范围,AMD Vivado™ 模拟器提供了一个名为xcrg(Xilinx覆盖率报告生成器)的独立可执行文件,可用于通过读取覆盖率数据库来生成覆盖率报告。模拟器支持的代码覆盖功能是:
模拟器支持的代码覆盖功能是:
        •行/语句覆盖率以及语句的精确执行计数
        •if-else、if-elsef、switch case、tenary操作符的分支机构覆盖范围
        •在代码覆盖率报告中检测并突出显示其他缺失和默认缺失
        •条件覆盖率,准确计数条件检查和评估为TRUE/FALSE的次数
        •已打包/未打包的reg、位、逻辑、wire数据类型
        •int、shorting、integer、字节数据类型和非动态结构成员
        •使用xcrg生成代码覆盖率HTML报告
        •设计代码覆盖率的面板视图
        •整个设计的文件、模块和层次实例列表
        •特定于文件的代码覆盖率视图、模块和特定于实例的视图
        •使用合并不同运行的行/语句、分支、条件和切换覆盖范围xcrg
        注意:目前,Vivado模拟器只支持SystemVerilog和Verilog代码的这些功能。VHDL还不受支持
                                Table 17: xcrg Command Options and Description

xcrg Option Description
-db_name arg xsim.covdb中数据库的名称。
如果未指定,则使用目录中存在的所有数据库。
-dir arg xsim.covdb数据库目录所在的路径。
默认值为/xsim.covdb。
-file arg 指定包含要还原的覆盖率数据库位置的文件。
-h 打印帮助信息并退出。
-help 打印帮助信息并退出。
-merge_db_name arg 合并数据库的名称。默认值为xcrg_mdb。
-merge_dir arg 保存合并数据库的目录。默认值为/xsim.covdb。
-nolog 取消生成日志文件。
-report_dir arg 保存覆盖率数据库和报告的目录。
此选项是强制性的
-report_format arg  指定所需的覆盖率报告格式HTML或文本或全部。默认为HTML
-log arg 指定保存日志的文件名。默认值为xcrg.log。
-version 打印XCRG的版本并退出。
-cc_db 指定用于保存代码覆盖率数据库的数据库名称(快照名称)。
代码覆盖率数据库可以从/xsim.codeCov/恢复。
-cc_dir 指定保存代码覆盖率信息数据库的目录。
代码覆盖率数据库可以从/xsim.codeCov/恢复。
默认值为/xsim.CodeCov/.
-cc_fullfile 在代码覆盖率报告中显示整个文件。
默认情况下,对于超过50000行的文件,此选项为OFF,并且只显示文件的模块内容。
-cc_report 保存代码覆盖率HTML报告的目录。
默认值为xcrg_code_cov_report。
-merge_cc 合并指定的代码覆盖率数据库,并创建一个输出合并的代码覆盖度数据库。
-cc_instancescount 指定代码覆盖率报告中显示的最大实例数。
默认值为100。

xcrg Examples

# Functional Coverage with one DUT and one TB generating html and text
reports
xelab -svlog DUT1.v -svlog TB1.v -cov_db_dir ./fRun1 -cov_db_name DB1 -R
xcrg -dir ./fRun1/ -db_name DB1 -report_dir ./fReport1 -report_format html
firefox ./fReport1/dashboard.html &
xcrg -dir ./fRun1/ -db_name DB1 -report_dir ./fReport1 -report_format text
gvim ./fReport1/xcrg_report.txt


# Merging Functional Coverage runs of one DUT and 2 TBs generating merged
html report (using TB from previous example)
xelab -svlog DUT1.v -svlog TB2.v -cov_db_dir ./fRun2 -cov_db_name DB2 -R
xcrg -dir ./fRun1 -db_name DB1 -dir ./fRun2 -db_name DB2 -merge_dir ./
fMerge1 -merge_db_name mDB1 -report_dir ./mfReport1
firefox ./mfReport1/dashboard.html &

# Code Coverage run and html report generation
xelab -svlog ccDUT.v -svlog ccTB.v -cc_type sbct -cc_db DB1 -cc_dir ./cRun1
-R
xcrg -cc_db DB1 -cc_dir ./cRun1 -cc_report ./cReport1
firefox ./cReport1/dashboard.html &


# Other examples
xcrg -h
xcrg -file /path/to/file
xcrg -file /path/to/file -db_name work.top
xcrg -dir /path/to/abc
xcrg -dir ./abc -report_dir def -report_format html
xcrg -dir ./abc -db_name work.top -report_dir def -report_format html
xcrg -dir /path/to/abc -db_name work.top -report_dir def -report_format text
xcrg -merge_dir m

xcrg -merge_db_name xyz -report_dir def
xcrg -report_format html -nolog
xcrg -report_format html -log xcrgOutput.log
xcrg -cc_db a1 -cc_dir ./
xcrg -cc_report abc -cc_db work.testbench -cc_dir ./xsim.codeCov/









 

你可能感兴趣的:(vivado,Vivado)