跑完tmax后,会出来一份这样的报告,首先需要看懂这份报告。
其中覆盖率的计算是DT和UD的faults除以total的faults.如图(57244+144)/58628=97.8338%.和报告相对应。
官方的计算公式如下:(PS: 有点复杂,看不太懂)
这不是重点,重点是要搞清楚各个faults的含义,即DT,PT,UD,AU,ND都代表什么?
使用命令:
set_faults -summary verbose
run_atpg -auto
可以查看更详细的fault分类:
1. DT :
DS
DI
2.PT :
AP
NP
3.UD
UU
UO
UT
UB
UR
4. AU
5.ND
NC
NO
使用命令write_fault xxx -class au 输出有哪些au的电路,方便用来进行debug。
--代表与前面的fault等价.
故障等价:(PS:这个还没有理解是什么意思)
最后想要提高覆盖率一般的操作方式是:
1.将数字部分的输入用mux切到寄存器的输出。
2.数字部分的输出尽可能少的mux到固定值。
3.将数字部分组合逻辑的输出放到寄存器中,DC综合时将这个寄存器设置为don‘t touch。
另外再对scan 仿真debug时,由于一般生成所有pattern时,仿真会很慢,为了debug我们只需要看几个pattern,tmax在生成pattern时用命令
write_patterns ./xxx.stil -format stil -serial -replace -first 0 -last 3
即从pattern0 开始生成3个pattern,这样debug起来会很快。