摘 要: 討論了IEEE P1500測試架構,詳細分析并實現(xiàn)了IP核的測試環(huán)(Wrapper)結構,給出了一種支持該標準的芯片級測試控制結構。該結構能控制基于總線結構的TAM以及P1500 Wrapper,通過芯片級CTAP控制器,支持串行或并行測試訪問,實現(xiàn)了核內(nèi)測試以及核間互連測試。同時該結構只需5根額外測試管腳。
關鍵詞: 片上系統(tǒng); 測試環(huán); 測試訪問機制; IP核
片上系統(tǒng)SoC已經(jīng)發(fā)展成為當今的一種主流技術,但由于系統(tǒng)集成商從IP核供應商處得到的芯核信息非常有限,給芯片級測試集成開發(fā)帶來新的挑戰(zhàn),SoC測試也被認為是SoC設計流程中的一個瓶頸。IEEE P1500工作組正在制定的新標準便是以各種型態(tài)及用途的核測試是否能以即插即用(Plug-and-Play)的方式整合于SoC內(nèi)為考慮[1]。IEEE P1500對芯核測試環(huán)(Wrapper)和用于傳遞核測試信息的核測試語言(CTL)做了規(guī)定,但為了適應多供應方提供芯核的事實,P1500對Wrapper只有行為上的定義,同時并行測試訪問機制(TAM)也留給用戶自己定義[2]。參考文獻[3]、[4]對P1500 和Wrapper的設計進行了討論;參考文獻[5]、[6]提出了層次化測試結構的設計方案,能夠支持多種類型的IP核,但結構較復雜。本文構建并實現(xiàn)了一個可行的測試架構,該架構包括標準規(guī)定的P1500 Wrapper、用戶自定義的并行TAM以及芯片級測試控制器。該測試控制結構簡單,硬件資源花費較少。
1 P1500 Wrapper及實現(xiàn)
P1500的Wrapper由1個指令寄存器(WIR),1位旁路寄存器(WBY)和邊界寄存器(WBR)構成[3-4],并通過Wrapper接口端口(WIP)訪問這些寄存器,如圖1所示。WIP是標準中強制要求的,共6個信號線,其定義如下:
圖1 P1500 Wrapper結構
WRSTN:低電平有效的異步復位信號,復位有效時,測試環(huán)工作在正常模式。
WRCK:P1500提供給WIR,WBY、WBR的專用時鐘信號。
SelectWIR:指令與測試數(shù)據(jù)選擇端。為1時,WIR連入 WSI-WSO,傳送測試指令;為0時,根據(jù)WIR指令,選擇WBR、WBY或核內(nèi)部數(shù)據(jù)寄存器,傳送測試數(shù)據(jù)。
CaptureWR、ShiftWR、UpdateWR:分別為Wrapper數(shù)據(jù)、指令的捕獲端、移位端和更新端。
整個Wrapper的設計由Wrapper單元和指令控制模塊兩部分組成。
1.1 Wrapper單元(WBC)
P1500規(guī)定每個數(shù)字核的功能管腳有1個WBC,它們共同構成WBR,Wrapper單元具有移位、捕獲、更新等功能;能夠提供正常的功能路徑,實現(xiàn)核輸入可控性和輸出可觀性。IEEE P1500只定義了WBC的行為,并沒有具體實現(xiàn),允許用戶擴展WBC功能,本設計除了實現(xiàn)標準要求的以上功能外,還提供并行TAM的接口,供WPI-WPO的輸入輸出,整個操作由WIP信號和指令共同控制,圖2為Wrapper輸入單元的原理圖,表1為其真值表。Wrapper輸出單元與之類似。
1.2 指令控制模塊
指令寄存器(WIR)由1個移位寄存器以及1個等長的更新寄存器組成。指令通過WSI掃描到移位寄存器,只有當指令鎖存到更新寄存器中,指令才有效。P1500 測試環(huán)有多種操作模式,除了串行測試模式外,還有可選的并行測試模式。主要有正常模式、 串行內(nèi)測試、串行外測試、盤路測試、 并行內(nèi)測試、并行外測試,IEEE P1500都有相對應的指令。表2是本設計的部分指令、指令碼以及相應的功能描述。
Wrapper的整個操作是由WIP的信號配合載入到WIR的指令共同完成的。圖3中SelectWIR和ShiftWR在第2個WRCK上升沿之前為1。接下來3個時鐘保持這2個信號不變(本設計指令長度為3 bit), 開始了3位WIR指令的移位操作,移位完成后,ShiftWR信號置為0,而UpdateWR信號置為1。在隨后的WRCK的下降沿時,指令存到WIR的更新寄存器中。在WIR更新后,SelectWIR信號置為0,在下個WRCK時鐘來的時候,被Wrapper指令寄存器選中的數(shù)據(jù)寄存器進行移位操作。
2 SoC級測試控制結構
基于IEEE P1500的SOC測試架構如圖4所示。主要由串行數(shù)據(jù)開關DS、并行數(shù)據(jù)開關PDS、測試配置寄存器TCR以及1個可以控制多個P1500核的CTAP控制器構成。該結構硬件開銷少,只需5個額外的測試管腳,其中TAM可以復用SoC的功能管腳,Source和Sink可以是片內(nèi)的,也可以由片外ATE提供。
2.1 CTAP控制器
CTAP是一個19 bit的有限狀態(tài)機,它類似于1149.1的TAP控制器,是整個測試控制結構的核心部分,與1149.1的TAP控制器相比,增加了3個狀態(tài):Select TCR Scan、Shift TCR、Update TCR。在TMS信號的控制下,產(chǎn)生TCR所需的信號(shift_tc,update_tc,select_tc),測試時,通過這3個狀態(tài)對測試配置寄存器進行配置,選擇指定的核。CTAP的其余狀態(tài)結合TMS信號產(chǎn)生P1500所需要的WIP信號,控制Wrapper操作。其狀態(tài)機描述如圖5所示。
2.2 測試配置寄存器TCR
測試配置由一組移位更新寄存器組成,其中寄存器的位數(shù)是由核的個數(shù)決定的。其輸入信號由CTAP控制器產(chǎn)生,測試配置數(shù)據(jù)由TDI輸入,圖6是一個m位的移位更新寄存器,用來控制m個核,從更新寄存器出來的信號連到串行數(shù)據(jù)開關以及并行數(shù)據(jù)開關的en端,當某個核的en端為1時,該核被選中,進行核內(nèi)相應測試;當en為全1時,核全部被選中,可以進行核間互連測試。
2.3 數(shù)據(jù)開關(DS和PDS)
數(shù)據(jù)開關用來控制串行測試數(shù)據(jù)的路徑,連接芯片與IP核。其結構如圖7所示。
當DS的en信號為1時,芯片串行測試數(shù)據(jù)路徑就與IP核的串行測試數(shù)據(jù)路徑連接,通過它,可以移入指令或者測試數(shù)據(jù)到IP核中。同理,在基于總線的TAM上,也為每個核配置1個總線數(shù)據(jù)開關,其原理與串行線上的DS相同,只是將1位TAM,改為連接多位TAM。如圖7所示。
3 測試步驟
測試步驟如下:
(1) 進行測試配置:由TSM信號控制CTAP狀態(tài)機,通過TDI進行測試配置,輸入m位二進制數(shù),表示相對應IP核選中情況。如100…0,表示選中第1個IP核進行測試。
(2) 測試指令輸入:由TSM信號控制CTAP狀態(tài)機,通過TDI輸入測試指令,將指令輸入到選中的IP的WIR中。
(3) 測試數(shù)據(jù)的輸入:通過TSM信號控制CTAP狀態(tài)機,根據(jù)輸入的指令,選擇串行或者并行測試,將測試數(shù)據(jù)輸入WBR,結合指令,進行相應的測試。
(4) 重復以上步驟,完成所有核的內(nèi)部測試,不同核有不同的測試方法與要求,如BIST、Iddq、掃描測試等,要根據(jù)具體的核供應商以及所要求的故障覆蓋率決定。
(5) 測試完所有的IP核后,將測試配置寄存器設置為全1,即111…1,選中所有核,然后移入互連測試指令,進行核間互連測試。
4 仿真實現(xiàn)
為驗證該結構,依次設計了3個簡單的邏輯核,1個計數(shù)器、1個四位加法器和1個頻率計。以4位加法器核為例,為核進行Wrapper,其管腳為a(3:0)、b(3:0)、cin、s(3:0)、cout。例化WBC單元,為每個功能管腳加入WBC,并連入指令控制模塊。設TAM寬度為3 bit,為減少測試時間,平衡掃描鏈的長度,該3條掃描鏈為:PI(0),b(1),b(0),cin,s(0),cout,PO(0);PI(1),a(0),b(3),b(2),s(2),s(1),PO(1);PI(2),a(3),a(2),a(1),s(3),PO(2)。以同樣方式對其他核進行Wrapper并搭建SoC測試架構。下面以4位加法器核并行內(nèi)測試指令為例,將010二進制碼輸入配置寄存器,選中4位加法器核進行測試,然后再控制TMS信號,將并行測試指令111移入指令寄存器并進行更新,隨后通過TAM信號輸入測試激勵,進行功能測試。為方便說明,這里只選010作為測試矢量,如果核的功能正確,根據(jù)Wrapper與TAM的連接情況,其TAM輸出應為100和×11。從仿真波形中可以看出,測試數(shù)據(jù)移位更新捕獲后,輸出結果一致,功能正確。仿真波形如圖8所示。
為了實現(xiàn)SoC的并行測試,本文設計的P1500 Wrapper提供并行TAM的接口,供WPI-WPO的輸入輸出,同時給出了基于IEEE P1500的SoC測試架構,該結構充分考慮IEEE 1149.1 TAP的成熟技術,通過增設配置寄存器狀態(tài),并結合P1500的WIP信號,實現(xiàn)了對多個P1500核的測試控制。但對于Wrapper的優(yōu)化設計以及對多種類型芯核的測試控制器的設計,還需進一步研究。
參考文獻
[1] MARINISSEN E J, ZORIAN Y, KAPUR R, et al. towards a standard for embedded core test: an example. Proc. IEEE Int’l Test Conf.(ITC 99), IEEE Press, Pisca taway, N.J., 1999:616-627.
[2] IEEE P1500 Web Site.http://grouper.ieee.org/groups/1500/.
[3] MARINISSEN E J, GOEL S K, LOUSBERG M. Wrapper design for embedded core test, Proc. IEEE International Test Conference, AtIantic City, NJ,USA,2000:911-920.
[4] 陸思安,嚴曉浪,李浩亮.面向IP核測試復用的測試環(huán)設計.浙江大學學報(工學版), 2004,38(1):93-97.
[5] LEE K J, HUANG C I,CHEN J B, et al. A hierarchical test control architecture for core based design. In Proc. Ninth IEEE Asian Test Symp. (ATS), Taipei, Dec, 2000:248-253.
[6] LI J F, HUANG H J. A hierarchical test methodology for systems on chip. IEEE Design and Test of Computer, 2002:69-81.
[7] WU Cheng Wen. SOC testing methodology and practice. Design, Automation and Test in Europe,2005:1120-1121.