嵌入式 > 技术百科 > 详情

实时自动测试模式生成工具在SoC设计中的应用

发布时间:2023-04-20 发布时间:
|

soc(系统级芯片)已成为超大规模集成电路设计的主流方法。它由于设计周期短,设计可重用性好,可靠性高等优点而被广泛应用。随着工艺和系统性能的不断提高, 对更复杂、更高速soc的可测性设计提出了更高的要求,本文将讨论为什么要实时(at-speed)的测试, 它对设计的要求、实现方式如何?本文结合一个soc 设计的实例进行讨论。

今天的soc 设计运行频率不断提高, 设计的时序收敛则依赖于eda工具, 而eda工具在优

化时序时, 一旦设计中的关键路径满足了约束, 就停止继续优化。这意味着设计的余量很小。 当设计余量如此之小时, 现代工艺的小尺寸影响将使多种因素可能导致生产出来的芯片达不到设计的性能要求,这些因素包括:

工艺库参数的误差; 时序计算的误差; 参数提取的误差; 制造缺陷导致阻容值与工艺标准的误差,互连线的延时超过门延时起主导作用; 串扰; 所有这些对测试提出了更高的要求,必须保证芯片达到设计性能要求,因此测试必须覆盖与速度相关的缺陷,而这同时面对芯片不断提高的性能, 往往需要更高测试频率的测试设备,测试成本的增加对芯片制造成本的控制的压力也越来越大,为此必须对过去的测试策略进行检讨以适应现代soc 设计的挑战。

本文将结合一个soc设计实例来讨论实时测试的策略和方法。该设计是飞思卡尔半导体公司(freescale--原摩托罗拉sps部门) dragonball 系列应用处理器mx21,该芯片以arm926ej-s为核,外加多媒体视频处理、lcd控制器、ustotg、cmos影像传感器接口等大量丰富的外设和接口。

扫描测试

扫描测试是进行生产测试的一种结构化测试方法, 它通过atpg产生测试向量。现在的atpg工具可以检测不同类型的生产故障,图1给出了这几类故障的示意图,在现在的工艺中, 与实时相关的故障的比率不断上升。

“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”的转换是否过慢,其测试的时序波形见图2。

“path delay”模型:“path delay”模型测试的是某一路径的ac性能,通常用来对器件成品进行运行速度的选择。该类型测试通过触发一个状态变化, 然后在路径的后端进行捕获以验证时序。

“at-speed” 测试:与芯片运行于工作频率相对应, 在“at-speed”测试中, 触发(launch event 图3)到捕获(capture event图2)的时间间隙等于工作频率的周期,而“shift”的测试时钟周期则不必相同。

测试频率与工作频率有所不同, 或者说低于工作频率, 使得应用低端测试设备成为可能,这将大大降低测试成本。本文将介绍一种利用片上pll生成高速测试时钟的方法, 而不必使用更高速度的测试设备。

设计策略和方法

dft越来越成为soc 设计中重要的组成部分, 必须在soc 设计的初始阶段从芯片级对测试

进行规划, 确定测试策略和设计方法。dft的策略和方法反过来对芯片设计的过程也有着很

大的影响。

实时扫描测试的一般设计要求

soc设计中实现实时的扫描测试所要面临的问题可分为两个层次: 一方面, 设计要满足通常扫描测试的要求;另一方面, 针对实时要在测试结构和dft流程上进行有针对性的处理。下面分别列出一些要点。

通常扫描测试的问题包括:

设计满足扫描测试的基本规则; 芯片级的扫描链的划分; 芯片级io 的分配; 芯片级的测试控制; 测试时钟的安排, 包括对设计过程中对片上时钟的要求;

实时测试的问题包括:

逻辑设计中避免“multi-cycle”的路径, 不然需在atpg时对相关路径进行处理; 扫描链插入避免不同时钟域混在一起; 由于通过io的路径延迟大, 在atpg 中将其掩盖; 由于“path-delay”和“transition”测试不能覆盖“stuck-at”的所有故障, 所以“stack-at”的测试依然需要,但同时为了减少测试向量, 可以在进行“stack-at” atpg时, 先去除前面测试向量中已覆盖的测试点; 关于两种“at-speed”扫描测试模式的选择。“last shift”模式类似“stack-at”测试, 只是捕获的脉冲与“last shift”的脉冲更接近, 以达到“at-speed”的速度。该模式atpg的效率高, 相同的测试覆盖率, 测试向量少, 缺点是“scan_enable”信号的速度要求高,也要“at-speed”;另一种模式“broadside”有一对时钟脉冲“launch“”和“capture”, “scan_enable”在这两个时钟周期之前变低, 不需太高的速度, 该模式的atpg效率较”last shift”低,见图4, 对于大规模的soc设计,“scan enable”信号很难做到”at-speed”, 所以“broadside”模式更为可行。

