新闻中心

EEPW首页 > 测试测量 > 设计应用 > 应对扫描压缩逻辑的合成挑战

应对扫描压缩逻辑的合成挑战

作者:时间:2012-03-26来源:网络收藏

所有现代SoC都使用扫描结构来检测设计中是否存在制造缺陷。扫描链的目的就是用于测试并按照串行顺序连接芯片的时序元件。然而,随着现代SOC几何尺寸不断缩小及复杂性不断增加,如今已能将数百万个晶体管集成到单一芯片之中。因此,时序元件总数与可用的扫描IO总数之比在不断增加。而测试仪的成本(测试仪使用时间)高昂,传统的扫描结构已不足以支持这些复杂的SoC。压缩被看作是针对上述问题的解决方案,但它在阶段却带来了扫描拼接方面的新挑战。我们将详细讨论这些挑战和针对这些扫描拼接问题的解决方案,但在此之前,我们先通过一个示例来了解对压缩的需求。

本文引用地址:http://www.eepw.com.cn/article/194235.htm

要讨论控制扫描结构的各种参数,需要考虑具有以下配置的设计:可用测试仪内存=每测试信道1M向量(测试仪提供的固定内存);可用扫描输入/输出端口=5+5;每个链的触发器数=200(总触发器=1000);完整测试设计所需模式数=2400。

因此,所需测试仪内存=200×2400≈每测试信道0.48M。

在上述情况中,所需的测试仪内存小于可用内存,因此,此设计可测试。但随着现代SOC尺寸的增加(即设计中时序元件数增加),现有的测试仪内存可能不足。应考虑另一种含20k个触发器且有更多扫描IO的设计:可用测试仪内存=每测试信道1M向量;可用扫描输入/输出端口=10+10(封装上的有限数量测试引脚);每个链的触发器数=2000(总触发器=20000);完整测试设计所需模式数=2400(这是最保守的数字,因为模式数会随着设计尺寸的增加而增加)。

因此,所需测试仪内存=2000×2400≈每测试信道4.8M。

在上例中,由于该模式不适合现有的测试仪内存,因而上述简单的扫描结构已不足以对设计进行完全测试。这个问题可以通过扫描压缩来解决。

压缩逻辑概念

压缩逻辑旨在解决与测试芯片制造缺陷有关的问题。在这种结构中,芯片级链被分为多个内部链,因此,通过压缩激励(扫描输入)和解压结果(扫描输出),在芯片级便能解决有多个扫描输入和输出端口的问题。此后,我们将把这种压缩和解压逻辑简称为CDL

压缩逻辑解决了较大测试仪内存的问题,如下所示(压缩因子=10):

可用测试仪内存=每测试信道1M向量(测试仪提供的固定内存);可用扫描输入端口=10(封装上的有限数量测试引脚);可用扫描输出端口=10(封装上的有限数量测试引脚);扫描链总数=100;每个链的触发器数=200(总触发器=20000);完整测试设计所需模式数=2400。因此,所需测试仪内存=200*2400≈每测试信道0.48M。

由于所需测试仪内存较小,因此设计现在可进行测试。

问题是什么?

扫描压缩逻辑是所有现代复杂SOC必须提供的功能。然而,引入这种扫描压缩逻辑也带来了逻辑阶段扫描拼接方面的新挑战。如图3所示,扫描链从CDL(扫描输入引脚)的输出拼接到CDL(扫描输出引脚)的输入。压缩逻辑的扫描输入引脚连接到触发器的扫描输入。

根据成功进行DFT检查的要求,每个窗口只应进行一次捕捉。违反此条件将导致测试覆盖率下降,因为所有触发器都不是独立可控的。对于本文涉及的所有讨论,我们已经考虑了图4所示的窗口。

拼接了扫描链后,由于CDL触发器和设计的其他部分可能由不同时钟域的时钟进行计时(因为设计中存在不同功能的时钟域),这些时钟可能包含不常见的宽时钟路径,因此可能会发生保持(HOLD)时间冲突。为考虑所有可能的冲突,图5列出了以下情况。

因此,发生以下两种情况时将产生冲突。

