傳統電路板的設計方法SoB(System on Board)與現在開發中的SoC(System on chip;系統單晶片)設計方法十分類似,同樣是整合事先設計好的 IP Core(個別設計的電路,功能不一),但是在做系統的整合測試時,卻有基本上的差異。
在SoB設計方法中,是將各IP Core 晶片分別生產出來,再整合成系統,所以可以針對每顆IP Core 晶片,個別測試其硬體層級的電路功能;但是在SoC的整合過程中則不是這樣,因為SoC強調的就是單晶片的觀念,在此系統晶片生產之前,個別的IP Core與UDL(User-Defined Logic)並不會有實際的硬體產生,因此只能做軟體層級的驗證,無法對個別的IP Core做硬體層級的電路測試,只有等到SoC生產的時候,與整個系統同時進行測試。因此IP Core的供應者只提供測試的方法與測試資料,而SoC的設計者卻必須負責系統的整合,並將各個IP Core的測試資料,轉換成SoC相對應的測試資料,進行測試。
對此,學界、業界現今在開發一套技術,以針對SoC進行整合測試,也就是所謂的P1500標準,其原理是對IP Core外加一些電路,使其具有一定規格,方便做SoC整合測試;而為了描述P1500標準,也同時發展出另一套測試語言CTL(Core Test Language)。CTL目前是屬於IEEE P1450.6標準的範圍,其目的是為了描述P1500標準的包裝界面以及系統測試的各項資訊而產生的。以下將分別就P1500標準及CTL兩種技術,提出說明。
P1500標準介紹
IEEE P1500 標準的全名為IEEE P1500 Standard for Embedded Core Test (SECT),編號前的P代表此標準目前仍處於Proposal的階段,尚未成為IEEE正式的標準。P1500標準目標是在建立一套完善的方法,使其滿足各種不同的測試項目與測試策略,並盡可能的支援各項測試的需求。
事實上,因為SoC的整合者,對IP Core內部的瞭解十分有限,即使是軟體層級的IP Core,也可能經過加密而無法知悉IP Core內部的資訊。IP Core的供應商必須提供給系統或設計廠測試的方法,例如其DFT(Design for Test)的方法以及測試資料,但在設計這些IP Core的測試方法的時候,IP Core的供應商有時並不瞭解SoC測試的條件及環境,因此這些測試方法有可能會不符合SoC的測試要求;例如Test Coverage太低、或者測試成本太高。對於一個SoC系統整合者而言,要如何確保IP Core供應商給予足夠的測試資料,才能在完全不知道IP內部的資訊,也不能加以更動IP Core原有設計的情形下,在系統的層級完成對IP Core的測試?這便是發展P1500標準,主要想達成的任務。
P1500標準包含了平行(parallel)測試與循序(serial)測試的機制、以及標準的測試控制指令,以測試SoC晶片內的IP Core與其接線,有效的達到測試時隔離與保護的目的。發展P1500標準可以達到系統晶片測試自動化,並且利用更佳的DFT(Design for Testability)技術來降低SoC的測試成本,同時提高測試的品質。參考(圖一)。
在此測試架構中,須先將內部每一個IP Core1~IP CoreN以P1500 標準包裝(Standard P1500 Core TestWrapper),利用輸入輸出埠(圖一的TAM-source、TAM-Sink),將測試資料由TAM-Source輸入,再以循序或平行 的模式由TAM-in 送進待測的IP Core,並將結果由TAM-out 輸出,最後送到TAM-Sink 觀察,依此順序我們可以針對每一個IP Core做測試。
此測試架構可分成三部分:
- (1) IP cores:將所有IP cores包上P1500的標準包裝,傳送測試資料及控制訊號,完成對特定IP core 所需的測試。
- (2)Chip Level Controller:SoC晶片的設計者可以自行定義其測試控制器,此控制器能產生控制訊號,並利用這些控制訊號來控制TAM 和標準包裝中的WIR (Wrapper Instruction Register),完成對chip及IP cores 所需進行的測試流程。
- (3)User-Defined Test Access Mechanism:SoC晶片的設計者可以自行定義,透過TAM-in 將所需的測試資料傳送入IP Core,並將結果由TAM-out 輸出。
(圖二)為IP Core以P1500包裝後的圖。P1500標準在核心的外圍,加上供指令輸入的暫存器Wrapper Instruction Register(WIR),供資料輸入的暫存器Wrapper Bypass Register(WBY)及Wrapper Boundary Register(WBR),並藉由9個標準的信號來存取(包括WSI、WSO、WRST、WCLK、SelectWR、Capture、Shift、Update、Transfer)。
<圖片來源:P1500 web site>
P1500 Wrapper的介面IO 可分為兩大類型,如(圖三)所示,即循序存取的 Wrapper Serial Port (WSP),以及平行存取的Wrapper Parallel Port (WPP)。
![《圖三 P1500 Wrapper的介面IO[6]》](/art/2005/03/051417564764/p3.gif)
《圖三 P1500 Wrapper的介面IO[6]》 |
|
WSP是標準中必要的介面,其訊號分別定義如下:
- ˙Wrapper Serial Input(WSI):資料循序的輸入端。
- ˙Wrapper Serial Output(WSO):資料循序的輸出端。
- ˙Wrapper Clock(WCLK):時脈輸入。
- ˙Wrapper Reset(WRST):重置訊號。
- ˙Instruction Register Selection(SelectWR);用來決定輸入至WIR還是其餘的 Data Registers。
- ˙Wrapper Capture(Capture):控制Wrapper資料的擷取。
- ˙Wrapper Shift(Shift):控制Wrapper資料的移動。
- ˙Wrapper Update(Update):控制Wrapper資料的更新。
- ˙Wrapper Transfer(Transfer:控制Wrapper資料的傳遞。
在串列式(serial)存取機制中,測試資料從WSI傳至WSO,有多條路徑可供選擇,經由P1500包裝介面的控制訊號,也就是(圖四)中的Wrapper Control &Clocks,發出控制訊號(綠色線)來控制多工器(Gn、G1)及暫存器(WBR、WIR、Bypass、CDR 1-N),就可以選擇所需的資料路徑,由於所有資料皆由 WSI一筆一筆排成一列輸入,所以稱其為串列式。其測試過程一開始,先利用Wrapper Control & Clocks 將指令資料輸入至指令暫存器(Wrapper Instruction Register; WIR)中,決定其測試模式,再由此指令配合控制訊號選擇一個配合此測試模式的資料暫存器(WBR、CDR、Bypass)輸入資料,以進行測試。
其中的WBR(Wrapper Boundary Register)是由週邊暫存器單元(Wrapper Boundary Cell;WBC)所組合而成的暫存器。在P1500 標準中規定,在核心電路的每一輸入輸出線上皆需加上此WBC,所以其bit 數必須視IP Core而定。WBC的主要功能在於可接收由存取機制傳送來的測試資料,並傳入IP Core的輸入埠(TAM in),亦可將由IP Core輸出的資料,經由此暫存器送出給存取機制。因為由WBC管理IP Core的輸出入埠的資料進出,所以其存取機制,可以是並列式的,也可以是串列式的。CDR為原本IP Core中的Scan Chain,由Scan Cell(IP Core內部暫存器)組成,可配合IP Core輸出入埠的資料,進行測試。Bypass為 1-bit 的暫存器,
當不對此IP Core 進行測試時,即可經由此此暫存器通過,使測試資料可以不進入IP Core內部,直接由WSI 輸入通過bypass 再由WSO 輸出快速到達下
一個被測試的IP Core。
在串列式的存取機制中,僅有單一位元的資料輸入輸出線,所以在IP Core 內部只能有一條Scan Chain,在使用上顯然有所限制,所以P1500 必須支援並列式存取,才能滿足多條Scan Chain同時存在。(圖五)即並列式機制架構,除了原先的串列式存取界面(WrapperSerial Input;WSI、Wrapper Serial Outpu;WSO)外,並加了並列存取界面(TAM-in、TAMout)。經由並列存取界面之多條輸出輸入線(圖中紅色路徑)同時存取資料,自然可大幅增加測試準確率。
CTL簡介
核心電路測試描述語言(Core Test Language;CTL)是專為P1500 所制定的一套電路測試描述語言,用來描述IP core及SoC晶片的整合測試等資訊。CTL是由IEEE 1450 Standard Test Information Language(簡稱STIL)所延伸而來的,STIL的主要目的在描述測試資料與測試訊號時序。在SoC技術時,因為不只單一個IP Core在晶片上,要測試這些IP Core,我們使用P1500來使每一個IP Core 有類似的外殼,在此情況下,IP core 跟IP Core 之間的溝通就變的較為容易;相對的,因為CTL是隨P1500的發展而一同制定的,CTL也必須符合SoC技術的要求,要比STIL多加上不同測試模式下的測試需求,來描述IP core 跟IP Core 之間電路的整合測試方式。
從(圖六)可看出CTL需要相同於STIL的一些資訊,有輸出輸入端(Signals)、系統時脈訊號及一些輸出輸入的時間控制(Timing)、Scan Chain的內部結構(ScanStructures)、測試資料(Patterns)、測試訊號次序及模式(Protocols),亦需要原本STIL沒有的資訊,例如原本IP Core的測試模式及資訊(Internal)、P1500外接線路的測試模式及資訊(External)、不同的測試模
式下輸入測試訊號的描述(PatternInformation)。
(圖七)為P1500-CTL 示意圖,左邊為包裝P1500的IP Core;一般來說CTL針對此SoC層級的晶片,需包含Signals、SignalGroups、Timing、Pattern、MacroDefs、ScanStructures、Internal、External、PatternInformation等描述。
如(圖八),CTL可以在不清楚IP Core內部的情況下進行測試,而這項特性是必須的,因為大部分的情況下,系統中每個IP Core是由不同的個人或團隊分別完成,如果要求系統整合者了解晶片中每一個IP Core,顯然是強人所難。
如(圖九),CTL可以支援階層式的描述,也就是說可以描述SoC內每一個IP Core的資訊,同時也描述其測試模式。
CTL 對測試模式的描述
Environment {
CTL{}
CTL mode1{TestMode InternalTest;}
CTL mode2{TestMode EXternalTest;}
CTL modeN{TestMode N;}
}
在CTL中將測試模式定義在Environment之下,每個CTL宣告都是在定義一種測試模式,若此宣告沒有名稱,表示其為global,其餘每一個CTL皆可看到,其內容,如上方第一個CTL宣告即是global,而測試模式mode1則表示InternalTest,一般來說一個CTL測試模式的宣告,除一開始註明所代表的操作模式外,仍須定義Protocols、各Signals訊號在此測試模式下,分別扮演的角色、接線的連接情形,此操作模式的定義才算完整。
一般來說CTL的測試模式如(圖十)所示;以下並列舉三種必要的測試模式。
(1)BYPASS Mode
如(圖十一),當不對此IP Core做測試時使用此模式,經由外部控制訊號WSC,輸入指令給指令暫存器(WIR),使其測試模式為BYPASS Mode,並提供控制訊號給WBR、Bypass、IP Core等,使測試資料從WSI→Bypass→WSO通過,並前進到其欲測試的IP Core。
<資料來源:2002 IEEE P1500>
(2)WS_INTEST Mode
如(圖十二),當對此IP Core內部做測試時使用此模式;同樣經由外部控制訊號WSC,輸入指令給指令暫存器,使其測試模式為WS_ INTEST Mode,其測試資料從WSI→WBR→Internal Scan→WBR→WSO一一輸入,等一定位元的測試資料輸入到暫存器中(WBR、Internal Scan),觀察其輸出,然後輸入下一段一定位元的測試資料,直到測試結束。
(3)WS_EXTEST Mode
如(圖十三),當對此IP Core外部P1500接線做測試時使用此模式,同樣經由外部控制訊號WSC,輸入指令給指令暫存器,使其測試模式為WS_ EXTEST Mode,其測試資料從WSI→WBR→WBR→WSO一一輸入,等一定位元的測試資料輸入到暫存器中(WBR),觀察其輸出,然後輸入下一段一定位元的測試資料,直到測試結束。
<資料來源:2002 IEEE P1500>
結論
目前SoC晶片的設計研究,正走在時代的趨勢,許多設計大廠陸續投入研發人力,著力於開發相容的原型設計,並擁有各自的SoC測試整合技術。P1500標準做為發展SoC晶片設計的重要技術,也趨近成熟,雖然目前P1500技術仍處於Proposal的階段,相信其成為IEEE正式的標準,也是指日可待。目前數個市場領導EDA廠商早已藉由參與P1500的制訂取得最新的訊息,以開發相關的EDA工具;而CTL技術,正由測試機台的廠商積極研發支援CTL標準的測試機台與軟體環境。
所以一旦P1500及CTL成為IEEE正式的標準,符合P1500標準的SoC測試整合的EDA工具就會出現在市面上,同時先進的設計公司也都會擁有公司內部測試整合的能力,並且市面上也有能夠支援CTL的測試機台可實際使用。如果國內的IC設計產業朝SoC晶片設計的領域前進,P1500跟CTL兩項輔助技術之發展值得特別關注。
(作者李建模為台大電子工程學研究所/台大系統晶片中心研發教授,高琮評為研究生)
<參考文獻:
[1]工研院/系統晶片技術中心‧可測試設計課"Introduction to IEEE P1500 Test Standard"
http://www.taiwansoc.org/download/member_file/2002/test/2002-7.pdf
[2] Maurice Lousberg Philips "P1500's Core Test Launguage"
http://grouper.ieee.org/groups/1500/date01/ctl-date01.pdf
[3]黃稚存、吳誠文 "簡介IEEE P1500: 嵌入式核心測試的工業界標準(上)"
http://nsoc.eic.nctu.edu.tw/Uploads/p1500-031009-2154617.doc
[4]黃稚存、吳誠文 "簡介IEEE P1500: 嵌入式核心測試的工業界標準(下)"
http://nsoc.eic.nctu.edu.tw/Uploads/p1500-031009154533.doc
[5] Erik Jan Marinissen "Update of IEEE P1500 Core Wrapper Architecture"
http://grouper.ieee.org/groups/1500/itc02/ctag0210.pdf
[6] 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" Micro, IEEE , Volume: 22 , Issue: 5 , Sept.-Oct. 2002 Pages:69 - 81
[7] ERIK JAN MARINISSEN, ROHIT KAPUR,MAURICE LOUSBERG, TERESA MCLAURIN, MIKE RICCHETTI, YERVANT ZORIAN "On IEEE P1500's Standard for Embedded Core Test"
JOURNAL OF ELECTRONIC TESTING: Theory and Applications 18, 365-383, 2002>