硅芯思见:ATPG和可测性设计
在集成电路的整个研制流程中,测试是其中一个重要的环节,而对于芯片的可测试性设计也是当前集成电路研制环节中的一个重要环节,而这个可测试性也是一个经常被理解错误的词。测试所要检查的不是设计的功能错误,其检查的是芯片在生产过程中引入的电路结构上的制造缺陷(physical defects),而可测性是能够测试检验出存在于设计产品中的各种制造缺陷的程度。针对可测性的设计称之为“可测性设计(DFT,Design For Test)”,其主要是为了达到故障检测的目的对设计电路增加一些额外的逻辑,用以增强设计的可测性,这种设计主要为基于故障模型的设计结构测试服务,用来检测芯片在生产过程中的故障。
有些朋友可能会问,为什么要基于故障模型进行建模,这主要是因为如果基于实际物理器件缺陷进行测试,由于存在于电路中的物理缺陷是多种多样的,并且这些缺陷对于电路功能的影响也是非常复杂和难于分析的,为此为了进一步提高电路的可测试性,需要构建特定的故障模型。故障建模通过特定的算法,通过对制造缺陷建立逻辑上的数学模型,研究故障对电路的影响,判断芯片内部是否存在制造缺陷。
再介绍叙述下面内容之前,这里需要注意两个基本概念:
缺陷:在集成电路制造过程中,在芯片上产生的物理异常,常见的CMOS工艺中的缺陷包括:
1>对地和对电源的短路;
2>由于颗粒等因素引起的连线断路;
1 故障模型
在实际的项目中,常用的故障模型如下。
A.固定型故障(Single stuck-at fault)
固定型故障是假设电路中某个信号永久地固定为逻辑1或者逻辑0,常被记为SA1(stuck-at-1)和SA0(stuck-at-0),在电路中的表现如下:
B.开路故障(Break fault)
C.桥接故障(Bridging fault)
常指节点间电路的短路故障,通常分为3类:逻辑电路与逻辑电路之间的桥接故障;节点间的无反馈桥接故障;节点间的反馈桥接故障,任何导通的桥接都会导致静态电流上升一个数量级以上。
E.晶体管短路故障(Transistor stuck-on fault)
上面两种故障都属于晶体管故障。在数字电路仿真建模中,晶体管被认为是理想的开关元件,但是实际的器件是存在缺陷的可能,因此有必要对晶体管故障进行建模。
【示例】
F.跳边延迟故障(Transition Delay fault)
G.传输延迟故障(Path Delay fault)
传输延迟故障不同于跳边延迟故障,指信号在特定路径上的传输延迟,通常与测试该路径的交流参数联系在一起,特别是关键路径。由此可以看出传输延迟故障应该属于一种特殊的跳边延迟故障;
【示例】
除了这些数字故障模型外,还有针对存储器的故障模型,根据存储器的特点,除了原有数字故障外,还增加了集中针对存储体的故障类型,针对存储器的故障模型主要有以下几类:
A.固定型故障(Single stuck-at fault)
指存储器单元固定在0或者1,通常为了检测这种故障需要对每个存储单元和传输线进行toggle操作;
B.状态跳变延迟(Transition Delay fault)
状态跳变故障发生在对存储单元进行写操作的时候发生异常的跳变,为了检测这类故障需要对每个存储单元进行全toggle操作,并且要求在写入相反值后立刻读出当前值;
C.耦合故障(Coupling fault)
这类故障主要针对RAM,发生在对一个单元进行写操作时,对这个单元的写操作会影响到另一个单元的内容;
D.地址译码故障(Address Decode fault)
Ø 对于给定的地址,不存在对应的存储单元;
Ø 对于一个给定的存储单元,没有对应的物理地址;
Ø 对于给定的地址,可以访问到多个固定的存储单元;
Ø 对于一个存储单元,有多个地址可以访问;
F.数据保留故障(Data Retention fault)
指存储单元不能在规定的时间内有效的保持其数据值而出现的一种故障,这类故障是一种动态故障;
2 ATPG
在完成了故障模型的建立后,就需要构建大量的测试向量覆盖这些故障点,如果采用手动编写特定定向的激励,那么工作将是非常繁重的,周期也非常长。为此,为了实现测试向量能够使特定故障在特定端口被观测到,设计人员多采用软件程序实现测试向量的自动产生(ATPG:AutomaticTest Pattern Generation),常用的ATPG算法有伪随机算法和ad-hoc算法。ATPG通过分析芯片的结构生成测试向量,对电路进行结构测试,从而可以筛选出不合格的芯片。一般的ATPG设计流程如下:
3可测性设计
可控制性(Controllability)和可观测性是(Observability)可测性设计中的两个重要概念。
可控制性:能够设定某些电路节点到某种状态或逻辑值,即将信号设置为0或者1的难度;
可观测性:能够产生故障的难度;
在进行可测性设计时,需要给电路增加一定的硬件开销,这就有需要设计人员对增加的这些硬件资源对电路的性能等影响有统一的规划和认识,权衡整个电路在设计中的可测性设计。一般电路的可测试性设计具有下表所示的优缺点:
优点 | 不足 |
可以利用EDA工具进行测试的VCD | 增加电路面积,提高出错概率 |
便于故障诊断和调试 | 增加设计复杂度 |
提高芯片的成品率 | 需要增加额外的引脚 |
便于测试,提高芯片质量 | 增加电路面积 |
减少测试成本 | 影响电路功耗、性能 |
常见的可测性流程如下:
很多实际成功的集成电路设计已经证明,在电路中加入可测试性的设计结构,有助于提高芯片的成品率,缩短研制周期,极大的降低研制成本。当然文中提到的DFT一些不足,DFT本身一定也会不停的发展和完善。
【参考文献】SoC设计方法与实现
【推荐在线画电路图网站】https://www.digikey.com/schemeit/project/