建立工程,添加*.v和*,如果是vhd和v混合仿真的情况,pile->CompileOrder->AutoGenerate,设置两者之间的编译顺序,pile->CompileProperties选择Coverage下面的选项,主要有Statement(声明)Branch(分支)Condition(条件语句)Expression(表达语句)接下来进入仿真阶段,可以图形操作也可以用脚本vsim-tps-L220model-Laltera_mf-Laltera_primitives-Lsgate-coverage-#-coverage表示有代码覆盖率的仿真#-novopt表示不优化任何寄存器(这样我们可以看到全部的信号波形)#-L220model-Laltera_mf-Laltera_primitives-Lsgate表示加载仿真库(例子是Altera库)log-r/*#记录全部信号,避免添加别的信号波形需要重新仿真viewsignal#打开信号窗口,#加载波形radixhex#信号变成16进制run600us#仿真600us查看代码覆盖率的4个窗口:InstanceCoverage,MissedCoverage,CurrentExclusions,Detials代开源代码可以看到增加了两列标记,HITS=绿色小勾表示覆盖,红的x表示没有覆盖BC=XT表示语句为真是未覆盖,XF表示语句为假时未覆盖把鼠标移到代码上时,右侧两列会有数字显示,表示该代码执行的次数2T表示真情况执行了2次,2F表示假情况执行了2次,0F表示假情况没有执行(没有覆盖)点击下面的Statement,Branch,Condition,Expression,Toggle,FSM可以得出具体的未覆盖的语句,便于修改激励经过我修改激励后:具体怎么修改激励要根据你自己的代码来实际修改,这个自己体会吧,哈哈!
Modelsim代码覆盖率测试说明文档 来自淘豆网m.daumloan.com转载请标明出处.