0 引 言
基于扫描路径法的可测性设计技术是可测性设计(DFT)技术的一个重要的方法,这种方法能够从芯片外部设定电路中各个触发器的状态,并通过简单的扫描链的设计,扫描观测触发器是否工作在正常状态,以此来检测电路的正确性。但随着数字电路朝着超大规模的方向发展,设计电路中使用的触发器的数目也日趋庞大,怎样采用合适的可测性设计策略,检测到更多的触发器,成为基于扫描路径法的一个关键问题。
本文采用基于扫描路径法的可测性设计技术,对一款约750万门级雷达芯片的实际电路进行可测性设计。在设计中通过使用时钟复用技术、时钟电路处理技术以及IP隔离技术等几种有效的设计策略,大大提高了芯片的故障覆盖率,最终达到可测性设计的目的。
1 扫描链设计原理
数字电路由大量的组合元件和时序元件组成,时序元件具体体现为单个的触发器(DFF)。数字电路基本组成如图1所示。其中系统时钟(CP)来控制各个触发器的数据端口相应数据的输入输出。
基于扫描路径法的可测性设计就是将电路中的时序元件触发器替换为相应的可扫描的时序元件扫描触发器(SDFF);然后将上一级扫描触发器的输出端(Q)连接到下一级的数据输入端(SDI),从而形成一个从输入到输出的测试串行移位寄存器,即扫描链(ScanChain);通过CP端时钟的控制,实现对时序元件和组合逻辑的测试。实现扫描链设计后的电路如图2所示。
采用扫描设计技术后,在扫描控制端(SEN)和时钟端的控制下,通过扫描数据输入端,可以把需要的数据串行地移位到扫描寄存器单元中,串行地控制各个单元;同时也可以通过扫描输出端(Scan_out)串行地观测它们。这样就增加了时序电路的可控制性和可观测性。
2 扫描链策略设计
图2中虚线部分为扫描触发器,即扫描链的基本组成单元,其构成原理如图3所示。
扫描链设计前,电路中的触发器都是通过系统时钟端口控制数据的变化,因而在做扫描设计时可以通过系统时钟复用检测到更多的触发器,以此达到控制扫描触发器的目的。
同样的道理,一些特殊电路中的触发器也是采用手动或者软件的方法将它们串联到扫描链中,以此增加可扫描的触发器数,最终使故障覆盖率得以提高。但需要注意的是,这些可测性设计策略应用的前提是不能改变原始设计的功能。
3 设计中采用的策略
在进行DFT设计并插入扫描链的时候,最为重要的一个问题就是测试覆盖率,而它的最终值是由触发器的总数和最终能够测试到的触发器的数目的比值决定的,因此是否能够尽可能多地测试到本雷达芯片电路中的触发器,成为扫描路径法设计的一个关键问题。针对实际的设计电路提出了以下三种有效的设计策略,由最终测试结果可知,采用此设计策略后可大大提高测试覆盖率,满足设计指标需要。
3.1 时钟复用技术
每个触发器都受系统时钟控制,系统时钟能够覆盖本设计中大部分的触发器元件,因而考虑使用时钟复用技术,在插入扫描链进行测试时,把测试时钟引入到系统时钟上,这样测试时钟就能覆盖尽可能多的触发器,并在插入扫描链后,替换成扫描触发器。其实现原理如图4所示。
从图中可以看出,时钟电路产生很多不同频率的时钟以满足不同模块的需求,在时钟电路的输出端口加入相应的选择器(MUX)控制时钟的选择;当处于正常工作状态时,MUX选择正常的时钟进入相应的模块,进而实现相应的功能;当处于扫描状态时,这些MUX都是选择同样的扫描测试时钟信号(Te cp)进人到各个模块进行测试。这样做的优点在于不仅满足了测试选择的需要,而且也尽可能地测试到所有触发器,满足测试覆盖率的需要。
3.2 特殊时钟电路处理
在本设计中存在很多特殊的电路,其中有一种时钟发生电路是不能进行扫描路径法的可测性设计,具体的电路图如图5所示。
在这种结构中,时钟从第二个触发器的Q端输出,输入到第三个触发器的时钟(CP)端。由于扫描时钟无法控制第三个以及后续的触发器,设计的扫描链将不会覆盖之后的电路,结果导致故障覆盖率降低,测试覆盖率也会下降。
改进此种电路结构的方法是手动或者用软件方式增加一个MUX选择器,当在扫描链插入时,正常的控制时钟信号就会进入第三个触发器的时钟端。具体实现的电路结构如图6所示。
使用此策略,在插入扫描链后,当MUX选择器处在扫描状态时,扫描时钟就会连接到后续的触发器,并将其连接到扫描链上,这样就会大大提高故障覆盖率,从而提高测试覆盖率。
3.3 IP隔离技术
设计之中要用到很多IP模块,在综合后的网表中表现为一个个没有具体电路的“黑匣子”,这些“黑匣子”的存在使得部分时序组合电路不能或者很难进行基于扫描路径法的DFT设计,需要利用其他的DFT设计工具进行可测性设计,例如在本设计中采用的RAM和ROM存储器模块。
因此为确保与IP相连的下级时序电路部分能够被正常设计的扫描链覆盖,增加触发器的可测范围,采用的解决方案是用软件命令解决的方法将此类IP模块隔离,暂时不将此模块进行DFT设计,其实现原理如图7所示。
通过此种方法可以有效地将一个或多个类似的IP模块与原电路软隔离开。当电路工作在非扫描状态下,数据按照正常的数据流方向流、进流出IP模块;当电路工作在扫描状态时,扫描数据绕过相应1P模块,按照相应的扫描链路径流进下级时序电路部分,实现扫描测试的功能。
这种方法既不破坏原来芯片电路的结构和整体实现的功能,同时也保证了DFT设计的顺利进行,提高了本芯片可测性设计的覆盖率。
4 结果分析
4.1 测试结果
当没有采用任何设计策略时,本芯片的测试覆盖率只能达到30%~40%左右,远远达不到要求的性能指标。
从图8可以看出,当采用了以上设计策略后测试覆盖率(test coverage)、故障覆盖率(fault coverage)和ATPG覆盖率分别达到96.95 9/6,94.52%和99.99%。
4.2 测试结果分析
在图8所示的测试结果数据栏中,左侧的数据栏中显示的是总共生成的测试向量以及有效的测试向量数目。右侧显示的是在扫描链测试过程中能够测出的各种故障数目,其中故障覆盖率F的计算公式为:
其中:不可测故障包括摒弃故障、固定故障、冗余故障等。本设计考虑了很多故障模型,其中就包括很多的固定故障类型(例如:芯片端口被锁定为固定值,无法检测到)计算到上述计算公式中,因此实际的不可测故障要比工具中统计的数字要少;通过以上分析可知,实际能达到的故障覆盖率要优于测试结果。
5 结 语
本文对一款约750万门的雷达数字处理芯片的电路进行基于扫描路径法的可测性设计,在设计中针对实际电路门数特别庞大的特点,采用时钟复用的技术,合理利用已经存在设计资源,使可测到的触发器数目大大增加;针对特殊的电路应用特殊的处理策略,增加了可测性设计的故障覆盖率。由试验结果可知,与未采用以上提到的设计策略相比,其最终的测试覆盖率得到很明显的提升,实现了设计策略应用的目标,最终也达到了设计的指标要求。