1. OCC IP电路结构概述
在芯片设计领域,可测试性设计(DFT)是确保芯片量产质量和可靠性的关键环节。OCC(On-Chip Clocking)作为DFT架构中的核心模块,主要负责测试时钟的生成与控制。不同于传统的two pass flow流程,将OCC作为IP预先集成到前端设计中正成为一种高效的新趋势。
这种预先集成方案的核心优势在于:
- 前端设计阶段即可锁定时钟结构,避免后期迭代
- 减少工具自动插入带来的时序收敛风险
- 便于跨团队协作和版本管理
实际项目中,我们通常采用标准单元库中的BUF和DFF搭建OCC电路。以某28nm工艺节点为例,基础电路结构包含:
- 时钟缓冲链(3级BUF16P90单元)
- 使能信号同步寄存器(DFCNQD0BWP系列)
- 脉冲宽度控制逻辑(与门+或门组合)
关键经验:在布局阶段需要将OCC模块放置在对应时钟域的物理中心位置,时钟走线长度差异需控制在±50ps以内,否则会导致测试模式下的时钟偏斜问题。
2. OCC功能实现细节
2.1 时钟滤波机制解析
OCC的核心功能是通过数字滤波产生精确的测试脉冲。其工作原理类似于摄影中的"快门控制"——需要准确捕捉特定时刻的信号状态。以下是五种工作模式的具体实现:
-
at-speed同频测试模式:
- 采用PLL倍频后的功能时钟(如1GHz)
- 通过移位寄存器产生相位差180°的两个脉冲
- 典型参数:pulse_width = 0.5ns, skew < 20ps
-
stuck-at低速测试模式:
- 直接使用ATE提供的50MHz测试时钟
- 单脉冲宽度 = 1个ATE时钟周期
- 需添加时钟毛刺滤波器(Glitch Filter)
verilog复制// 脉冲使能生成电路示例
module pulse_en_gen (
input SCAN_EN,
input ate_clk,
input reset_x,
output SCAN_EN_DLY
);
wire SCAN_EN_buf;
BUFFD0BWP16P90CPD buf_inst (.I(SCAN_EN), .Z(SCAN_EN_buf));
DFCNQD0BWP16P90CPD dff_inst (.D(SCAN_EN_buf), .CP(ate_clk),
.CDN(reset_x), .Q(SCAN_EN_DLY));
endmodule
2.2 跨时钟域测试方案
对于多时钟域芯片,OCC需要处理更复杂的场景:
-
快时钟采慢时钟(200MHz -> 100MHz):
- 快时钟域产生2个连续脉冲
- 第二个脉冲与慢时钟上升沿对齐
- 建立时间余量需 > 0.3ns
-
慢时钟采快时钟(100MHz -> 200MHz):
- 需要插入1个cycle的延迟缓冲
- 采用双沿触发寄存器提高采样率
- 保持时间检查最为关键
实测数据:在某7nm项目中,采用上述方法使跨时钟域测试覆盖率从82%提升至97%。
3. 关键电路实现技术
3.1 低抖动时钟树设计
高速测试模式下,时钟抖动直接影响测试精度。我们采用三级优化策略:
-
物理层:
- 使用16um宽度的顶层金属布线
- 每500um插入时钟缓冲器
- 对称H-tree拓扑结构
-
电路层:
- 选择驱动能力递增的缓冲器链(4x-8x-16x)
- 添加片上去耦电容(每单元0.5pF)
-
控制层:
- 动态功耗管理单元
- 可编程驱动强度调节
3.2 时序收敛保障措施
在40nm工艺节点上的实测表明,OCC电路最容易出现以下时序问题:
-
建立时间违例:
- 解决方案:插入延迟链,步进精度20ps
- 典型补偿值:80-120ps
-
保持时间违例:
- 采用负延迟缓冲器
- 数据路径插入Latch隔离
-
时钟门控冒险:
- 使用同步使能信号
- 添加1ns以上的滤波窗口
4. 工程实践中的典型问题
4.1 测试模式切换异常
现象:从shift模式切换到capture模式时出现寄存器值丢失
根因分析:
- 时钟使能信号与测试时钟不同步
- 复位信号释放过早
解决方案:
- 增加同步触发器链(最少2级)
- 采用异步复位同步释放机制
- 添加模式切换监控电路
4.2 功耗引发的测试失效
案例数据:
- 正常模式功耗:50mW
- 测试模式峰值功耗:210mW
- 导致电压跌落达8%
优化措施:
- 分时启动测试逻辑
- 动态电压频率调整(DVFS)
- 测试向量重新排序
5. 进阶设计技巧
5.1 可编程脉冲宽度控制
现代OCC设计通常支持脉冲宽度调节,实现方法包括:
- 数字控制延迟线(DCDL)
- 4-bit控制字,步进精度10ps
- 线性度误差<3%
- 相位插值技术
- 8相时钟合成
- 适用于28nm以下工艺
5.2 自适应时钟校准
针对工艺偏差的补偿方案:
- 片上监测电路(RO, TDC)
- 后台校准算法
- 每100ms刷新一次参数
- 校准精度±5ps
在某5nm项目实测中,采用自适应校准使测试良率提升12%。
6. 设计验证方法论
完整的OCC验证需要覆盖以下场景:
-
功能验证:
- 100%状态机覆盖
- 所有时钟切换组合
-
时序验证:
- 蒙特卡洛仿真(1000次)
- 最坏情况时序分析
-
功耗验证:
- 动态IR drop分析
- 热仿真
建议建立自动化回归测试平台,典型检查项包括:
- 时钟切换毛刺检测
- 跨电压域信号完整性
- 测试模式覆盖率统计
经过多个项目验证,这套方法可将OCC相关bug减少80%以上。实际设计中还需要根据具体工艺和架构特点进行调整,比如在FinFET工艺中需要特别注意背偏效应的影响。
