Synopsys SolvNet, Mentor training 都有全面的 simulation fail debug guideline, 可以参考.
需确认Simulation 环境与 ATPG constraints 一致. Netlist, PLL verilog model, ATPG pattern, ATPG constraints, etc
通过Dump waveform or checker 确认, chip-level/core-level scan signals, 在shift/capture phase 是符合预期的, 跟 ATPG test procedure 一样. 比如说, Scan mode, scan enable, scan reset, scan clocks, scan inputs, scan outputs, PLL clocks, OCC control bits. 即是从chip-level I/O pad 能正确地送值给 internal scan chains, 能够从chip-level output I/O pad 观察到.
以上都没有问题, 如果是post-simulation with SDF, 再确认simulation (some VCS options, etc)环境是不是正确.
以对Design, ATPG pattern的了解都没有办法, 只有dump waveform实实在在找问题.
比如说由于timing violation(SDF), 除 review STA, simulation report violated path/register外, 这就是必须要做的了.
Scan chain length 比较长, debug 费时的问题怎么解决?
1. Parallel run simulation, NSHIFT = 2, etc (如果说是post-simulation fail, NSHIFT比pre-sim pass的值加1)
2. 在 load procedure 完, 去观察 scan chain care bit value 是不是与ATPG or pre-sim pass value 一样?
3. 如果不一样, 就找到了有问题的register. (只敲一个shift clock pulse)
无论是pre-sim/post-sim, chain test or logic test fail 都有效.
如何去观察整条scan chain registers? 可以automatic写一个monitor test-bench, 在某一个时间点display register value. 对比pass/fail两个结果就知道哪个register是错的.
如果是pre-sim, 没有可以对比的, 那要想办法从ATPG pattern DAT 看怎么提取了. |