到达发起和捕捉触发器的时钟出现倾斜,在以下两种场景下,正边沿-正边沿和负边沿-负边沿触发器对将发生这种情况(图6中已展示):1.在一个扫描链中拼接的触发器由同一时钟记录时间。由于到达发起和捕捉触发器的时钟之间存在偏差,时钟到达捕捉触发器的时间可能远比到达发起触发器的时间晚;2.在一个扫描链中属于不同时钟域的两个触发器由不同时钟进行计时,由于OCV的存在,时钟之间的偏差可能足以使发起和捕捉操作在同一个窗口发生。当其中一个触发器在CDL内部而另一个触发器在其外部时,发生这种情况的几率最大。

发起和捕捉操作在一个窗口内执行。当发起触发器是正边沿触发器而捕捉触发器是负边沿触发器时,会发生这种情况。在这种情况下,即使时钟边沿之间不存在偏差,在一个时钟周期内也将发生两次捕捉(图6)。由于扫描拼接在逻辑后执行,因此,在进行CDL编码时,设计人员无须考虑扫描链中第一个或最后一个触发器(正或负边沿触发器)的特性。

目前有哪些技术可用?

设计人员可以采用各种不同技术来避免这一问题。下面介绍其中的一些技术。

定制的CDL:在这种方法中,扫描链与一个伪CDL拼接,根据扫描链的第一个触发器对CDL进行修改,以确保没有冲突。然后CDL单独进行合成,并与之前创建的网络表合并。

这种方法的优势在余不会在CDL边界增加锁定触发器,因为每次CDL都将根据扫描拼接进行配置。缺点是随着实施周期的进行,将添加新的触发器,且每次都需要对CDL进行修改。

反馈法:在这种方法中,先计算设计中正边沿和负边沿触发器的数量,然后根据扫描链的数量产生CDL。下面的示例说明了这种方法与自定义CDL方法的不同之处。假设一个设计中有4000个触发器,其中有3700个正边沿触发器和300个负边沿触发器。现在拼接扫描链(约100个触发器/链)并得到分布(如表1所示)。

现在将生成用于触发器合并的CDL,这样在CDL接口就不会存在正边沿-负边沿触发器对,同时将强制进行合成,以便根据RTL调整扫描链中的触发器。这可通过一些脚本来实现。

与自定义CDL方法相比,这种方法的优势在于整个合成在一次运行中完成。缺点是:在实施反馈法之后,CDL的RTL比较稳定,但是如果负边沿触发器的数量突然发生变化,则需要再次重复整个周期。

使用设计中现有的触发器:在这种方法中,CDL的RTL不会发生变化,且每次合成都通过同一个CDL完成。在扫描拼接后,扫描链将重新排序,以消除发生冲突的机会。

这种方法的优点是,即使新版本RTL的触发器数量突然发生变化,DFT团队也无须创建新的CDL,因为CDL代码是固定的。与自定义CDL和反馈法相比,这种方法效率更高,但是在对扫描链进行重新排序以消除冲突时,却可能发生覆盖丢失。“覆盖丢失”可通过下面的示例说明。


只要正边沿-负边沿触发器以这种顺序进行配对,便会发生发起和捕捉冲突,因为发起和捕捉将会在边沿2和边沿3发生,如图7所示。为了消除这种冲突,我们可以重新进行排序,或者在这两个触发器之间添加一个触发器。尽管这样能够消除早期冲突,但是我们将无法检查在插入的触发器上收到的数据,这将导致覆盖丢失。

添加伪触发器:这种方法克服了上述各种方法的所有缺点。该方法中,在预计发生冲突的所有地方都添加了一个伪锁定触发器。在这种情况下,不会存在增加覆盖丢失的影响,也没有移动设计触发器方法中讨论的问题。

这种方法非常高效,因为不需要增加DFT和合成团队的工作。此外,它还解决了覆盖丢失的问题。但此方法的缺点是添加了额外的单元。在对电力极其敏感而电力又十分关键的情况下,这会形成一种阻碍。这些少数单元的漏电量会显著增加设计的总漏电量。

本文小结

扫描压缩逻辑是复杂SOC必须提供的功能,而添加压缩逻辑却增加了合成过程中扫描拼接方面的挑战。有许多方法可应对这些挑战,然而,添加伪触发器方法具有其他方法无法比拟的优势。虽然因为添加了锁定触发器而需要进行一些权衡,但是,我们已经看到额外锁定触发器的数量非常有限(远小于总时序元件的0.1%),因为只会在预计发生捕捉冲突的那些链中添加锁定触发器。上述方法将有助于最大程度减少DFT和合成设计团队之间的重复工作,从而加快设计完成速度。



关键词: 逻辑 合成

评论


相关推荐

技术专区

关闭