摘 要: 討論了IEEE P1500測(cè)試架構(gòu),,詳細(xì)分析并實(shí)現(xiàn)了IP核的測(cè)試環(huán)(Wrapper)結(jié)構(gòu),,給出了一種支持該標(biāo)準(zhǔn)的芯片級(jí)測(cè)試控制結(jié)構(gòu)。該結(jié)構(gòu)能控制基于總線結(jié)構(gòu)的TAM以及P1500 Wrapper,,通過(guò)芯片級(jí)CTAP控制器,,支持串行或并行測(cè)試訪問(wèn),,實(shí)現(xiàn)了核內(nèi)測(cè)試以及核間互連測(cè)試。同時(shí)該結(jié)構(gòu)只需5根額外測(cè)試管腳,。
關(guān)鍵詞: 片上系統(tǒng),; 測(cè)試環(huán); 測(cè)試訪問(wèn)機(jī)制,; IP核
片上系統(tǒng)SoC已經(jīng)發(fā)展成為當(dāng)今的一種主流技術(shù),,但由于系統(tǒng)集成商從IP核供應(yīng)商處得到的芯核信息非常有限,給芯片級(jí)測(cè)試集成開(kāi)發(fā)帶來(lái)新的挑戰(zhàn),,SoC測(cè)試也被認(rèn)為是SoC設(shè)計(jì)流程中的一個(gè)瓶頸,。IEEE P1500工作組正在制定的新標(biāo)準(zhǔn)便是以各種型態(tài)及用途的核測(cè)試是否能以即插即用(Plug-and-Play)的方式整合于SoC內(nèi)為考慮[1]。IEEE P1500對(duì)芯核測(cè)試環(huán)(Wrapper)和用于傳遞核測(cè)試信息的核測(cè)試語(yǔ)言(CTL)做了規(guī)定,,但為了適應(yīng)多供應(yīng)方提供芯核的事實(shí),,P1500對(duì)Wrapper只有行為上的定義,同時(shí)并行測(cè)試訪問(wèn)機(jī)制(TAM)也留給用戶(hù)自己定義[2],。參考文獻(xiàn)[3],、[4]對(duì)P1500 和Wrapper的設(shè)計(jì)進(jìn)行了討論;參考文獻(xiàn)[5],、[6]提出了層次化測(cè)試結(jié)構(gòu)的設(shè)計(jì)方案,,能夠支持多種類(lèi)型的IP核,,但結(jié)構(gòu)較復(fù)雜,。本文構(gòu)建并實(shí)現(xiàn)了一個(gè)可行的測(cè)試架構(gòu),該架構(gòu)包括標(biāo)準(zhǔn)規(guī)定的P1500 Wrapper,、用戶(hù)自定義的并行TAM以及芯片級(jí)測(cè)試控制器,。該測(cè)試控制結(jié)構(gòu)簡(jiǎn)單,硬件資源花費(fèi)較少,。
1 P1500 Wrapper及實(shí)現(xiàn)
P1500的Wrapper由1個(gè)指令寄存器(WIR),,1位旁路寄存器(WBY)和邊界寄存器(WBR)構(gòu)成[3-4],并通過(guò)Wrapper接口端口(WIP)訪問(wèn)這些寄存器,如圖1所示,。WIP是標(biāo)準(zhǔn)中強(qiáng)制要求的,,共6個(gè)信號(hào)線,其定義如下:
圖1 P1500 Wrapper結(jié)構(gòu)
WRSTN:低電平有效的異步復(fù)位信號(hào),,復(fù)位有效時(shí),,測(cè)試環(huán)工作在正常模式。
WRCK:P1500提供給WIR,,WBY,、WBR的專(zhuān)用時(shí)鐘信號(hào)。
SelectWIR:指令與測(cè)試數(shù)據(jù)選擇端,。為1時(shí),,WIR連入 WSI-WSO,,傳送測(cè)試指令;為0時(shí),,根據(jù)WIR指令,,選擇WBR、WBY或核內(nèi)部數(shù)據(jù)寄存器,,傳送測(cè)試數(shù)據(jù),。
CaptureWR、ShiftWR,、UpdateWR:分別為Wrapper數(shù)據(jù),、指令的捕獲端、移位端和更新端,。
整個(gè)Wrapper的設(shè)計(jì)由Wrapper單元和指令控制模塊兩部分組成,。
1.1 Wrapper單元(WBC)
P1500規(guī)定每個(gè)數(shù)字核的功能管腳有1個(gè)WBC,它們共同構(gòu)成WBR,,Wrapper單元具有移位,、捕獲、更新等功能,;能夠提供正常的功能路徑,,實(shí)現(xiàn)核輸入可控性和輸出可觀性。IEEE P1500只定義了WBC的行為,,并沒(méi)有具體實(shí)現(xiàn),,允許用戶(hù)擴(kuò)展WBC功能,本設(shè)計(jì)除了實(shí)現(xiàn)標(biāo)準(zhǔn)要求的以上功能外,還提供并行TAM的接口,,供WPI-WPO的輸入輸出,整個(gè)操作由WIP信號(hào)和指令共同控制,圖2為Wrapper輸入單元的原理圖,,表1為其真值表。Wrapper輸出單元與之類(lèi)似,。
1.2 指令控制模塊
指令寄存器(WIR)由1個(gè)移位寄存器以及1個(gè)等長(zhǎng)的更新寄存器組成,。指令通過(guò)WSI掃描到移位寄存器,只有當(dāng)指令鎖存到更新寄存器中,,指令才有效,。P1500 測(cè)試環(huán)有多種操作模式,除了串行測(cè)試模式外,,還有可選的并行測(cè)試模式,。主要有正常模式、 串行內(nèi)測(cè)試,、串行外測(cè)試,、盤(pán)路測(cè)試、 并行內(nèi)測(cè)試,、并行外測(cè)試,,IEEE P1500都有相對(duì)應(yīng)的指令,。表2是本設(shè)計(jì)的部分指令、指令碼以及相應(yīng)的功能描述,。
Wrapper的整個(gè)操作是由WIP的信號(hào)配合載入到WIR的指令共同完成的,。圖3中SelectWIR和ShiftWR在第2個(gè)WRCK上升沿之前為1。接下來(lái)3個(gè)時(shí)鐘保持這2個(gè)信號(hào)不變(本設(shè)計(jì)指令長(zhǎng)度為3 bit),, 開(kāi)始了3位WIR指令的移位操作,,移位完成后,ShiftWR信號(hào)置為0,,而UpdateWR信號(hào)置為1,。在隨后的WRCK的下降沿時(shí),指令存到WIR的更新寄存器中,。在WIR更新后,,SelectWIR信號(hào)置為0,在下個(gè)WRCK時(shí)鐘來(lái)的時(shí)候,,被Wrapper指令寄存器選中的數(shù)據(jù)寄存器進(jìn)行移位操作,。
2 SoC級(jí)測(cè)試控制結(jié)構(gòu)
基于IEEE P1500的SOC測(cè)試架構(gòu)如圖4所示。主要由串行數(shù)據(jù)開(kāi)關(guān)DS,、并行數(shù)據(jù)開(kāi)關(guān)PDS,、測(cè)試配置寄存器TCR以及1個(gè)可以控制多個(gè)P1500核的CTAP控制器構(gòu)成。該結(jié)構(gòu)硬件開(kāi)銷(xiāo)少,,只需5個(gè)額外的測(cè)試管腳,,其中TAM可以復(fù)用SoC的功能管腳,Source和Sink可以是片內(nèi)的,,也可以由片外ATE提供,。
2.1 CTAP控制器
CTAP是一個(gè)19 bit的有限狀態(tài)機(jī),,它類(lèi)似于1149.1的TAP控制器,,是整個(gè)測(cè)試控制結(jié)構(gòu)的核心部分,與1149.1的TAP控制器相比,,增加了3個(gè)狀態(tài):Select TCR Scan,、Shift TCR、Update TCR,。在TMS信號(hào)的控制下,,產(chǎn)生TCR所需的信號(hào)(shift_tc,update_tc,,select_tc),,測(cè)試時(shí),通過(guò)這3個(gè)狀態(tài)對(duì)測(cè)試配置寄存器進(jìn)行配置,,選擇指定的核,。CTAP的其余狀態(tài)結(jié)合TMS信號(hào)產(chǎn)生P1500所需要的WIP信號(hào),,控制Wrapper操作。其狀態(tài)機(jī)描述如圖5所示,。
2.2 測(cè)試配置寄存器TCR
測(cè)試配置由一組移位更新寄存器組成,,其中寄存器的位數(shù)是由核的個(gè)數(shù)決定的。其輸入信號(hào)由CTAP控制器產(chǎn)生,,測(cè)試配置數(shù)據(jù)由TDI輸入,,圖6是一個(gè)m位的移位更新寄存器,用來(lái)控制m個(gè)核,,從更新寄存器出來(lái)的信號(hào)連到串行數(shù)據(jù)開(kāi)關(guān)以及并行數(shù)據(jù)開(kāi)關(guān)的en端,,當(dāng)某個(gè)核的en端為1時(shí),該核被選中,,進(jìn)行核內(nèi)相應(yīng)測(cè)試,;當(dāng)en為全1時(shí),核全部被選中,,可以進(jìn)行核間互連測(cè)試,。
2.3 數(shù)據(jù)開(kāi)關(guān)(DS和PDS)
數(shù)據(jù)開(kāi)關(guān)用來(lái)控制串行測(cè)試數(shù)據(jù)的路徑,連接芯片與IP核,。其結(jié)構(gòu)如圖7所示,。
當(dāng)DS的en信號(hào)為1時(shí),芯片串行測(cè)試數(shù)據(jù)路徑就與IP核的串行測(cè)試數(shù)據(jù)路徑連接,,通過(guò)它,,可以移入指令或者測(cè)試數(shù)據(jù)到IP核中。同理,,在基于總線的TAM上,,也為每個(gè)核配置1個(gè)總線數(shù)據(jù)開(kāi)關(guān),其原理與串行線上的DS相同,,只是將1位TAM,,改為連接多位TAM。如圖7所示,。
3 測(cè)試步驟
測(cè)試步驟如下:
(1) 進(jìn)行測(cè)試配置:由TSM信號(hào)控制CTAP狀態(tài)機(jī),,通過(guò)TDI進(jìn)行測(cè)試配置,輸入m位二進(jìn)制數(shù),,表示相對(duì)應(yīng)IP核選中情況,。如100…0,表示選中第1個(gè)IP核進(jìn)行測(cè)試,。
(2) 測(cè)試指令輸入:由TSM信號(hào)控制CTAP狀態(tài)機(jī),,通過(guò)TDI輸入測(cè)試指令,將指令輸入到選中的IP的WIR中,。
(3) 測(cè)試數(shù)據(jù)的輸入:通過(guò)TSM信號(hào)控制CTAP狀態(tài)機(jī),,根據(jù)輸入的指令,,選擇串行或者并行測(cè)試,將測(cè)試數(shù)據(jù)輸入WBR,,結(jié)合指令,,進(jìn)行相應(yīng)的測(cè)試。
(4) 重復(fù)以上步驟,,完成所有核的內(nèi)部測(cè)試,,不同核有不同的測(cè)試方法與要求,如BIST,、Iddq,、掃描測(cè)試等,要根據(jù)具體的核供應(yīng)商以及所要求的故障覆蓋率決定,。
(5) 測(cè)試完所有的IP核后,,將測(cè)試配置寄存器設(shè)置為全1,即111…1,,選中所有核,,然后移入互連測(cè)試指令,進(jìn)行核間互連測(cè)試,。
4 仿真實(shí)現(xiàn)
為驗(yàn)證該結(jié)構(gòu),,依次設(shè)計(jì)了3個(gè)簡(jiǎn)單的邏輯核,1個(gè)計(jì)數(shù)器,、1個(gè)四位加法器和1個(gè)頻率計(jì),。以4位加法器核為例,為核進(jìn)行Wrapper,其管腳為a(3:0),、b(3:0),、cin、s(3:0),、cout,。例化WBC單元,為每個(gè)功能管腳加入WBC,,并連入指令控制模塊,。設(shè)TAM寬度為3 bit,為減少測(cè)試時(shí)間,,平衡掃描鏈的長(zhǎng)度,該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),。以同樣方式對(duì)其他核進(jìn)行Wrapper并搭建SoC測(cè)試架構(gòu),。下面以4位加法器核并行內(nèi)測(cè)試指令為例,將010二進(jìn)制碼輸入配置寄存器,,選中4位加法器核進(jìn)行測(cè)試,,然后再控制TMS信號(hào),將并行測(cè)試指令111移入指令寄存器并進(jìn)行更新,,隨后通過(guò)TAM信號(hào)輸入測(cè)試激勵(lì),,進(jìn)行功能測(cè)試。為方便說(shuō)明,,這里只選010作為測(cè)試矢量,,如果核的功能正確,根據(jù)Wrapper與TAM的連接情況,,其TAM輸出應(yīng)為100和×11,。從仿真波形中可以看出,測(cè)試數(shù)據(jù)移位更新捕獲后,,輸出結(jié)果一致,,功能正確。仿真波形如圖8所示,。
為了實(shí)現(xiàn)SoC的并行測(cè)試,,本文設(shè)計(jì)的P1500 Wrapper提供并行TAM的接口,供WPI-WPO的輸入輸出,同時(shí)給出了基于IEEE P1500的SoC測(cè)試架構(gòu),,該結(jié)構(gòu)充分考慮IEEE 1149.1 TAP的成熟技術(shù),,通過(guò)增設(shè)配置寄存器狀態(tài),并結(jié)合P1500的WIP信號(hào),實(shí)現(xiàn)了對(duì)多個(gè)P1500核的測(cè)試控制。但對(duì)于Wrapper的優(yōu)化設(shè)計(jì)以及對(duì)多種類(lèi)型芯核的測(cè)試控制器的設(shè)計(jì),還需進(jìn)一步研究,。
參考文獻(xiàn)
[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] 陸思安,嚴(yán)曉浪,李浩亮.面向IP核測(cè)試復(fù)用的測(cè)試環(huán)設(shè)計(jì).浙江大學(xué)學(xué)報(bào)(工學(xué)版), 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.