https://www.jianshu.com/p/f7a2bcaefb2e
SCAN技术,也就是ATPG技术-- 测试std-logic, 主要实现工具是:
产生ATPG使用Mentor的 TestKompress和synopsys TetraMAX;
插入scan chain主要使用synopsys 的DFT compiler。
通常,我们所说的DCSCAN就是normal scan test 即慢速测试,测试频率是10M-30M
AC SCAN 也就是at-speed scan 即实速测试,测试频率与芯片真实工作频率是一样的。
70年代到1995年这段时间里,由于芯片的工作频率很低只有20-100M,scan测试只有DC SCAN,我们就能捕捉到所有std-logic的制造缺陷。但是1995年以后,测试科学家和工程师发现通过DC SCAN测试没有缺陷的芯片在高工作频率下使用会有问题。其根本原因是随着制造工艺向深亚微米迈进,芯片的工作频率也提高到200M-1G,原来的SCAN测试方法和模型不再能捕捉到所有的std-logic的制造缺陷。大家的一致想法就是-“奔跑吧,SCAN” ,把SCAN的频率增加到与芯片的真实工作频率一致,同时使用新的Transition atpg model来产生测试pattern.
下面我们介绍DC SCAN与AC SCAN的异同
现在的工业量产的高速芯片都会要求能做DC SCAN测试和AC SCAN测试,所以DFT工程师也要同时插入两种测试电路,产生两套测试patterns。
具体实现流程如下
1 读入没有插入scan的网表
2 使用Design compiler 插入scan chain和OCC (on chipclocking)模块,同时插入mux, fix DRC
3 使用Testcompress 实现EDT压缩scan chain
4 使用Testcompress 产生测试DC/ACpattern,同时产生测试验证的Testbench
5 验证DC/AC patterns的正确性和电路的正确性
6 使用SDF,验证DC/ACpatterns相关电路的时序是否满足要求
7 使用DC/AC patterns (wgl文件)转换成ATE所需格式,在ATE上调试和使用
所以,OCC电路实现了在shift阶段和capture阶段对时钟(PLL/ATE)进行选择的功能。有两种方式可以插入OCC电路:
1. DFT Compiler自动插入。2. 手动编写OCC 的verilog 电路,在dft_insert阶段。
ATPG工具使用的Transition faultmodel如下图
OCC :On Chip Clock
OPCG :On-Product Clock Gating
SCM:scan clock mux
上面三种是同一东西的不同叫法,就是为了at-speed ATPG测试时在function clock和shift clock之间切换的控制逻辑。不同人设计的电路不一样,它就是一个2选一的clock mux,设计时注意处理一下cdc的path,不要产生glitch就行了。
何为全速测试(at speed test):在工艺节点在130nm以下的时候,很多情形下的物理缺陷都是由于延时来引起的。因此在对这种类型的chip做dft的时候,需要建立一个新的故障模型,业内称之为延时故障模型(time delay model)。解决的方法就是全速测试,所谓的全速测试就是让芯片工作在自己高倍时钟频率上,这个频率往往是要高过ATE的时钟的。这样对扫描模型的建立就提出了新的要求。即至少要保证芯片的latch clock和capture clock为芯片内部的高倍时钟。synopsys对此种问题的解决方法就是OCC(on chip clocking)。OCC/OPCG的基本原理是在 scan shift 模式下, 选通慢速的ATE 时钟,load 或 unload 扫描链; 在 capture 模式下,对 free-running PLL clock 过滤筛选出 lauch 和 capture clock 进行at-speed 测试
常用的OCC电路结构如下
在做SCAN的时候,由于ATE时钟速度和芯片port的传输速度的限制,导致ATE无法向片传输高速时钟。但是,芯片内部需要 进行At Speed 测试的时候,用到和system mode一致的时钟频率进行测试。此时,需要由芯片内部自己产生测试时钟。在capture的时候,对于内部寄存器来说,到达clock pin上的时钟波形如intclk 所示。Launche clock和capture clock为PLL产生的脉冲。Shift clock为ATE产生的时钟。PLL时钟和ATE时钟的切换电路是由OCC (On-Chip Clocking) 电路实现的。
我们典型的插入OCC以后的电路如下图