论文部分内容阅读
测试已经成为系统芯片(SoC)设计过程中一个不可或缺的组成部分,而且随着芯片集成度和复杂度的不断提高,测试成本也随之增加。如果按照目前的发展趋势,测试成本将有可能超过芯片自身的设计和制造成本。为了解决这个日益严重的问题,本文将重点研究如何在不修改SoC内部IP核的基础上降低测试成本。通过分析成本不断攀升的各个影响因素,可以发现测试压缩是一种有效的解决办法。测试压缩在保障测试质量前提下,能有效地减少测试数据量和测试时间,从而降低芯片的测试成本。测试压缩由于其巨大的实用价值,受到了学术界和工业界的广泛关注。根据测试数据性质的不同,测试压缩可分为测试激励压缩和测试响应压缩两个方面。本文在激励压缩和响应压缩两方面都展开了研究,提出了多种压缩算法,并使用学术界的基准电路和工业界电路对算法进行了验证分析。在测试激励压缩方面,可以把测试激励数据表示成一个三维立方体结构,其中Z轴方向表示激励数据中测试向量的个数、Y轴方向表示各测试向量中包含子向量的个数、X轴方向表示测试子向量的平均长度。本文根据激励数据的特点提出了两个动态测试精简流程和两种压缩方法,这些压缩技术分别代表激励数据不同维度上的压缩:(1)针对激励数据Z轴方向上的压缩,提出了两种具有动态精简压缩特征的测试序列产生流程。与目前已有的精简压缩方法相比,这两种流程具有以下优点:计算运行耗时短、可以很方便的集成到现有的测试图形产生工具中、测试向量的故障覆盖率高、以及在相同的测试覆盖率要求下可以减少所需测试向量的个数,从而缩短了测试向量的产生时间。(2)针对激励数据的Y轴方向(垂直方向),本文提出了一种采用组合逻辑实现解压缩电路的压缩方法。该方法主要是利用确定性测试向量中存在的大量不关心位,以及采用测试向量的切片划分和兼容赋值的思想,通过公用测试的输入引脚来实现垂直压缩,因此只需少量的输入管脚就可以驱动大量的内部扫描链。相对于传统的广播式垂直压缩方法或者采用异或门网络的逻辑变换压缩方法,该压缩技术不存在解压缩电路的线性相关性,所以不会出现无解的情况。(3)针对激励数据的X轴方向(水平方向),本文给出了一种混合游程编码压缩方法,它具有压缩率高,相应解码电路硬件开销小、以及测试功耗低等突出特点。另外,由于编码算法的压缩率和测试数据中不确定位的填充策略有很大的关系,所以为了进一步提高测试压缩编码效率,我们还考虑了一种不确定位的迭代排序填充算法来对测试数据进行预处理的方法。在测试响应压缩方面,本文给出了一种基于循环码的测试响应压缩技术。由于芯片内部含有多个测试观测点,从这些观测点输出的测试响应流数据非常庞大。可以通过空间和时间压缩技术把响应流的数据压缩成少量的“特征位”来减少测试响应的数据量。本文给出的压缩方法具有空间压缩、时间压缩、以及与设计电路无关的特性,并且由于是单输出,所以总能保证最大的压缩率;另外,可以通过在压缩电路中增加少量的逻辑门就可以实现故障的诊断功能。最后,为了使所研究的算法满足工程上的实际应用需求,以及更全面的评价各压缩算法的性能,设计了一个具有实用价值的压缩网络。同时通过FPGA实现了各种测试压缩电路,并且成功的应用到32位浮点高性能数字信号处理器芯片的低成本测试方案中,进一步验证了各压缩算法的正确性和实用性。