别再混淆了!一文搞懂OCC、OPCG、SCM与Scan Chain的关系(附130nm以下时序问题解析)
芯片测试时钟架构深度解析从OCC原理到130nm工艺的时序挑战在芯片测试领域时钟控制模块的设计直接影响着测试覆盖率和生产效率。当一位DFT工程师第一次接触项目文档时往往会遇到OCC、OPCG和SCM这三个看似不同却又功能相似的术语。更令人困惑的是不同EDA工具厂商的文档中对这些模块的命名和实现方式也存在差异。这种现象背后反映的是芯片测试技术演进过程中不同厂商和工艺节点对同一核心功能模块的多样化实现。1. 测试时钟架构的核心概念解析1.1 术语迷雾OCC、OPCG与SCM的本质统一在芯片测试架构中On-Chip Clock (OCC)、**On-Product Clock Gating (OPCG)和Scan Clock Mux (SCM)**这三个术语实际上描述的是同一种功能模块的不同实现方式。它们共同的核心使命是在测试过程中实现时钟源的安全切换OCC强调该模块位于芯片内部(on-chip)与外部ATE时钟形成对比OPCG突出其在产品(on-product)上实现的时钟门控特性SCM直接描述其作为扫描时钟多路选择器的电路本质这三种实现方式在不同场景下的典型应用实现方式典型工艺节点主要应用场景优势基本OCC130nm以上传统ATPG测试结构简单增强型OPCG65nm-28nm低功耗设计集成时钟门控高级SCM16nm以下超大规模SoC支持多时钟域表不同时钟控制模块的实现特点对比1.2 扫描测试的两种基本模式现代芯片测试主要采用两种扫描测试模式DC Scan (Stuck-At测试)测试频率10-30MHz故障模型静态 stuck-at 模型主要检测制造过程中的固定型缺陷AC Scan (At-Speed测试)测试频率芯片实际工作频率故障模型transition delay 模型主要检测时序相关的动态缺陷// 典型的扫描链插入示例 module dff_with_scan ( input logic D, // 功能数据输入 input logic SI, // 扫描输入 input logic SE, // 扫描使能 input logic CLK, // 时钟 output logic Q // 输出 ); logic next_data; assign next_data SE ? SI : D; // 扫描多路选择器 always_ff (posedge CLK) begin Q next_data; end endmodule注意在实际设计中扫描链的插入需要考虑时钟域交叉(CDC)问题特别是对于多时钟域设计的芯片2. 测试时钟架构的设计实现2.1 OCC模块的工作原理OCC模块的核心功能是在测试过程中安全地切换时钟源Shift模式使用ATE提供的低频时钟(通常10-30MHz)加载和卸载测试向量Capture模式切换到芯片内部PLL产生的高频工作时钟进行全速测试典型的OCC电路包含以下关键组件时钟多路选择器(MUX)时钟使能控制逻辑毛刺(glitch)防护电路测试模式状态机2.2 时钟路径上的毛刺防护在时钟切换过程中毛刺防护是OCC设计中最关键的考虑因素。常见的防护措施包括同步切换控制使用两级触发器同步控制信号时钟门控一致性检查确保门控使能在时钟边沿前后保持稳定时钟树平衡保持切换前后的时钟路径延迟匹配// 简单的OCC时钟切换电路示例 module occ_circuit ( input logic at_clk, // ATE时钟 input logic pll_clk, // PLL时钟 input logic test_mode, // 测试模式 input logic shift_en, // 移位使能 output logic clk_out // 输出时钟 ); logic sel_clk; logic gated_pll_clk; // 时钟选择逻辑 assign sel_clk test_mode ? at_clk : pll_clk; // PLL时钟门控 assign gated_pll_clk pll_clk (~shift_en); // 最终时钟选择 assign clk_out test_mode ? (shift_en ? at_clk : gated_pll_clk) : pll_clk; endmodule提示在实际设计中建议使用工艺厂商提供的标准OCC单元而非完全自定义设计以确保最佳的时序特性和可靠性3. 130nm以下工艺的时序挑战3.1 工艺缩小带来的测试变革随着工艺节点演进到130nm以下芯片测试面临新的挑战动态缺陷占比增加transition故障成为主要失效模式时钟偏差更敏感更小的时序余量要求更精确的时钟控制功耗密度增大测试期间的功耗管理变得至关重要工艺节点与测试需求的变化关系工艺节点主导故障模型测试频率要求关键测试技术350nmStuck-At50MHzDC Scan250-130nmMixed50-200MHzDCAC Scan130nm以下Transition200MHzAt-Speed表工艺节点与测试技术的演进关系3.2 Transition故障模型详解Transition故障模型主要检测两类时序问题Slow-to-Rise信号从0到1的转换过慢Slow-to-Fall信号从1到0的转换过慢在ATPG中transition测试需要两个时钟脉冲Launch脉冲触发信号转换Capture脉冲捕获转换结果测试向量的生成需要考虑以下因素路径延迟时钟偏斜(skew)电源噪声影响4. 现代DFT流程中的时钟架构集成4.1 标准DFT实现流程完整的DFT实现流程通常包括以下步骤Scan链插入替换普通触发器为扫描触发器构建完整的扫描链结构修复扫描设计规则违例(DRC)测试压缩插入(可选)使用EDT(Embedded Deterministic Test)等技术减少测试数据量和测试时间OCC/OPCG模块集成自动或手动插入时钟控制逻辑验证时钟切换功能及时序ATPG模式生成生成stuck-at和transition测试向量验证测试覆盖率ATE模式转换将测试向量转换为ATE可识别的格式准备生产测试程序4.2 多时钟域设计的特殊考虑对于复杂的SoC设计OCC架构需要处理多个时钟域的协同测试异步时钟域处理避免跨时钟域的数据捕获时钟比例关系处理非整数倍时钟频率功耗域管理测试期间的分区供电策略# 典型的DFT工具命令示例(Synopsys流程) read_verilog design.v set_dft_signal -type ScanClock -port clk -timing {45 55} create_test_protocol dft_drc preview_dft insert_dft write_verilog design_with_dft.v注意在实际项目中DFT流程需要与物理实现团队紧密协作特别是对于时钟树综合(CTS)阶段随着工艺技术的持续进步测试时钟架构的设计变得越来越复杂。在实际项目中DFT工程师需要根据具体的工艺节点、设计规模和测试要求选择合适的OCC实现方式。一个经验法则是对于28nm及以下工艺建议采用EDA工具提供的最新OCC/OPCG架构而非完全自定义设计以确保最佳的测试覆盖率和可靠性。