原创 modelsim 设置 code coverage

2014-4-15 07:41 4630 15 15 分类: FPGA/CPLD 文集: testbench

由 Quartus 直接调用 modelsim 仿真,不能实现 code coverage 检测功能,必须手动建立modelsim工程才行。

Modelsim代码覆盖率功能Code coverage,能报告出statement(语句)、branch(分支)、condition(条件)、expression(表达)、toggle(信号翻转)、fsm(有限状态机)等多种覆盖率情况。

 

1、编译选项(compile options):

在ModelSim的Workspace里选中需要查看代码覆盖率的文件,使用Ctrl键选择 多个文件,然后点击右键选择compile->compile  prperties->coverage,选择前四项(statement,brances,condition,expression)。

20140414215823131.jpg

2、编译(compile):

对所选择的文件进行编译,可在命令行窗口敲compile -all,也可在编译菜单里选择compile all。

3、仿真(simulate ): "start simulate" 设置simulate文件 ,最关键的一步,一定要在others选项中选择 “enable code coverage”,最后 添加波形窗口,添加信号后  "run-all"

4、观察结果(coverage result):

(1)选中View菜单,选择Code Coverage,然后打开Instance coverage,就可以看到coverage的窗口。其中,Instance coverage是对每个模块的语句覆盖率进行统计的结果。

通过下拉箭头,选择要显示的统计内容

20140414220606130.jpg

其中,每个统计项都有自己的含义,可根据英文意思理解,比如Stmt hits代表被执行的语句条数,这里主要看四个统计项:

Stmt,Brances,Condition和Expression的%覆盖率,覆盖率高于 90%显示为绿色,低于90%则显示为红色。另外,在Instance coverage窗口中选中某个模块之后,会在ModelSim的代码编辑窗口中很方便地了解这个模块的代码执行情况,其中Hits表示这一行的语句被执 行,BC表示到达这一条分支。

(2) 在 view ——code coverage——code coverage analysis/Details ,可以看到具体哪行代码被执行过,以及执行过几次等等情况

5、回到Instance窗口,右键单击选择Code coverage reports...导出代码覆盖率报告,默认即可

20140414220911703.jpg

 



 

 

 

 

文章评论0条评论)

登录后参与讨论
我要评论
0
15
关闭 站长推荐上一条 /2 下一条