由 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)。
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是对每个模块的语句覆盖率进行统计的结果。
通过下拉箭头,选择要显示的统计内容
其中,每个统计项都有自己的含义,可根据英文意思理解,比如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...导出代码覆盖率报告,默认即可
文章评论(0条评论)
登录后参与讨论