以現今的晶片設計的發展趨勢而言,基於設計成本的考量,一般都會考慮系統晶片設計的可能性。近年來製程技術的成熟,也使系統晶片設計的可行性增加。因此,系統晶片的概念已經是一種不可阻檔的趨勢了。系統晶片除了在硬體方面面臨了一些實作的問題外,系統晶片在不論設計、整合、系統層級的軟體自動化上,往往也都面臨很大的挑戰。在測試的領域裡,系統晶片測試同樣也遇到了許多困難,為了解決這些困難,達到系統晶片測試的需求,有很多學者提出看法。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.
-[Wang 05] Shin-Moe Wang, Chih-Yen Lo, Chen-Hsing Wang, and Cheng-Wen Wu, “Test Integration of Core-Based System-on-Chip Supporting Delay Test”, Proc. 16th VLSI/CAD P2-71.