以现今的芯片设计的发展趋势而言,基于设计成本的考虑,一般都会考虑系统芯片设计的可能性。近年来制程技术的成熟,也使系统芯片设计的可行性增加。因此,系统芯片的概念已经是一种不可阻档的趋势了。系统芯片除了在硬件方面面临了一些实作的问题外,系统芯片在不论设计、整合、系统层级的软件自动化上,往往也都面临很大的挑战。在测试的领域里,系统芯片测试同样也遇到了许多困难,为了解决这些困难,达到系统芯片测试的需求,有很多学者提出看法。IEEE 1500测试封套就是一种被广为研究的系统芯片测试封套,初期的目标在于提出纯数字的系统芯片测试方法,并希望最后可以使用在数字、模拟还有内存的混合测试中。一般人皆可依据此标准实作出可以嵌入在系统芯片中之IP核心电路,并使嵌入之IP核心电路可以透过标准测试封套完成功能操作、旁通、内部测试以及外部测试等动作。测试封套不仅可以使系统芯片测试标准化,还可以避免为了测试不同的IP核心电路,而重新设计每个IP核心电路。并且测试封套可以利用统一控制讯号控制的特性,进而达到每个IP核心电路以及各自的测试图样的再利用。
随着制程的进步,延迟时间会渐渐缩短。但是连接在线的延迟时间缩短的幅度并不如一般的逻辑闸,所以连接在线的延迟时间渐渐的赶上了在逻辑闸中的延迟时间。因此,延迟时间的考虑变的越来越复杂。并且,先进的制程也比较不稳定,在芯片的制作过程中,很容易造成预期外的延迟时间,并造成延迟错误。可预见的,测试延迟错误将会变的越来越重要。大部分传统延迟错误测试所提的研究,都是研究如何提升测试的错误涵盖率(Fault Coverage),也有一部分研究如何有效的降低测试功率。但以现今而言,一个有效的系统芯片的延迟错误测试方法,或许才是当务之急。使用IEEE 1500标准测试封套来执行系统芯片的延迟错误测试,是一个不错的想法。有一些研究提出以IEEE 1500标准测试封套实现系统芯片的延迟错误测试方法,但是这些方法都没有考虑连接在线的延迟时间。为了更准确的执行系统芯片的延迟错误测试,本篇研究提出两种以IEEE 1500标准测试封套实现系统芯片的延迟错误测试方法。
IEEE 1500简介
IEEE 1500测试封套主要目标除了测试系统芯片的胶合逻辑(Glue Logic)、接口控制电路及用户界定逻辑 (User-Defined Logic) 外,最主要是用来测试各个IP核心电路。IEEE 1500测试封套为了分别测试这些不同的项目,提供了数种测试模式:正常模式(Normal Mode)、封套核心测试(WCORETEST)、封套外部测试(WEXTESTS)、封套旁通测试(WBYPASS)等模式。针对不同的测试模式,IP核心电路的设计者只需提供在此模式下的测试数据,并由系统芯片的设计者将各个IP核心电路的测试图样(Test Patterns),转换成系统芯片相对应的测试图样,进行测试即可。(图一)描述一包覆IEEE 1500测试封套的IP核心电路架构。封套接口缓存器(Wrapper Boundary Register, WBR)负责储存输出入端测试数据。封套指令缓存器(Wrapper Instruction Register, WIR) 负责储存测试指令。当该包覆IEEE 1500测试封套的IP核心电路不被测试时,可以使用封套旁通缓存器(Wrapper Bypass Register, WBY)提供简短的数据传送路径。
新系统芯片延迟错误测试方法介绍
我们的第一种延迟错误测试方法称之为G1P2,该方法可以使胶合逻辑使用单测试图样执行单一黏着错误测试,而待测IP核心电路本身则使用双测试图样执行延迟错误测试。该方法的特色在于可以藉由胶合逻辑传递信息。因为我们不想为了传递第二组测试图样,而在封套接口单元增加一个缓存器,所以我们并不直接将所需的第二组测试图样位移进来。我们是将其存放在输出端的封套接口单元上,以及少部分由系统芯片输入端输入,然后利用类似封套外部测试模式的操作手法,藉由穿过胶合逻辑传递信息,就可以在输入端的封套接口单元上得到所需的第二组测试图样。相关图标参考(图一),可以看出G1P2以及G1P2测试图样的传送路径的简图。如图二(a),第二组测试图样是经由胶合逻辑电路,输入到输入端封套接口的位移缓存器中,经更新后即进入到待测电路中。
第二种方法我们称之为G2P2。如图二(b),可以看出两个测试图样皆是经由胶合逻辑电路,输入到待测电路中。所以该方法可以使胶合逻辑跟IP核心电路,都执行双测试图样执行延迟错误测试。该方法我们需要在每个输出端封套的封套接口单元上,增加一个缓存器,并将两组测试图样都储存在输出端封套的封套接口单元上。如G1P2的第二组测试图样一样,这两组测试图样都是藉由胶合逻辑传递信息,目的是为了将胶合逻辑电路的延迟时间也考虑进来,使的延迟错误模型的测试可以执行全速测试。由于我们可以同时测试延迟错误模型以及封套外部测试模式,藉由这个方式我们可以有效的降低封套外部测试测试的时间。
《图二 G1P2(a)及G2P2(b)的数据路径》 |
|
G1P2延迟错误模型中封套接口单元之控制
我们希望在G1P2执行的过程中,可以同时执行封套外部测试模式。为了达到这样的效果,我们将每一次G1P2的测试都分成五个步骤。我们测试的步骤如下所示,首先,我们先将第一组测试图样位移进入输入端封套接口单元,并同时将封套外部测试模式的测试图样位移进入输出端封套接口单元,如图三(a)。第二步骤是致能更新(Update)控制讯号,如图三(b)。第三步骤是致能抓取(Capture)控制讯号,如图三(c)。第四步骤是致能更新控制讯号,再一次将测试图样从封套接口单元中的位移缓存器更新至更新缓存器,如图三(d)。最后一个步骤是致能抓取控制讯号,将结果抓取到输出端封套接口单元的位移缓存器中,如图三(e)。
G2P2延迟错误模型中封套接口单元之控制
当我们执行G2P2的测试时,我们将每一次的测试都分成四个步骤。我们测试的步骤如下所示,首先,我们将G2P2的第一组测试图样位移进入待测IP核心电路输入端封套接口单元,并同时将两组测试图样位移进入外围的IP核心电路输出端封套接口单元。如图四(a)。第二步骤是致能更新控制讯号,如图四(b)。第三步骤是我们将使用外部观察讯号,对待测IP核心电路来说,抓取控制讯号会被致能,而对外围的IP核心电路来说,更新控制讯号将会致能。图四(c)为控制讯号到达而触发频率尚未到达前,而图四(d)为触发频率到达后。最后一个步骤是致能抓取控制讯号,将G2P2的结果抓取到待测IP核心电路输出端封套接口单元的位移缓存器中,如图四(e)。
图五是G1P2、G2P2的输入端封套接口单元架构,只改变所接收的抓取控制讯号。图六是 G2P2的输出端封套接口单元架构,改变所接收的更新控制讯号,并增加一组多任务器,目的在于可以使系统芯片中所有IP核心电路可以同时被测试。
《图五 G1P2、G2P2的输入端封套接口单元架构》 |
|
(图七)是经过增加测试点以后的示意图。当我们在执行封套外部测试时,有些测试图样在IP核心电路的输入端得不到我们所需的结果,我们会在这些输入端放置一些测试点。测试点被放置在结果不符合要求的输入端,在控制底下,将测试结果翻转成我们所需的结果。可利用SAT技术来计算,是否可以从胶合逻辑电路得到所需的测试图样。如果所需的测试图样,都可以由这个胶合逻辑电路求得,表示每一笔测试图样都可以穿过胶合逻辑电路,则我们无须外加测试点。相反的,若有一些测试图样无法由这个胶合逻辑电路求得,则表示需要为这些测试图样其中若干位所经之数据路径加上测试点。
《图七 经过增加测试点以后的延迟错误模型测试示意图》 |
|
实验结果
实验结果包含两部分,测试时间比较以及测试面积比较。各部分依据本论文以及[Chiu 05]跟[Wang 05]之方法加以比较之。测试的方式假定系统芯片中每一个IP核心电路都会同时测定,而测试模式只讨论及延迟错误模型。在延迟错误测试时,由于一次测试需要两个测试图样,所以测试时间较长。基本上,本研究跟[Chiu 05]、[Wang 05]在测试访问机制(TAM)路径的长短差异,仅在于我们各自拥有不一样的输出入端封套接口单元。我们将延迟错误的测试时间结果纪录在表1中,而「+」号后面的数字,表示比目标物多出的比例,「-」号后面的数字表示比目标物减少的比例。
致于测试面积比较,我们利用台积电点18制程,来分析各个输出入端封套接口单元的相对面积。(表2)列出各种不同封套接口单元的相对面积值。(表3)则是利用(表2)所列之值来计算各IP核心电路的输出入端封套接口单元的相对面积值。
(表一) 延迟错误模型测试时间比较
|
Test Time |
Test Time Difference |
IP Cores |
Delay fault patterns |
[Wang 05] |
[Chiu 05] |
G1P2 |
[Chiu 05] |
[Wang 05] |
G2P2 |
S383 |
133 |
4,687 |
8,943 |
4,820 |
+2.8% |
-46.1% |
4,687 |
-0% |
-47.6% |
S5378 |
129 |
6,107 |
11,783 |
6,236 |
+2.1% |
-47.1% |
6,107 |
-0% |
-48.2% |
S9234 |
84 |
3,397 |
6,505 |
3,481 |
+2.5% |
-46.5% |
3,397 |
-0% |
-47.8% |
S13207 |
179 |
24,837 |
48,284 |
24,656 |
-0.7% |
-48.9% |
26,997 |
+8.7% |
-44.1% |
S15850 |
148 |
19,665 |
36,381 |
18,621 |
-5.3% |
-48.8% |
21,002 |
+6.8% |
-42.3% |
S35932 |
47 |
16,893 |
32,916 |
16,748 |
-0.8% |
-49.1% |
17,517 |
+3.7% |
-46.8% |
S38417 |
246 |
69,157 |
134,341 |
72,615 |
+5.0% |
-45.9% |
67,921 |
-1.8% |
-49.4% |
S38584 |
184 |
52,537 |
101,105 |
63,082 |
+20.1% |
-37.6% |
51,241 |
-1.8% |
-49.3% |
Average |
143.8 |
24,660.0 |
47,532.3 |
26.925.5 |
+9.2% |
-43.4% |
2,421.5 |
-1.4% |
-49.3% |
(表二) 不同封套接口单元的相对面积值
|
Gate Counts |
[Wang 05]输入封套接口单元 |
24.75 |
[Wang 05]输出封套接口单元 |
19.15 |
[Chiu 05]输入封套接口单元 |
21.68 |
[Chiu 05]输出封套接口单元 |
30.05 |
G1P2 输入端封套接口单元 |
19.15 |
G1P2输出端封套接口单元 |
19.15 |
G2P2输入端封套接口单元 |
19.15 |
G2P2输出端封套接口单元 |
27.40 |
(表三) 输出入端封套接口单元面积比较
|
Test Wrapper Area |
Test Area Reduction |
IP Cores |
[Chiu05] |
[wamg 05] |
G1P2 |
[Chiu 05] |
[Wang 05] |
G2P2 |
S383 |
767.17 |
860.65 |
670.25 |
-12.69% |
-22.12% |
678.50 |
-11.62% |
-21.16% |
S5378 |
2,231.25 |
1,804.60 |
1,608.60 |
-27.91% |
-10.86% |
2,012.85 |
-9.79% |
+11.54% |
S9234 |
1,892.33 |
1,599.55 |
1,397.95 |
-26.12% |
-12.60% |
1,703.20 |
-9.99% |
+6.48% |
S13207 |
5,430.96 |
4,138.90 |
3,791.70 |
-30.18% |
-8.34% |
4,913.70 |
-9.52% |
+18.71% |
S15850 |
5,696.06 |
4,471.85 |
4,040.65 |
-29.06% |
-9.64% |
5,146.15 |
-9.65% |
+16.49% |
S35932 |
9,954.10 |
6,726.15 |
6,530.15 |
-34.40% |
-2.91% |
9,054.65 |
-9.03% |
+34.61% |
S38417 |
3,161.25 |
2,320.75 |
2,163.95 |
-31.55% |
-6.76% |
2,865.20 |
-9.36% |
+23.46% |
S38584 |
8,997.44 |
6,149.30 |
5,936.50 |
-34.02% |
-3.46% |
8,180.50 |
-9.07% |
+33.03% |
Average |
4,766.32 |
3,508.98 |
3,267.47 |
-31.44% |
-6.88% |
4319.34 |
-9.38% |
+23.09% |
结论
(表三) 输出入端封套接口单元面积比较随着操作频率越来越小,在联机上的延迟所占的比例就越来越大。在这种情形下,延迟错误的测试是必要的。G1P2主要是提出一种以穿越胶合逻辑来得到测试数据的基本方法,该方法主要在可以节省一些测试面积以及测试时间。G2P2是以G1P2为基础发展出来的,虽然测试面积以及测试时间并没有显著的改善,但是因为有考虑到胶合逻辑的延迟,因此可以全速的执行延迟错误测试。
(张环麟为国立台湾大学电子工程研究所博士班学生,林君平为国立台湾大学电子工程研究所硕士班学生,刘致为为国立台湾大学电子工程研究所教授)
IP间联机的延迟随着制程的奈米化,在系统芯片中,所占延迟时间的比例会越来越高。而一般胶合逻辑电路中,IP间联机通常占很大一部分。所以考虑胶合逻辑延迟时间的延迟错误测试方法,将会越来越重要。因为通常胶合逻辑并不会太复杂,所以在执行G1P2以及G2P2这两个方法时,几乎不会产生测试点,又或者仅会产生很少的数量,并不会增加太多面积。
-[IEEE 1500] “IEEE Standard Testability Method for Embedded Core-based Integrated Circuits”IEEE Std 1500,2005.
-[Li 02] Jin-Fu Li, Hsin-Jung Huang, Jeng-Bin Chen,Chih-Pin Su,Cheng-Wen Wu,Chuang Cheng,Shao-I Chen,Chi-Yi Hwang,Hsiao-Ping Lin“A HIERARCHICAL TEST METHODOLOGY FOR SYSTEMS ON CHIP” ,Proc. IEEE International Test Conference , 2002, PP.69 – 81
-[Li 04] James C.-M. Li, “A Design for Testability Technique for Low Power Delay Fault Testing” , Proc. IEICE Trans. on Electronics, Vol. E87-C, No. 4, April, 2004, pp. 621-628.
-[Ahmed 06] Nisar Ahmed, Mohammad Tehranipoor, Vinay Jayaram, “Timing-Based Delay Test for Screening Small Delay Defects” Proc. Design Automation Conference, 2006 43rd ACM/IEEE , pp.320 – 325.
-[Chiu 05] Hao-Hsuan Chiu, Po-Lin Chen, Chung-Yi Li, and Tsin-Yuan Chang, “A Delay Test Wrapper Design on Core-Based System-on-Chip”, Proc. 16th VLSI/CAD P2-62.