实时扫描测试的设计实现

在mx21的设计中, 依照上述原则, 结合本芯片的特点, 进行了下面几个主要方面的dft设计。

扫描链基本结构

图5中的扫描链结构被用于mx21,其中io_se用来提高io相关逻辑的测试覆盖率,“head”和”tail”寄存器用来改善扫描链两端到io的时序。

分组

根据芯片的规模和结构, mx21化分了三个扫描组, 见图6,分组主要考虑到测试时的功耗, 而且在io资源一定的情况下, 分组可以避免扫描链过长, 提高测试效率。

测试模式

配合扫描链分组和不同的测试要求, 我们设计了下表中的多种测试模式.共有四个引脚 “boot[3:0]”用来设置芯片工作模式,其中“scan_mode_1”、“scan_mode_2”

和 “scan_mode_arm”对应三个扫描分组。“iddq-burnin mode” 不需高速度, 三个分组的扫描链在这个模式下被连接起来。如表1所示。

io分配

测试信号在相应测试模式下对io资源进行复用, 设计中注意避免对io性能的不利影响。而有关测试信号(scan_enable, test clock等)所用的io, 则需用满足一定的性能要求。

片上存储器的测试

片上的存储器用bist方式测试, 同样是实时。在扫描测试时, 存储器的“wrapper”起作用。如下图7, 存储器的输入信号被接入“observe registers”。输出“dout”接到对应的“din”的“wrapper registers”。这样既保证了存储器周边逻辑的可测试性, 也可进行实时的测试。

片上pll产生高速测试时钟的设计

由片上产生高速测试时钟可以大大降低对测试设备的要求, 从而减少测试成本。在mx21中, 片上的pll和一个称为“dft-chop”的模块来完成实时测试时钟的产生(图8)。进入pll 的参考时钟由测试设备从io输入, pll 被设置为整数倍的倍频, 在mx21中为“4”,以达到实时的速度,而“dft-chop”的作用就是根据设置从pll输出的每“4”个时钟中, 选择某一个送出, 作为测试时钟。图8中的“mux_sel”就是用来选择哪一个时钟脉冲送出, 而“scan_in” 和“scan_out”用来在测试中对“dft-chop”进行配置的改变,这些信号当然也需求连接到io上。

具体的测试时钟时序如图9所示, 扫描链“shift”时,“dft-chop”选择第“4”个时钟脉冲, 直到“capture”时, 选择第“1”个时钟脉冲, 这样一来便实现了“at-speed”的测试时钟。可以看到所有外部信号都不需要实时的速度, 从而只需要低速的测试设备。

dft流程

mx21的dft流程与一般的扫描测试的dft类似(图10)。在扫描链的插入中应用了mentor的dftadviser, 对不同的分组和时钟域进行,新的dftadviser版本可接受布局后的def文件, 根据位置连接扫描链, 则可免去“reorder”的步骤。

atpg同样是mentor的fastscan, 其中“path-delay”和“transition”的atpg是对每一

个时钟域独立进行, 而“stack-at”则是对整个分组进行, 以提高效率。如果不同的时钟域之间有确定的相位关系和时序要求, 也可进行时钟域之间的实时测试。

本文小结

设计师开始soc设计时, 必须对dft给予充分的考虑, 当然这也要求设计师对现代

soc测试方法有足够的知识和理解;

soc设计通常集成了大量的模块(ip), 必须保证模块级达到dft的设计要求。在模块级进行dft规则和测试覆盖率的检查对芯片级的dft工作非常重要; 针对实时测试, 借助sta工具确定扫描测试模式下的“multi-cycle”路径, 避免在测试向量验证时才发现问题, 可以节约很多除错的时间; 如果设计允许, 则尽量实现“scan_enable”的实时测试, 这样“path delay”和“transition”的atpg将更有效率,而且“stack-at”的测试也可以实现实时,可以弥补上两种测试所不能覆盖的时序故障; 充分利用工具的各种报告, 及时及早发现问题; 测试向量的验证采用并行方式可以大大节约验证时间, 同时结合sta进行时序分析; 随着soc规模的进一步增大, 过多的扫描链数量和分组会需要更多的io 资源复用, 影响io 的性能。同时扫描链长度过长, 会增加测试时间。未来可以考虑应用类似mentor的edt技术。

作者:梁宇博士

飞思卡尔半导体(中国)有限公司苏州分公司


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
富士通两款2Mbit FRAM内存芯片上市