在130nm及以下的工艺中,即使一个很小的Delay Fault也会影响芯片正常工作的频率,导致芯片的时序不能满足设计要求。因此Delay Fault成为影响芯片质量的主要因素之一。

At-speed test已被证明是用来测试Delay Fault的有效方法,at-speed test就是让芯片在内部高速时钟上测试,但是该测试方法在fast capture mode下需要两个时钟脉冲,第一个时钟需要使得前一个scan flip-flop的值进行翻转来激活故障,第二个时钟需要使得前一个scan flip-flop的翻转值传播到后一个scan flip-flop,从而实现故障传播。这两个时钟来自于function clock,因此需要通过I/O pad提供这些at-speed clock脉冲,但是I/O pad可以支持的最大频率存在限制,OCC电路应运而生。

 OCC简介

片上时钟控制器(On-chip Clock Controllers ,OCC),也称为扫描时钟控制器(Scan Clock Controllers,SCC)。OCC 是插在SoC上的逻辑电路。在ATE(自动测试设备)上对芯片做ATPG测试时,OCC用于控制内部scan flip-flop时钟。

OCC电路可以实现ate clock和function clock之间的切换,并且控制在什么时刻跳转。所以standard的OCC在设计时需要拥有三个主要功能:clock selection, clock chopping control and clock gating。

occ 容器 occ装置是什么意思_occ 容器

OCC主要功能

OCC的架构及功能

这里我们会介绍一下Synopsys的OCC 1.0 ,Synopsys的OCC定义了多个输入输出端口:

occ 容器 occ装置是什么意思_ide_02

Synopsys OCC的IO口

OCC的基本逻辑

下图显示了one-single clock OCC的概念操作,未显示电路实现细节,本文目的是演示它是如何工作的。

当OCC处于function mode时,test mode = 0,此时pll _clk选通,OCC会向内部 design输入function clock,此时可以将OCC电路视为transparent。

occ 容器 occ装置是什么意思_自动测试_03

OCC基本逻辑

当OCC处于shift mode时,我们在ate clock的控制下将测试向量load进internal scan chain和clock chain内,所以test mode = 1,scan_en = 1,此时ate _clk选通,完成shift操作。

occ 容器 occ装置是什么意思_ide_04

OCC的shift mode

Synopsys的OCC 1.0 没有真正的slow capture mode,需要做stuck-at 测试时,可以直接从ATE机台提供OCC bypass mode capture clock。通过外部ATE机台对ate clock的pulse进行适当的控制就可以进行stuck-at测试,不需要clock chain的控制。此时test mode = 1,pll_bypass = 1。

occ 容器 occ装置是什么意思_ide_05

OCC的bypass mode

当OCC处于fast capture mode时,期望在capture阶段生成两个function clock脉冲。所以test mode = 1,scan_en = 0,pll_bypass = 0,此时pll _clk选通,并且PLL cycle counter 和clock chain的输出经过ICG共同决定gating几个时钟脉冲,完成at-speed测试。

occ 容器 occ装置是什么意思_occ 容器_06

OCC的fast capture mode

Fast capture mode的波形图如下图所示,下面我们来简单地分析一下。

occ 容器 occ装置是什么意思_occ 容器_07

Fast capture mode波形图

当我们进行capture操作时,scan enable信号要从1变为0,为了保证得到的是稳定的0信号,我们需要先经过sync cell的3个synchronization cycles。

通过先前shift过程中load在clock chain里的test pattern(0110)以及PLL cycle counter的共同控制,在第2、3个cycle给出两个pulse,即launch和capture。

最后scan enable信号从0变为1,完成capture的操作,进入shift过程。

需要注意的是,对于Synopsys的OCC,Scan_en = 1后,ate clock在第二个pulse才出现 ,此过程被称为pre_shift 。

OCC的位置

OCC电路是一个IP,所以我们需要打断Design的一些节点,将其插入。

如果external clock port直接驱动scan flip-flop, 测试机可以直接在clock port上加激励控制输入clock的频率和时间,ATPG可以产出这样的pattern。然而大部分design中flip-flop都是由倍频分频处理过的PLL clock驱动, 没法从外部去直接控制,所以需要OCC控制频率和什么时间出pulse。

所以,OCC应插在PLL clock的output之后或是不能直接被primary input控制的clock处。

occ 容器 occ装置是什么意思_ide_08

OCC插入位置示意图

OCC电路的插入需要遵守一些规则:

• External clock可以不用OCC

• Internal clock必须插OCC

• OCC 插在PLL或者divider out clock后

• Internal clock和external clock可以混合插入OCC

以多个插入DFT的OCC为例,可以看到下图是一个错误插入方法,原因是驱动divider的clock已经被OCC执行过chopping的动作,不再是free-runing的clock,这样就无法得到期待的clock。

occ 容器 occ装置是什么意思_时钟脉冲_09

OCC插入位置的错误示范

下图为OCC的正确插入方法,驱动divider的clock也是来自于PLL的free-running的clock。

occ 容器 occ装置是什么意思_时钟脉冲_10

OCC插入位置的正确示范