资源描述
建立工程,添加*.v和*_tb.v或者vhd
编译全部的代码,如果是vhd和v混合仿真的情况,假若编译不过去可以点击Compile->Compile Order->Auto Generate,设置两者之间的编译顺序,软件可以自动设置
全选代码点击右键选择Compile ->Compile Properties
选择Coverage下面的选项,主要有Statement(声明)Branch(分支)Condition(条件语句)Expression(表达语句)
接下来进入仿真阶段,可以图形操作也可以用脚本
vsim -t ps -L 220model -L altera_mf -L altera_primitives -L sgate -coverage -novopt work.mix_ts_out_tb
#-coverage表示有代码覆盖率的仿真
#-novopt表示不优化任何寄存器(这样我们可以看到全部的信号波形)
#-L 220model -L altera_mf -L altera_primitives -L sgate表示加载仿真库(例子是Altera库)
log -r /*
#记录全部信号,避免添加别的信号波形需要重新仿真
view signal
#打开信号窗口,便于知道需要加载哪些待观察波形
do wave.do
#加载波形
radix hex
#信号变成16进制
run 600us
#仿真600us
查看代码覆盖率的4个窗口:Instance Coverage,Missed Coverage,Current Exclusions,Detials
代开源代码可以看到增加了两列标记,HITS=绿色小勾表示覆盖,红的x表示没有覆盖
BC=XT表示语句为真是未覆盖,XF表示语句为假时未覆盖
把鼠标移到代码上时,右侧两列会有数字显示,表示该代码执行的次数
2T表示真情况执行了2次,2F表示假情况执行了2次,0F表示假情况没有执行(没有覆盖)
点击下面的Statement,Branch,Condition,Expression,Toggle,FSM可以得出具体的未覆盖的语句,便于修改激励
经过我修改激励后:
具体怎么修改激励要根据你自己的代码来实际修改,这个自己体会吧,哈哈!
2012.7.12 edan 写于OVT公司
展开阅读全文