1、建立工程,添加*.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 alt
2、era_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 进制r
3、un 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 公司