================================================================================
DFT 中的 OCC (On-Chip Clocking) 介绍
================================================================================
1. 定义
--------------------------------------------------------------------------------
在 DFT(Design for Test,可测试性设计)中,**OCC** 是 **On-Chip Clocking**
(片上时钟生成/控制)的缩写。
OCC 是一种内置在芯片内部的电路模块,用于在**测试模式(Test Mode)**下生成、
控制和切换时钟信号。它的主要目的是替代或辅助外部 ATE(自动测试设备)提供的
时钟,以更灵活、更高效地驱动芯片内部的扫描链(Scan Chains)。
2. 为什么需要 OCC?
--------------------------------------------------------------------------------
在传统的扫描测试中,时钟通常由外部 ATE 直接提供。但随着芯片规模变大、频率
变高,这种方式面临以下挑战:
- **ATE 成本高昂**:高性能 ATE 通道昂贵且数量有限,难以同时驱动所有时钟域。
- **时序收敛困难**:外部时钟经过 Pad 进入芯片内部,路径延迟大且不确定,
难以满足高速测试(At-Speed Testing)的时序要求。
- **多时钟域复杂**:现代 SoC 有多个不同频率的时钟域,外部同步多个时钟非常
困难,且容易引入 skew。
- **功耗问题**:全速翻转所有扫描单元会导致巨大的瞬时功耗(Power Spike),
可能损坏芯片或导致测试失败。
OCC 通过在芯片内部生成和控制时钟,解决了这些问题。
3. OCC 的主要功能
--------------------------------------------------------------------------------
A. 时钟分频(Clock Division)
- 将外部输入的低频参考时钟(如 100MHz)在芯片内部分频或倍频,生成适合
扫描测试的高频时钟(如 500MHz 或 1GHz)。这使得芯片可以在接近其工作
频率下进行高速测试。
B. 时钟门控(Clock Gating)
- 在捕获(Capture)周期之间关闭时钟,或者只激活部分时钟域,以降低测试
功耗。这对于大规模芯片的可靠性测试至关重要。
C. 时钟切换(Clock Switching/Muxing)
- 在不同的时钟源之间进行无毛刺(Glitch-free)切换。例如,从功能时钟
切换到测试时钟,或在不同的测试时钟域之间切换。
D. 相位调整(Phase Shifting)
- 调整不同时钟域之间的相位关系,以满足建立时间(Setup)和保持时间
(Hold)的要求,特别是在跨时钟域(CDC)测试中。
E. 脉冲生成(Pulse Generation)
- 生成精确宽度的时钟脉冲,用于特定的测试算法(如 Transition Delay Fault
测试),确保触发器在正确的时间窗口内采样。
4. OCC 的典型结构
--------------------------------------------------------------------------------
一个典型的 OCC 模块通常包含以下组件:
- **MUX (Multiplexer)**:用于选择时钟源(功能时钟 vs. 测试时钟)。
- **Divider/Counter**:用于生成分频时钟,控制测试频率。
- **Enable Logic**:用于控制时钟的开启和关闭,实现功耗管理。
- **Glitch Filter / Handshake Logic**:防止时钟切换时产生毛刺,确保
时钟信号的完整性。
- **Scan Chain Interface**:OCC 的控制寄存器通常也连接到扫描链,以便
在测试模式下对其进行配置和观测。
5. OCC 与 DFT 流程的关系
--------------------------------------------------------------------------------
A. 插入阶段 (Insertion)
- 在 DFT 插入工具(如 Synopsys TetraMAX, Mentor Graphics FastScan,
Cadence Modus)中,OCC 通常作为预定义的宏(Macro)或 IP 被实例化到
设计中。设计师需要定义 OCC 的拓扑结构和控制信号。
B. 约束设置 (Constraints)
- 需要在 ATPG(自动测试向量生成)工具中定义 OCC 的行为,告诉工具哪些
时钟是由 OCC 生成的,以及它们的时序关系(如频率比、相位偏移)。
C. 验证 (Verification)
- 需要对 OCC 电路本身进行测试,确保它在测试模式下能正确工作。通常会将
OCC 的输出连接到扫描链,以便观察其行为。
- 还需要验证 OCC 在功能模式下的透明性,确保它不会干扰正常逻辑的运行。
6. 总结
--------------------------------------------------------------------------------
**OCC 是 DFT 中用于在芯片内部生成和管理测试时钟的关键电路。** 它使得高速、
低功耗、多时钟域的扫描测试成为可能,是现代大规模 SoC 测试不可或缺的一部分。
通过 OCC,设计师可以摆脱对外部 ATE 高频时钟源的依赖,降低测试成本,并提高
测试覆盖率和可靠性。
================================================================================