📌 景芯训练营 · DFT答疑
ICG的TE端到底该接scan_enable还是test_mode?
学生问:"老师,综合后工具报TEST-130,说ICG的test pin没接。我看网上有人说接scan_enable,有人说接test_mode,到底哪个对?接错了是不是覆盖率就崩了?"
这个问题训练营群里被问过十几次。很多学员觉得"接谁都一样,反正测试时把时钟打开就行"。但这两个信号的行为完全不同,接错了直接吃掉一大片覆盖率。下面四个子问题想明白,你就不会再选错。
❶ scan_enable和test_mode在shift阶段和capture阶段的电平分别是什么?
scan_enable只在shift时为1,capture时为0;test_mode在整个测试期间(shift+capture)都为1。如果TE接test_mode,ICG在capture阶段一直被强制打开------那EN端的function logic还能被ATPG测试到吗?
❷ 如果TE接test_mode,ICG后面的寄存器覆盖率会不会受影响?
TE接test_mode时,ICG在capture阶段始终transparent,EN端被bypass。ATPG跑stuck-at fault时,EN端的0/1故障无法被toggle,直接变成AU(ATPG Untestable)。一片ICG后面可能挂着几十个寄存器,EN端逻辑的故障覆盖率全丢了。
❸ 有人说"TE接scan_enable,capture阶段ICG可能关断,导致后面的寄存器没时钟,ATPG也测不到",这个说法对吗?
这个说法混淆了"时钟可控"和"覆盖率"。TE接scan_enable时,shift阶段ICG打开保证scan chain能移位;capture阶段ICG由EN端function logic控制,EN端本身是可以被ATPG激励的。如果某个pattern的EN=0导致ICG关断,那确实该pattern capture不到这片寄存器------但这恰恰是function mode的真实行为,不是DFT bug。
❹ 如果项目里已经接了test_mode,除了改连线,还有什么办法补救覆盖率?
如果RTL已经freeze、netlist已经签核,改连线成本太高。可以在EN端插入control point(test point),用scan_mode信号在test mode下旁路EN端逻辑。代价是面积和时序,但能救回覆盖率。具体怎么插、插在哪、会不会引入glitch?set_clock_gating_style -control_point before -control_signal scan_enable
🔐 完整答案+覆盖率对比数据+Tcl脚本 已整理至知识星球
含scan_enable vs test_mode覆盖率实测对比、ICG EN端故障分析报告、以及control point插入checklist
