什么是代码覆盖率(code coverage)?
代码覆盖率是验证激励是否完备,检验代码质量的一个重要手段。测试激励的代码覆盖率至少要达到95%以上,才能基本认为代码在逻辑上是通过质量控制的。如果代码覆盖率较低,则说明仿真没有执行到所有的代码或者测试文件有缺陷。
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 ):
在命令行窗口输入vsim -coverage work.top,然后run -all
为方便仿真测试和调试程序,在代码覆盖率仿真时应该使用脚本文件,可以使用modelsim直接建立一个do文件,将每一步的指令复制下来粘贴到do文件中就变成了脚