分享

OCC的架构功能介绍以及插入

 mzsm 2022-06-22 发布于湖北

在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电路应运而生。

01

什么是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的主要功能介绍

02

OCC的架构及功能

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

图片

clock chain的输入输出未在下图画出

-OCC的基本逻辑

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

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

图片

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

图片

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处于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测试。

图片

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

图片

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电路的插入需要遵守一些规则:

· 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的正确插入方法,驱动divider的clock也是来自于PLL的free-running的clock。

图片

图一

图片

图二

END

\  Silicon Elite    

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多