|
1、简介
今天的SOC 设计运行频率不断提高, 设计的时序收敛则依赖于EDA工具, 而EDA工具在优化时序时, 一旦设计中的关键路径(critical
path)满足了约束(constrain), 就停止继续优化. 这意味着设计的余量(margin)很小.
当设计余量如此之小时, 现代工艺的小尺寸影响将使多种因素可能导致生产出来的芯片达不到设计的性能要求.
这些因素包括:
· 工艺库参数的误差
· 时序计算的误差
· 参数提取的误差
· 制造缺陷导致阻容值与工艺标准的误差
· 互连线的延时超过门延时起主导作用
· 串扰
所有这些对测试提出了更高的要求, 必须保证芯片达到设计性能要求. 因此测试必须覆盖与速度相关的缺陷.
而这同时面对芯片不断提高的性能, 往往需要更高测试频率的测试设备, 测试成本的增加对芯片制造成本的控制的压力也越来越大.
为此必须对过去的测试策略进行检讨以适应现代SOC 设计的挑战.
本文将结合一个SOC 设计实例来讨论利用Mentor公司著名的DFT工具Fastscan进行at-speed
测试的策略和方法. 该设计是飞思卡尔半导体公司(freescale -- 原摩托罗拉SPS部门) Dragonball
系列应用处理器MX21. 该芯片以ARM926EJ-S™ 为核, 外加多媒体视频处理, LCD
控制器, USTOTG, CMOS影像传感器接口等大量丰富的外设和接口.
2、ATPG与生产故障
ATPG (Automatic Test Pattern Generation )是指由EDA工具基于可扫描的测试结构自动生成测试向量的结构化测试方法。
现在的ATPG工具可以检测如下几种不同类型的生产故障。在深亚微米工艺中,与at-speed 相关的故障比率不断上升.
“Stack-at” 模型
最长见的一类故障模型. 它分为”Stuck-at 1” 和”Stack-at 0”, 用来模拟器件间互连的短路和断路的故障.
“IDDQ” 模型
通过对静态电流的测量来发现电路故障, 可以覆盖CMOS晶体管的”stack-on”和相邻”bridging”的制造缺陷.
但随着小尺寸工艺中漏电流较高的问题, 使得”IDDQ”的测试效果下降.
“Transition Delay” 模型
“Transition Delay” 模型是在”Stack-at”模型的基础上, 引入了对时间延迟的要求.
可分为”slow-to-rise transition”和”slow-to-fall transition”两类,
用来检测某一节点从”1”到”0”和从”0”到”1”的转换是否过慢. 其测试的时序波形见图1.
“Path Delay” 模型
“Path Delay” 模型测试的是测试某一路径的AC性能. 通常用来对器件成品进行运行速度的选择.
该类型测试通过触发一个状态变化, 然后在路径的后端进行捕获以验证时序. 其测试的时序波形参见图2.
3、At-speed测试技术
如上所述,at-speed扫描测试支持两种故障模型:“Transition Delay” 模型 和 “Path
Delay” 模型。“Path Delay” 模型用来检查通过一系列预定义的门的集总延迟。随着电路规模的增大,电路中存在的时序路径也越多,期望对每一个时序路径都进行测试是不现实的。因此,通常的做法是利用STA工具选定有限数目的最大延迟路径进行测试。大多数路径的起点和终点都是时序单元如触发器,少数路径的起点是基本输入,少数路径的终点是基本输出。
“Transition Delay” 模型代表了每一个门端点的集总延迟,通常会采用类似于测试路径延迟的方法对“Transition
Delay”进行测试,不同的是在进行transition测试时,由ATPG工具自行选择测试路径而不需要预先定义。通常,工程师借助于“Transition
Delay”测试向量发现与时间相关的生产故障,采用“Path Delay”测试向量更多是为了检测和保证电路的最大工作速度。
At-speed扫描测试要求测试向量能够从一个扫描单元或一个基本输入触发一个信号变化:从”1”到”0”或从”0”到”1”的转换,然后在一个扫描单元或一个基本输出进行扑获检测。进行at-speed测试的关键在于产生一对用于触发和采样的时钟脉冲信号,当设计中存在多个不同工作频率的时钟信号时产生这样的时钟脉冲信号会变得更加复杂。
一种常见的at-speed测试向量时序如图2所示。launch-off-shift测试利用shift的最后一个时钟沿进行触发。其优点处理时测试向量的生成比较简单,容易达到更高的测试覆盖率。缺点是在进行DFT处理时必须把SE信号作为关键时间信号进行布局布线处理,同时会由于SE不能够及时拉低带来过紧的路径延迟约束而导致测试成品率比实际水平偏低。
随着工艺尺寸越来越小,电路的工作频率越来越高,人们更多倾向于采用如图3所示的at-speed测试向量时序。Broadside测试利用在功能模式下的一对时钟脉冲分别进行触发和扑获。优点是对SE信号的时序要求大大降低,缺点是向量生产算法复杂,测试覆盖率较低,ATPG工具运行时间较长。
4、一个SOC设计实例的ATPG策略和方法
DFT越来越成为SOC 设计中重要的组成部分, 必须在SOC 设计的初始阶段从芯片级对测试进行规划, 确定测试策略和设计方法.
DFT的策略和方法反过来对芯片设计的过程也有着很大的影响.
3.1 “at-speed” 扫描测试的一般设计要求
SOC设计中实现at-speed的扫描测试所要面临的问题可分为两个层次: 一方面, 设计要满足通常扫描测试的要求;
另一方面, 针对at-speed, 要在测试结构和DFT流程上进行有针对性的处理. 下面分别列出一些要点.
通常扫描测试的问题
· 设计满足扫描测试的基本规则;
· 芯片级的扫描链的划分(group partition);
· 芯片级IO 的分配;
· 芯片级的测试控制;
· 测试时钟的安排, 包括对设计过程中对片上时钟的要求 (clock tree generation);
“At-Speed” 测试的问题
· 逻辑设计中避免”multi-cycle”的路径, 不然需在ATPG时对相关路径进行处理(masking);
· 扫描链插入避免不同时钟域(clock domain)混在一起;
· 由于通过IO的路径延迟大, 在ATPG 中将其掩盖;
· 由于”path-delay”和”transition”测试不能覆盖”stuck-at”的所有故障,
所以”stack-at”的测试依然需要. 但同时为了减少测试向量, 可以在进行”stack-at” ATPG时,
先去除前面测试向量中已覆盖的测试点;
· 关于两种”at-speed”扫描测试模式(launch mode)的选择. “last shift”模式类似”stack-at”测试,
只是捕获(capture)的脉冲与”last shift”的脉冲更接近, 以达到”at-speed”的速度.
该模式ATPG的效率高, 相同的测试覆盖率, 测试向量少, 缺点是”scan_enable” 信号的速度要求高,
也要”at-speed”; 另一种模式”broadside” 有一对时钟脉冲”launch” 和 “capture”,
“scan_enable” 在这两个时钟周期之前变低, 不需太高的速度, 该模式的ATPG效率较”last
shift”低. 见图4, 对于大规模的SOC设计, “scan enable”信号很难做到”at-speed”,
所以“broadside”模式更为可行.
3.2 “at-speed”扫描测试的设计实现
在MX21的设计中, 依照上述原则, 结合本芯片的特点, 进行了下面几个主要方面的DFT设计.
扫描链基本结构
下图中的扫描链结构被用于MX21. 其中IO_SE用来提高IO相关逻辑的测试覆盖率. “head”和”tail”寄存器用来改善扫描链两端到IO的时序.
分组(grouping)
根据芯片的规模和结构, MX21化分了三个扫描组(group), 见图5. 分组主要考虑到测试时的功耗,
而且在IO资源一定的情况下, 分组可以避免扫描链过长, 提高测试效率.
测试模式
配合扫描链分组和不同的测试要求, 我们设计了下表中的多种测试模式. 共有四个引脚 ”boot[3:0]”用来设置芯片工作模式.
其中, “scan_mode_1”, “scan_mode_2” 和 ”scan_mode_ARM” 对应三个扫描分组.
“IDDQ-burnin mode” 不需高速度, 三个分组的扫描链在这个模式下被连接起来.
Mode |
Boot[3:0] |
|
Functional |
0000-0111 |
Functional mode based on boot
configuration |
Function Test |
1000 |
Production test of functional
patterns at tester |
Scan_mode_1 |
1001 |
AHB-IP1 scan mode |
Scan_mode_2 |
1010 |
AHB-IP2 scan mode |
Scan_mode_ARM |
1011 |
ARM929 platform test mode |
IDDQ-burnin mode |
1100 |
IDDQ and burn-in test mode |
MBIST mode |
1101 |
Memory BIST test mode |
Analog test mode |
1110 |
Analog modules test mode |
PLL test mode |
1111 |
PLL and DFT-CHOP test |
表1. 测试模式选择
IO分配
测试信号在相应测试模式下对IO资源进行复用, 设计中注意避免对IO性能的不利影响. 而有关测试信号(scan_enable,
test clock等)所用的IO, 则需用满足一定的性能要求.
片上存储器的测试
片上的存储器用BIST方式测试, 采用Mentor公司提供的MBISTArchitect同样可以做”at-speed”测试.
对于存储器周围的影子逻辑,在扫描测试时, 存储器的”wrapper”起作用. 如下图, 存储器的输入信号被接入”observe
registers”. 输出”Dout” 接到对应的”Din”的”wrapper registers”.
这样既保证了存储器周边逻辑的可测试性, 也可进行”at-speed”的测试.
片上PLL产生高速测试时钟的设计
由片上产生高速测试时钟可以大大降低对测试设备的要求, 从而减少测试成本. 在MX21中, 片上的PLL和一个称为”dft-chop”的模块来完成”at-speed”测试时钟的产生(见图8).
进入PLL 的参考时钟(reference clock)由测试设备从IO输入, PLL 被设置为整数倍的倍频,
在MX21中为”4”, 以达到”at-speed”的速度. 而”dft-chop”的作用就是根据设置从PLL输出的每”4”个时钟中,
选择某一个送出, 作为测试时钟. 图8中的”mux_sel”就是用来选择哪一个时钟脉冲送出, 而”scan_in”
和”scan_out”用来在测试中对”dft-chop”进行配置的改变. 这些信号当然也需求连接到IO上.
具体的测试时钟时序如图9.所示, 扫描链“shift”时, “dft-chop”选择第”4”个时钟脉冲,
直到”capture”时, 选择第”1”个时钟脉冲, 这样一来便实现了”at-speed”的测试时钟.
可以看到所有外部信号都不需要”at-speed” 的速度, 从而只需要低速的测试设备.
5、小结
l 一般的DFT流程如图10所示. 在扫描链的插入中应用MENTOR的DFTADVISER, 对不同的分组和时钟域进行.
新的DFTADVISER版本可接受布局后的DEF文件, 根据位置连接扫描链, 则可免去”reorder”的步骤.
l ATPG同样是MENTOR的FASTSCAN, 其中, “path-delay”和”transition”的ATPG是对每一个时钟域独立进行,
而”stack-at”则是对整个分组进行, 以提高效率. 如果不同的时钟域之间有确定的相位关系和时序要求,
也可进行时钟域之间的”at-speed”的测试.同样的芯片设计,Fastscan一般可以提供较高的测试覆盖率以保证测试质量;同时,Fastscan在测试向量压缩方面效果最好;而且其运行时间也比其他ATPG工具要快上数倍。
· 设计师开始SOC设计时, 必须对DFT给予充分的考虑, 当然这也要求设计师对现代SOC测试方法有足够的知识和理解;
· 充分利用工具的各种报告, 及时及早发现问题;
· SOC设计通常集成了大量的模块(IP), 必须保证模块级达到DFT的设计要求. 在模块级进行DFT规则和测试覆盖率的检查对芯片级的DFT工作非常重要;
· 针对”at-speed”测试, 借助STA工具确定扫描测试模式下的”multi-cycle”路径,
避免在测试向量验证时才发现问题, 可以节约很多debug的时间;
· 如果设计允许, 则尽量实现”scan_enable”的”at-speed”, 这样”path delay”和”transition”的ATPG将更有效率.
而且”stack-at”的测试也可以实现”at-speed”, 可以弥补上两种测试所不能覆盖的时序故障;
· 测试向量的验证(verification)应用并形方式(parallel pattern)可以大大节约验证时间,
同时最好结合STA进行时序分析;
· 随着SOC规模的进一步增大, 过多的扫描链数量和分组会需要更多的IO 资源复用, 影响IO 的性能.
同时扫描链长度过长, 会增加测试时间. 将来来可以考虑应用类似MENTOR的Testkompress,该工具与Fastscan完全兼容,提供的EDT技术可以对Fastscan的测试向量压缩上百倍。
|