姚鼎,武翰
(中國船舶重工集團(tuán)公司第七一六研究所,連云港 222006)
JTAG(Joint Test Action Group)是一種國際標(biāo)準(zhǔn)測試協(xié)議(IEEE 1149.1),主要用于芯片內(nèi)部測試,目前主流的CPLD、FPGA、DSP等器件均已支持邊界掃描測試技術(shù),區(qū)別于傳統(tǒng)接觸式測試,JTAG可以明顯提升測試效率,降低測試成本,因此JTAG技術(shù)現(xiàn)已在大規(guī)模集成電路測試與診斷中廣泛應(yīng)用。本文基于JTAG測試技術(shù)的CPLD測試流程主要是:利用EDA專業(yè)軟件工具基于改良移步算法自動生成測試向量,然后通過USBBlaster下載電纜,將測試向量通過JTAG接口加載至待測CPLD中,同時依據(jù)測試項目要求選擇對應(yīng)的測試模式,將測試響應(yīng)向量與期望的向量進(jìn)行分析處理從而得出判定結(jié)果。
JTAG測試實質(zhì)上是在芯片每個引腳上增加一個邊界掃描單元(BSC),這些BCS以串聯(lián)的方式連接起來,形成了一條特殊的測試鏈。芯片正常工作時,數(shù)據(jù)流不會經(jīng)過BSC,也就是不影響芯片的正常工作;當(dāng)芯片處于測試邏輯時,內(nèi)部邏輯工作停止,測試數(shù)據(jù)經(jīng)測試鏈以串行移位的方式開始進(jìn)入測試,并作用于芯片的I/O引腳,通過對這些I/O引腳的激勵/響應(yīng)信號采集分析得出測試結(jié)果,邊界掃描測試電路的基本結(jié)構(gòu)如圖 1所示。
圖1 邊界掃描基本結(jié)構(gòu)圖
其中測試訪問端口(TAP)是JTAG的重要結(jié)構(gòu),主要是通過對 TMS 和 TCK 信號的采樣,將不同類型的寄存器連接到 TDI 與 TDO 之間,TAP端口描述如表1所示。
表1 測試訪問端口[1]
JTAG典型時序圖如圖2所示。
圖2 JTAG的一個典型時序圖
依據(jù)IEEE1149.1對JTAG接口的五個引腳的接法規(guī)定如下:
1)TDI必須上拉
TDI上拉電阻的選擇應(yīng)參照器件的參數(shù)手冊,如果手冊中沒有具體的要求,一般選取4.7 K,但不能小于1 K。根據(jù)IEEE 1149.1標(biāo)準(zhǔn),全“1”指令為旁路指令(BYPASS),而給JTAG接口裝入旁路指令不會影響該器件的正常工作,如果將TDI上拉,即使器件被錯誤裝入其他指令,也將轉(zhuǎn)換為旁路指令, 不會影響其正常工作。
2)TDO不用上拉/下拉
TDO懸空,在設(shè)計中應(yīng)避免將TDO腳作為I/O腳。器件在進(jìn)行指令移位和數(shù)據(jù)移位時TDO才有輸出,其他情況下均為高阻狀態(tài)。
3)TMS必須上拉
TMS上拉電阻的選擇可參照器件手冊,一般選取4.7 K。根據(jù)TAP控制器的十六狀態(tài)機(jī)原理可以知道,若TMS 在5個時鐘周期內(nèi)連續(xù)保持高電平,則無論TAP控制器處于何種狀態(tài),都將回到Test-Logic-reset狀態(tài),此時器件正常工作。
4)TCK建議下拉
TCK采用上拉或下拉電阻的選擇應(yīng)參照器件的參數(shù)手冊,若手冊未給出具體要求,則應(yīng)進(jìn)行下拉,一般下拉電阻選取1 K。JTAG器件的TDI和TMS都在TCK時鐘的上升沿有效,如果TCK下拉或上拉,將不會產(chǎn)生有效的TCK上升沿。但是請注意TCK下拉電阻至少要大于330 Ω,否則JTAG測試加載儀可能無法正確驅(qū)動TCK信號。
5)TRST必須下拉
TRST下拉電阻的選擇參照具體器件手冊,一般選取1 K。根據(jù)TAP控制器的十六狀態(tài)機(jī)工作原理,/TRST下拉,器件處于Test-Logic-reset狀態(tài),不影響正常工作,因此通過JTAG進(jìn)行測試時,必須首先將/TRST拉高才能進(jìn)行。
綜上所述,JTAG測試引腳接法如圖3所示。
圖3 JTAG測試引腳接法示意圖
以上電阻的阻值是在VCC為5 V或3.3 V時確定的,VCC為2.5 V等電壓時電阻的阻值確定可參考器件手冊和以上電阻阻值并依據(jù)相同的原理進(jìn)行確定,如果器件手冊有推薦的上拉或下拉電阻的阻值,則推薦以器件手冊的為準(zhǔn)。
本文擬開發(fā)對象為Altera公司的MAX-7000CPLD,因此選擇利用Quartus Ⅱ?qū)y試程序通過MasterBlaster串行/USB通信電纜下載至CPLD中,MasterBlaster串行/USB通信電纜USB接口與計算機(jī)相連,與PCB板相連的是標(biāo)準(zhǔn)的10針插座。JTAG引腳配置如圖4所示。
圖4 JTAG引腳配置圖
TAP控制器是整個JTAG電路實現(xiàn)的核心控制器,控制著測試過程中相關(guān)信號的傳遞和改變,其內(nèi)部由一個16狀態(tài)的有限狀態(tài)機(jī)、控制邏輯和譯碼電路組成[2]。指令寄存器與各種數(shù)據(jù)寄存器的運行均由TAP控制器通過發(fā)出控制信號來控制,即在TCK上升沿采樣TMS信號用于控制TAP狀態(tài)轉(zhuǎn)移,其狀態(tài)轉(zhuǎn)移的翻轉(zhuǎn)邏輯如圖5所示。
TAP控制器內(nèi)的狀態(tài)機(jī)有16個狀態(tài),用于解釋串行輸入的TMS控制信號,且均在TCK上升沿進(jìn)行轉(zhuǎn)變,圖5中箭頭上的“0”或“1”即表示在TCK上升沿采樣到的TMS值,兩豎列分別表示數(shù)據(jù)路徑和指令路徑,且均有7個狀態(tài)。TMS為“01”時,TAP控制器為“選擇數(shù)字寄存掃描”狀態(tài);當(dāng)TMS為“11”時則為“選擇指令寄存掃描”狀態(tài);當(dāng)TMS為連續(xù)5個(及以上)的TCK脈沖寬度信號時,TAP控制器則跳轉(zhuǎn)至“測試邏輯復(fù)位”狀態(tài)[3]。
圖5 TAP控制器的狀態(tài)轉(zhuǎn)換圖
測試向量生成算法非常多,有移步算法、等權(quán)值算法、計數(shù)補償算法等等,階段實際工作中,對測試結(jié)果有較高要求,需要重點考慮測試覆蓋率即測試向量的完備性,因此采用移步算法,同時對該測試向量生成算法進(jìn)行進(jìn)一步的優(yōu)化。
在具體測試時,首先進(jìn)行全0和全1的測試,判斷CPLD是否存在固定故障,并記錄存在的故障引腳。然后進(jìn)行移步0的測試,若激勵與響應(yīng)相等,表明沒有短路故障,本項測試結(jié)束,若第n個激勵與響應(yīng)向量不等,則需判斷第n個測試向量的第n位是否為0,若是,則為線與故障,反之則為線或短路故障,同時繼續(xù)執(zhí)行移步0測試,直至結(jié)束,并記錄存在的故障引腳,最后可根據(jù)移步0測試中存在的短路故障生成移步1的測試向量。因此當(dāng)CPLD中的線網(wǎng)數(shù)為A時,移步0的測試向量個數(shù)也為A,若存在短路故障的線網(wǎng)個數(shù)為B,移步1測試向量個數(shù)為B 基于JTAG標(biāo)準(zhǔn)的邊界掃描測試一般的執(zhí)行過程如圖6所示。首先解析和綜合測試程序開發(fā)過程中的描述文件,并通過專用EDA工具對測試算法進(jìn)行仿真,同時將仿真信號轉(zhuǎn)換成測試軟件可識別的測試向量信息,然后利用JTAG轉(zhuǎn)換接口將測試向量加載至被測電路中,執(zhí)行測試程序,將測試響應(yīng)信息與期望值進(jìn)行比較,從而完成最終的測試。 圖6 JTAG測試的執(zhí)行過程 基于JTAG的測試流程首先必須進(jìn)行完整性測試,只有完整性測試合格才能說明測試掃描鏈正常,完整性測試主要是對 TCK、TMS、TDI、TDO 四個進(jìn)行檢測,確定TAP控制器各信號狀態(tài),從而確定掃描鏈?zhǔn)欠裾?。而后可以進(jìn)行功能及參數(shù)的測試,通過采樣激勵/響應(yīng)信號,并進(jìn)行分析,完成每項測試內(nèi)容具體測試流程如圖7所示。 圖7 JTAG測試具體流程 本文主要從軟件設(shè)計方面詳細(xì)介紹了基于JTAG的CPLD測試配置方法,給出了JTAG測試的設(shè)計與實現(xiàn)過程,從而為下一步CPLD測試的工程實現(xiàn)奠定了基礎(chǔ),有利于縮短CPLD的測試周期,降低測試成本。4 JTAG測試的設(shè)計與實現(xiàn)
5 結(jié)束語