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