片上时钟控制器 OCC
片上时钟控制器 OCC
概念解析
定义与起源
术语定义:片上时钟控制器(On-Chip Clock Controller, OCC)是DFT中用于at-speed测试的关键硬件——在测试模式下产生高速时钟脉冲——让芯片在自己的频率下测试transition故障和path delay故障。没有OCC——测试时钟只能从ATE通过IO引脚输入——频率受限于IO的带宽——通常只能到100-200MHz。OCC可以从PLL直接产生GHz级的测试时钟。
OCC是现代SoC的标配——特别是在28nm以下——transition故障的检测必须用at-speed测试(慢速测试检测不到transition故障)。OCC的挑战是:在测试模式下精确控制时钟脉冲的timing和数量——不产生glitch——不违反clock tree的约束。
核心要义
第一,OCC=在芯片内部产生高速测试时钟。 ATE提供低速参考时钟→OCC从片上PLL产生高速时钟→通过clock gating/switching送到被测试的时钟域。OCC可以产生:single pulse(单脉冲)、连续脉冲序列(burst)、或特定模式的脉冲(如2个fast pulse+1个slow)。
第二,OCC需要在DFT模式下精确控制时钟。 正常功能模式:时钟由PLL自动控制。测试模式:OCC接管——你需要告诉它:产生几个脉冲、脉冲之间的间隔、哪个时钟域接收。这些控制信号来自JTAG或测试寄存器——在测试向量中配置。
第三,OCC+ATPG=at-speed testing。 TetraMAX生成的at-speed测试向量假设时钟是"理想"的。但真实时钟通过OCC有延迟和jitter。OCC需要设计得足够"干净"——时钟输出的jitter<5%时钟周期——否则可能产生false violation。
实践应用
* OCC设计要避免glitch:时钟路径上的任何glitch都可能被当成有效时钟脉冲——导致测试结果失效。 * OCC+CCD(并发时钟数据)优化:CCD在物理设计时考虑OCC的时钟延迟——确保OCC产生的时钟在所有corner下都满足时序。 * 每个时钟域需要独立的OCC控制:不同域可能需要不同的测试频率和脉冲模式。
实战案例
某GPU的at-speed测试靠OCC:DDR接口跑3.2GHz——ATE最多提供200MHz时钟。OCC从PLL产生3.2GHz测试脉冲——transition故障覆盖率从75%(慢速)提升到96%(at-speed)。
OCC的glitch教训:某芯片OCC在时钟切换时产生了一个2ps的glitch——被下游FF当成有效脉冲——测试结果全部错乱。加glitch filter后修复。
OCC面积仅占0.5%:OCC本身很小——但它的价值巨大——没有OCC=没有at-speed测试=transition覆盖率<80%=field return风险。
常见误区
误区一:OCC=PLL。 OCC利用PLL——但它的核心是时钟控制和分配——不是时钟生成。OCC的关键技术是:无glitch的时钟切换、精确的脉冲计数、灵活的分频控制。
误区二:OCC只在测试时用。 某些设计在功能模式下也用OCC——做动态频率调节中的时钟切换。OCC可以设计成既支持DFT也支持功能模式。
误区三:OCC设计很简单。 OCC包含:PLL接口、时钟分频器、脉冲计数器、时钟门控、glitch filter——是一个完整的时钟管理子系统。需要仔细的跨时钟域设计和时序收敛。