芯片dft覆盖率

芯片dft覆盖率
ATPGDC-SCAN覆盖率分类体系DC-Scan 的覆盖率指标ATPG 的覆盖率指标核心关系DC-Scan 是 ATPG 的前提完整覆盖率计算流程Step 1: DC-Scan 阶段结构验证Step 2:ATPG 阶段TetraMAXStep 3: 综合覆盖率报告提高覆盖率的建议快速检查清单覆盖率分类体系┌─────────────────────────────────────────┐│ 芯片级测试覆盖率 │├─────────────────────────────────────────┤│ ┌─────────────┐ ┌─────────────────┐ ││ │ DC-Scan │ │ ATPG │ ││ │ (结构测试) │ │ (向量生成) │ ││ │ │ │ │ ││ │ • Scan cell │ │ • Stuck-at │ ││ │ 插入率 │ │ • Transition │ ││ │ • Chain │ │ • Path Delay │ ││ │ 完整性 │ │ • IDDQ │ ││ └─────────────┘ └─────────────────┘ ││ ││ ┌─────────────────────────────────┐ ││ │ BIST / MBIST / LBIST │ ││ │ (Memory / Logic 自测试) │ ││ └─────────────────────────────────┘ ││ ││ ┌─────────────────────────────────┐ ││ │ 功能测试 / 模拟测试 │ ││ │ (Analog / IO / 边界扫描) │ ││ └─────────────────────────────────┘ │└─────────────────────────────────────────┘DC-Scan 的覆盖率指标DC-Scan 阶段关注的是结构覆盖率不是故障覆盖率指标含义计算方式Scan Cell Insertion Rate时序单元被替换为 scan cell 的比例scan_cells / total_sequential_cells × 100%Scan Chain Coverage设计中有多少逻辑在 scan chain 可达范围内基于可控制性/可观测性分析Controllability通过 scan 端口控制内部节点的能力SCOAP 算法 / 概率分析Observability通过 scan 端口观测内部节点的能力SCOAP 算法 / 概率分析ATPG 的覆盖率指标ATPGAutomatic Test Pattern Generation关注的是故障覆盖率故障模型说明覆盖率计算Stuck-at节点固定 stuck-at-0 或 stuck-at-1detected_faults / total_faults × 100%Transition (at-speed)慢速-to-快速或快速-to-慢速转换延迟故障同上Path Delay特定路径的延迟故障基于关键路径覆盖IDDQ静态电流故障基于 quiescent 电流测量Bridge相邻线短路故障基于物理邻近性分析核心关系DC-Scan 是 ATPG 的前提┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐│ DC-Scan 插入 │ → │ ATPG 向量生成 │ → │ 故障覆盖率报告 ││ │ │ │ │ ││ • Scan cell │ │ • 基于 scan │ │ • Stuck-at: 98% ││ • Scan chain │ │ chain 结构 │ │ • Transition: 95%││ • Test pin │ │ • 自动生成测试 │ │ • Total: 97% ││ 连接 │ │ 向量 │ │ │└─────────────────┘ └─────────────────┘ └─────────────────┘↑ ↑结构覆盖率 故障覆盖率(90-100%) (目标 95%)问题答案DC-Scan 覆盖率 ATPG 覆盖率❌不是相加关系DC-Scan 是 ATPG 的什么✅前提条件和基础设施没有 DC-Scan 能做 ATPG 吗⚠️ 很难除非是全功能测试ATPG 覆盖率依赖什么依赖 scan chain 的完整性和可访问性完整覆盖率计算流程Step 1: DC-Scan 阶段结构验证# DC/ICC2 中报告 scan 结构覆盖report_scan_configuration report_scan_chain-all## 计算 scan cell insertion ratesettotal_seq[sizeof_collection[get_cells-hier-filteris_sequentialtrue]]setscan_cells[sizeof_collection[get_cells-hier-filterscantrue]]setinsertion_rate[expr double($scan_cells) / $total_seq * 100]echoScan cell insertion rate: ${insertion_rate}%Step 2:ATPG 阶段TetraMAX# TetraMAX 中运行 ATPG 并报告故障覆盖率run_atpg-auto report_summaries# 或详细报告report_faults-summary report_faults-level{undetected detected}report_faults-class{DS DI PU PT UD UU}Step 3: 综合覆盖率报告层级指标目标值结构层Scan cell insertion rate 95%Scan chain integrity100% (无断链)故障层Stuck-at fault coverage 98%Transition fault coverage 90% (at-speed)Total fault coverage 95%系统层Test Escape Rate (DPM) 100-500 DPM提高覆盖率的建议瓶颈解决方案工具2 个 intentional non-scan cell加 observation pointset_dft_configuration -observability enable70 个 shift-register强制替换为 scan cellset_scan_configuration -replace trueICG 相关 fault确保 test pin 连接 加 observation pointreport_clock_gating -test_pin组合逻辑 undetected fault增加 ATPG effort / 加 test pointTetraMAXset_atpg -effort high延迟故障加 transition fault ATPG at-speed 测试TetraMAXcreate_patterns -type transition快速检查清单# # DC 阶段确认 scan 结构# report_scan_configuration report_scan_chain-all report_clock_gating-test_pin-verbose report_dft_drc-summary# # TetraMAX 阶段确认故障覆盖# # 读入 design scan protocolread_netlist design.v run_build_model top run_drc scan.spf# 运行 ATPGadd_faults-all run_atpg-auto# 报告覆盖率report_summaries report_faults-summary report_faults-level undetected# 如果 coverage 不足加 test point 或提高 effortset_atpg-effort high run_atpg-auto总结DC-Scan 覆盖率和 ATPG 覆盖率不是相加关系而是层次递进关系**——DC-Scan 提供结构基础ATPG 在此基础上生成向量并计算故障覆盖率。最终 sign-off 看的是 ATPG 故障覆盖率。