摘 要: 討論了IEEE P1500測試架構,,詳細分析并實現了IP核的測試環(huán)(Wrapper)結構,給出了一種支持該標準的芯片級測試控制結構,。該結構能控制基于總線結構的TAM以及P1500 Wrapper,,通過芯片級CTAP控制器,支持串行或并行測試訪問,,實現了核內測試以及核間互連測試,。同時該結構只需5根額外測試管腳。
關鍵詞: 片上系統(tǒng),; 測試環(huán),; 測試訪問機制; IP核
片上系統(tǒng)SoC已經發(fā)展成為當今的一種主流技術,,但由于系統(tǒng)集成商從IP核供應商處得到的芯核信息非常有限,,給芯片級測試集成開發(fā)帶來新的挑戰(zhàn),SoC測試也被認為是SoC設計流程中的一個瓶頸,。IEEE P1500工作組正在制定的新標準便是以各種型態(tài)及用途的核測試是否能以即插即用(Plug-and-Play)的方式整合于SoC內為考慮[1],。IEEE P1500對芯核測試環(huán)(Wrapper)和用于傳遞核測試信息的核測試語言(CTL)做了規(guī)定,但為了適應多供應方提供芯核的事實,,P1500對Wrapper只有行為上的定義,,同時并行測試訪問機制(TAM)也留給用戶自己定義[2]。參考文獻[3],、[4]對P1500 和Wrapper的設計進行了討論,;參考文獻[5]、[6]提出了層次化測試結構的設計方案,,能夠支持多種類型的IP核,,但結構較復雜。本文構建并實現了一個可行的測試架構,,該架構包括標準規(guī)定的P1500 Wrapper,、用戶自定義的并行TAM以及芯片級測試控制器。該測試控制結構簡單,硬件資源花費較少,。
1 P1500 Wrapper及實現
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:指令與測試數據選擇端,。為1時,,WIR連入 WSI-WSO,傳送測試指令,;為0時,,根據WIR指令,選擇WBR,、WBY或核內部數據寄存器,,傳送測試數據。
CaptureWR,、ShiftWR,、UpdateWR:分別為Wrapper數據、指令的捕獲端,、移位端和更新端,。
整個Wrapper的設計由Wrapper單元和指令控制模塊兩部分組成。
1.1 Wrapper單元(WBC)
P1500規(guī)定每個數字核的功能管腳有1個WBC,,它們共同構成WBR,,Wrapper單元具有移位、捕獲,、更新等功能,;能夠提供正常的功能路徑,實現核輸入可控性和輸出可觀性,。IEEE P1500只定義了WBC的行為,,并沒有具體實現,允許用戶擴展WBC功能,,本設計除了實現標準要求的以上功能外,還提供并行TAM的接口,,供WPI-WPO的輸入輸出,整個操作由WIP信號和指令共同控制,圖2為Wrapper輸入單元的原理圖,,表1為其真值表。Wrapper輸出單元與之類似,。
1.2 指令控制模塊
指令寄存器(WIR)由1個移位寄存器以及1個等長的更新寄存器組成,。指令通過WSI掃描到移位寄存器,只有當指令鎖存到更新寄存器中,,指令才有效,。P1500 測試環(huán)有多種操作模式,除了串行測試模式外,,還有可選的并行測試模式。主要有正常模式,、 串行內測試,、串行外測試、盤路測試,、 并行內測試,、并行外測試,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指令寄存器選中的數據寄存器進行移位操作,。
2 SoC級測試控制結構
基于IEEE P1500的SOC測試架構如圖4所示,。主要由串行數據開關DS、并行數據開關PDS,、測試配置寄存器TCR以及1個可以控制多個P1500核的CTAP控制器構成,。該結構硬件開銷少,只需5個額外的測試管腳,,其中TAM可以復用SoC的功能管腳,,Source和Sink可以是片內的,,也可以由片外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信號的控制下,,產生TCR所需的信號(shift_tc,update_tc,,select_tc),,測試時,通過這3個狀態(tài)對測試配置寄存器進行配置,,選擇指定的核,。CTAP的其余狀態(tài)結合TMS信號產生P1500所需要的WIP信號,控制Wrapper操作,。其狀態(tài)機描述如圖5所示,。
2.2 測試配置寄存器TCR
測試配置由一組移位更新寄存器組成,其中寄存器的位數是由核的個數決定的,。其輸入信號由CTAP控制器產生,,測試配置數據由TDI輸入,圖6是一個m位的移位更新寄存器,,用來控制m個核,,從更新寄存器出來的信號連到串行數據開關以及并行數據開關的en端,當某個核的en端為1時,,該核被選中,,進行核內相應測試;當en為全1時,,核全部被選中,,可以進行核間互連測試。
2.3 數據開關(DS和PDS)
數據開關用來控制串行測試數據的路徑,,連接芯片與IP核,。其結構如圖7所示。
當DS的en信號為1時,,芯片串行測試數據路徑就與IP核的串行測試數據路徑連接,,通過它,可以移入指令或者測試數據到IP核中,。同理,,在基于總線的TAM上,,也為每個核配置1個總線數據開關,其原理與串行線上的DS相同,,只是將1位TAM,,改為連接多位TAM。如圖7所示,。
3 測試步驟
測試步驟如下:
(1) 進行測試配置:由TSM信號控制CTAP狀態(tài)機,,通過TDI進行測試配置,輸入m位二進制數,,表示相對應IP核選中情況,。如100…0,表示選中第1個IP核進行測試,。
(2) 測試指令輸入:由TSM信號控制CTAP狀態(tài)機,,通過TDI輸入測試指令,將指令輸入到選中的IP的WIR中,。
(3) 測試數據的輸入:通過TSM信號控制CTAP狀態(tài)機,根據輸入的指令,,選擇串行或者并行測試,,將測試數據輸入WBR,結合指令,,進行相應的測試,。
(4) 重復以上步驟,完成所有核的內部測試,,不同核有不同的測試方法與要求,,如BIST、Iddq,、掃描測試等,,要根據具體的核供應商以及所要求的故障覆蓋率決定。
(5) 測試完所有的IP核后,,將測試配置寄存器設置為全1,,即111…1,選中所有核,,然后移入互連測試指令,,進行核間互連測試。
4 仿真實現
為驗證該結構,,依次設計了3個簡單的邏輯核,,1個計數器、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位加法器核并行內測試指令為例,,將010二進制碼輸入配置寄存器,,選中4位加法器核進行測試,然后再控制TMS信號,,將并行測試指令111移入指令寄存器并進行更新,,隨后通過TAM信號輸入測試激勵,進行功能測試,。為方便說明,,這里只選010作為測試矢量,,如果核的功能正確,根據Wrapper與TAM的連接情況,,其TAM輸出應為100和×11,。從仿真波形中可以看出,測試數據移位更新捕獲后,,輸出結果一致,,功能正確。仿真波形如圖8所示,。
為了實現SoC的并行測試,,本文設計的P1500 Wrapper提供并行TAM的接口,供WPI-WPO的輸入輸出,同時給出了基于IEEE P1500的SoC測試架構,,該結構充分考慮IEEE 1149.1 TAP的成熟技術,,通過增設配置寄存器狀態(tài),并結合P1500的WIP信號,實現了對多個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.