ALTECC_DECODER IP核的IEEE 1500 Wrapper設(shè)計
摘要 IP核的廣泛應(yīng)用提高了電路集成的效率。由于眾多功能各異的IP核集成在電路中,完善的測試機制是確保其正常工作的前提。因此,如何對IP核進行測試成為復(fù)用IP核技術(shù)必須解決的問題。IEEE Std 1500提供了IP核的測試實現(xiàn)機制,文中基于IEEE 1500研究如何實現(xiàn)IP核的Wrapper設(shè)計,實驗以Hamming碼譯碼IP核ALTECC_DECODER為測試對象,驗證了IEEE 1500 Wrapper可有效地對IP核進行測試。
隨著集成電路規(guī)模的增大,為提高設(shè)計效率,IP核在電路集成設(shè)計中得到了廣泛應(yīng)用。盡管IP核復(fù)用能簡化設(shè)計流程,避免諸多底層電路的設(shè)計,但IP核集成在電路中后,已無法直接通過輸入、輸出端口對其進行測試,且不同類型的IP核給測試方法設(shè)計帶來了困難。因此,如何建立測試機制成為IP核復(fù)用技術(shù)必須解決的問題。
IEEE Std 1500提供了標(biāo)準(zhǔn)化、可擴展的可測性設(shè)計方法。在將IP核集成到電路中時,為其設(shè)計基于IEEE 1500標(biāo)準(zhǔn)的Wrapper,可為集成后的IP核提供標(biāo)準(zhǔn)的測試接口,同時,IEEE 1500 Wrapper實現(xiàn)了IP核與互連電路的隔離,這使得IP核的測試更加方便、安全、高效。
Hamming碼在通信領(lǐng)域應(yīng)用廣泛,原始數(shù)據(jù)碼字在編碼時被插入若干校驗碼,組合后的碼字被發(fā)送給接收方,接收方通過譯碼即可達(dá)到錯誤檢測的目的。在集成電路中應(yīng)用Hamming碼通信可提高可靠性,Altera公司提供了相應(yīng)的編碼和譯碼IP核:ALTECC_ENCODER、ALTECC_DECODER。本文即以譯碼IP核ALTECC_DECODER為實驗測試對象,研究如何針對IP核設(shè)計IEEE 1500 Wrapper,以及如何運用Wrapper對IP核進行測試。
1 IEEE 1500 Wrapper硬件結(jié)構(gòu)
IEEE Std 1500規(guī)定的Wrapper硬件結(jié)構(gòu)如圖1所示,其中必須包括的組成結(jié)構(gòu)有:Wrapper邊界寄存器(Wrapper Boundary Register,WBR)、Wrapper指令寄存器(Wrapper Instruction Register,WIR)、Wrapper旁路寄存器(Wrapper Bypass Register,WBY)、Wrapper串行接口(Wrapper Serial Port,WSP);可選設(shè)計的結(jié)構(gòu)有Wrapper并行測試接口(Wrapper Parallel Port,WPP)。
1.1 Wrapper接口功能定義
Wrapper接口主要有WSP接口和WPP接口兩類。其中,WSP接口包括Wrapper串行輸入端口WSI、Wrapper串行輸出端口WSO、Wrapper串行控制端口WSC;WPP接口包括Wrapper并行輸入端口WPI[m:1]、Wrapper并行輸出端口WPO[n:1]、Wrapper并行控制端口WPC,有關(guān)Wrapper接口的功能定義如表1所示。
由于WPC端口對并行測試操作的控制和WSC端口相近,在需要為Wrapper設(shè)計并行測試接口WPP時,可省略WPC端口的設(shè)計,相關(guān)并行測試操作由WSC接口控制。
1.2 WBY設(shè)計
在測試過程中,為達(dá)到節(jié)省測試時間的目的,對于無需測試的IP核,可使旁路寄存器WBY在Wrapper中處于有效狀態(tài)。如圖2所示,旁路寄存器WBY串接于WSI—WSO之間,其可為Wrapper提供一條最短的移位路徑,實現(xiàn)對WBR鏈的旁路。因此,WBY通常按1 bit移位長度設(shè)計,但在必要時可增加移位長度。
圖2中,WBY_Ins是指選擇WBY連接于WSI—WSO之間的Wrapper指令,D觸發(fā)器FF工作WRCK上升沿,此外,數(shù)據(jù)的移位還需滿足SelectWIR=0,ShiftWR=1的條件。
1.3 WBR設(shè)計
WBR是Wrapper執(zhí)行測試操作的最主要執(zhí)行部分,由一個個圍繞在IP核輸入、輸出端口的WBR單元組成。WBR單元在響應(yīng)各項測試操作時,扮演了測試施加和響應(yīng)捕獲的角色。
文獻給出了典型的WBR單元設(shè)計,但由于設(shè)計簡單,在實際測試應(yīng)用中存在著安全性、測試操作不便等問題。鑒于WBR單元的設(shè)計決定著測試執(zhí)行的效率,諸多文獻均對其進行了設(shè)計研究。
設(shè)計的WBR單元結(jié)構(gòu)如圖3所示。Work_Mode信號決定WBR處于正常工作模式還是測試模式,其由WRSTN信號和Wrapper指令控制。存儲單元D1連接于CTI—CTO之間,負(fù)責(zé)響應(yīng)移位和捕獲測試操作,D1存儲的值即WBR單元的當(dāng)前值。在移位測試操作時,上一WBR單元的數(shù)據(jù)經(jīng)CTI端移入存儲單元D1,D1中原先的數(shù)據(jù)移入下一WBR單元;在捕獲測試操作時,CFI端的數(shù)據(jù)被捕獲存儲到D1中。存儲單元D2負(fù)責(zé)更新測試操作,其將D1存儲的WBR當(dāng)前數(shù)據(jù)更新輸出。本文設(shè)計的WBR單元在測試過程中支持Safe模式和Clamp模式,在Safe模式有效時,WBR單元的CFO輸出預(yù)先設(shè)定的安全值;在Clamp模式有效時,CFO輸出WBR單元的當(dāng)前內(nèi)部數(shù)據(jù)。
1.4 WIR設(shè)計
指令寄存器WIR用于配置Wripper的測試狀態(tài),如圖4所示。WIR包括指令碼移位寄存器、指令碼譯碼邏輯和指令更新寄存器,其中指令碼移位寄存器是WSI—WSO之間的一條移位通道。在測試操作開始前,首先令SelectWIR=1,設(shè)置ShiftWR=1,經(jīng)WSI向指令移位寄存器中移入測試指令碼,或置CaptureWR=1,經(jīng)WIR_PI并行捕獲測試指令碼。指令碼譯碼邏輯采用組合邏輯設(shè)計,對當(dāng)前移位寄存器中的數(shù)據(jù)進行譯碼。在指令碼移位完成后,令UpdateWR=1執(zhí)行指令更新操作,指令更新寄存器根據(jù)譯碼結(jié)果觸發(fā)新的Wrapper指令有效。
設(shè)計Wrapper指令的功能定義如表2所示,其中“串行”是指Wrapper中所有WBR單元構(gòu)成一整條WBR鏈并作為WSI和WSO之間的一條移位通道,“并行”是指WBR單元被配置為分段鏈,分別連接于WPI和WPO之間;“內(nèi)測試”是指Wrapper測試對象是內(nèi)部IP核,“外測試”是指Wrapper測試對象是外部互連電路。
2 IP核的Wrapper設(shè)計
本文測試對象是基于Hamming碼規(guī)則的信號糾錯譯碼IP核:ALTECC_DECODER,其作用是實現(xiàn)Hamming碼的譯碼,并生成伴隨式矢量以檢測接收碼字中是否存在錯誤。ALTECC_ DECODER IP核的端口信號說明,如表3所示。
本文為ALTECC_DECODER IP核設(shè)計的IEEE1 500 Wrapper,如圖5所示,IP核輸入、輸出端的小方框即為WBR單元。
3 實驗
本文對ALTECC_DECODER IP核的實驗測試以接收碼字0000111000100為測試數(shù)據(jù),驗證Wrapper對IP核的測試控制能否正常進行,并根據(jù)Wrapper的測試結(jié)果判斷ALTCC_DECOD ER IP核的譯碼是否正確。在WS_INTEST指令下的Modelsim仿真測試流程圖如圖6所示。
圖6測試過程中,測試數(shù)據(jù)由din[12]→din[11]→* * *→din[0]→clock→aclr的順序構(gòu)成,向輸入端WBR單元先后串行移位輸入的測試數(shù)據(jù):000011100010000、0000111000 10010,其區(qū)別在于移入clock端WBR單元中的數(shù)據(jù)分別為0和1。測試數(shù)據(jù)串行移位輸入后經(jīng)過更新操作,IP核clock端的WBR單元向clock端施加了0到1的激勵變化,IP核輸出實驗結(jié)果,即譯碼得到的原始碼字,輸出端WBR單元捕獲IP核輸出的結(jié)果后串行移位輸出,串行輸出的數(shù)據(jù)順序為:err_fatal→err_cotrected→err_detected→q[0]→q[1]→* * *q[7],實驗測試結(jié)果,如圖7所示,圖中最后部分即為實驗完成后串行移位輸出結(jié)果。
實驗結(jié)果和根據(jù)Hamming碼編碼規(guī)則得到的理論結(jié)果對比如表4所示。實驗得到的結(jié)果為11000100,和0000111000100的理論譯碼結(jié)果相同,且標(biāo)記信號err_detected、err_co rrected、err_fatal的輸出均為0,說明本次實驗中ALTECC_DECODER IP核對接收碼字0000111000100的檢測結(jié)果無誤。
綜合實驗分析,為ALTECC_DECODER IP核設(shè)計的IEEE 1500 Wrapper能正常完成測試操作,并將測試結(jié)果移位輸出以供數(shù)據(jù)分析。
4 結(jié)束語
IEEE 1500 Wrapper為集成電路IP核提供了規(guī)范有效的測試機制,本文在以Hamming碼譯碼IP核ALTECC_DECODER為測試對象,研究如何實現(xiàn)IP核的Wrapper設(shè)計。文中針對目前文獻中WBR存在的不足,設(shè)計了功能更加完善的WBR單元,能夠更好地滿足測試需要。