基于邊界掃描技術(shù)的數(shù)字系統(tǒng)測試研究
當(dāng)今,微電子技術(shù)已經(jīng)進(jìn)入超大規(guī)模集成電路(VLSI)時(shí)代。隨著芯片電路的小型化及表面封裝技術(shù)(SMT)和電路板組裝技術(shù)的發(fā)展,使得傳統(tǒng)測試技術(shù)面臨著巨大的挑戰(zhàn)。在這種情況下,為了提高電路和系統(tǒng)的可測試性,聯(lián)合測試行動小組(JTAG)于1987年提出了一種新的電路板測試方法--邊界掃描測試,并于1990年被IEEE接納,形成了IEEE1149.1標(biāo)準(zhǔn),也稱為JTAG標(biāo)準(zhǔn)[1]。這種技術(shù)以全新的"虛擬探針"代替?zhèn)鹘y(tǒng)的"物理探針"來提高電路和系統(tǒng)的可測性。由于JTAG標(biāo)準(zhǔn)的通用性很好,現(xiàn)在許多IC公司都提供了支持邊界掃描機(jī)制的IC芯片,甚至部分FPGA和CPLD芯片也采用了這一技術(shù)。
本文介紹支持JTAG標(biāo)準(zhǔn)的IC芯片結(jié)構(gòu),并以Xilinx公司的兩塊xc9572_pc84芯片為例,探討并利用邊界掃描技術(shù)控制IC芯片處于某種特定功能模式的方法,并且針對IC芯片某種特定的功能模式設(shè)計(jì)該芯片的JTAG控制器。
1支持JTAG標(biāo)準(zhǔn)的IC芯片結(jié)構(gòu)
邊界掃描技術(shù)的核心就是在IC芯片的輸入輸出引腳與內(nèi)核電路之間設(shè)置邊界掃描結(jié)構(gòu)。JTAG標(biāo)準(zhǔn)定義了一個(gè)4-wire串行總線[2],通過這四條測試線訪問邊界掃描單元,可以達(dá)到測試芯片內(nèi)核與外圍電路的目的。圖1示出了支持JTAG標(biāo)準(zhǔn)的IC芯片結(jié)構(gòu)。圖中,掃描結(jié)構(gòu)由測試存取通道(TAP)、邊界掃描寄存器(BSR)、TAP控制器、指令寄存器(IR)和輔助寄存器等組成。
1.1 TAP
TAP是由4-wire串行測試線組成的測試存取通道,JTAG標(biāo)準(zhǔn)定義的所有操作都由這四條測試線來控制。這四條測試線分別是:測試時(shí)鐘輸入線(TCK),測試方式選擇輸入線(TMS),測試數(shù)據(jù)輸入線(TDI),測試數(shù)據(jù)輸出線(TDO)。
1.2 TAP控制器
TAP控制器是邊界掃描測試的核心控制器,具有一個(gè)16狀態(tài)的有限狀態(tài)機(jī)。它與TCK信號同步工作,并響應(yīng)TMS信號。在TCK信號和TMS信號的控制下,TAP控制器可以選擇使用指令寄存器掃描還是數(shù)據(jù)寄存器掃描,以及選擇用于控制邊界掃描測試的各個(gè)狀態(tài)。圖2描述了TAP控制器的狀態(tài)轉(zhuǎn)換全過程[3]。
無論當(dāng)前狀態(tài)如何,只要TMS保持5個(gè)TCK時(shí)鐘為高電平,TAP控制器都會回到Test_Logic_Reset狀態(tài),使測試電路不影響IC芯片本身的正常邏輯。需要測試時(shí),TAP控制器跳出該狀態(tài),選擇數(shù)據(jù)寄存器掃描(Select_DR_Scan)或選擇指令寄存器掃描(Select_IR_Scan)進(jìn)入圖2的各個(gè)狀態(tài)。一個(gè)標(biāo)準(zhǔn)的測試過程如下:TAP控制器在Capture_IR狀態(tài)捕獲指令信息,經(jīng)過Shift_IR狀態(tài)移入新指令,新指令經(jīng)過Update_IR狀態(tài)成為當(dāng)前指令;緊接著,當(dāng)前指令在Select_DR_Scan狀態(tài)選擇相應(yīng)的測試數(shù)據(jù)寄存器,在Capture_DR狀態(tài)捕獲前一測試向量的響應(yīng)向量,在Shift_DR狀態(tài)移出該響應(yīng)向量,同時(shí)移入下一測試向量,在Update_DR狀態(tài)將新的測試量并行加載到相應(yīng)的串行數(shù)據(jù)通道,直到移入最后一個(gè)測試向量為止。其中,Pause_DR狀態(tài)和Pause_IR狀態(tài)暫停數(shù)據(jù)移位狀態(tài);而四個(gè)Exit狀態(tài)是不穩(wěn)定狀態(tài),它們?yōu)闋顟B(tài)轉(zhuǎn)換提供靈活性。
1.3 BSR
BSR是邊界掃描技術(shù)的核心,它構(gòu)成邊界掃描鏈,其中的每一個(gè)邊界掃描單元(BSC)都是由觸發(fā)器Q、多路選擇開關(guān)mux組成。圖3示出了JTAP標(biāo)準(zhǔn)中BC_1類型的BSC的結(jié)構(gòu)[3]。
在圖3中,SI為BSC的串行輸入端,連接上一個(gè)器件(BSC)的串行輸出端SO,依次相連便構(gòu)成邊界掃描鏈。該掃描鏈的首端接TDI引腳,末端接TDO引腳。當(dāng)MODE為0時(shí),芯片工作在正常模式下。當(dāng)芯片工作在測試模式時(shí),測試數(shù)據(jù)在移位信號(SHIFT=1)的控制下,通過SI端進(jìn)入到多路選擇器1(MUX1)中,通過SO端進(jìn)入下一個(gè)BSC的SI端;當(dāng)芯片工作在捕獲方式時(shí)(SHIFT=0),觸發(fā)器Q1將捕獲BSR并行輸入端(DI)的數(shù)據(jù),送入SO端,在掃描鏈中傳遞捕獲的數(shù)據(jù),并在TDO回收數(shù)據(jù),以此來檢測故障的存在并且定位故障所在的位置。當(dāng)MODE為1時(shí),芯片工作在更新方式下,Q1中的數(shù)據(jù)在更新信號(UPDATE)的作用下,進(jìn)入到多路選擇器2(MUX2)中,通過BSR的并行輸出端(D0)進(jìn)入芯片的內(nèi)核中。
1.4 IR
IR是向各個(gè)數(shù)據(jù)寄存器發(fā)出各種操作碼并確定其工作方式的指令寄存器,圖4示出了一種IR單元的結(jié)構(gòu)[4]。由圖4可以看出,IR單元是由一個(gè)觸發(fā)器Q1和一個(gè)鎖存器Q2構(gòu)成的。CAPTURE DATE信號控制IR裝載指令,SHIRFT IR信號控制指令在IR中的移位;CLK IR信號是從TCK獲得的時(shí)鐘信號,用于為BSR的捕獲操作、移位操作提供時(shí)鐘信號。UPDATE IR信號用于將當(dāng)前指令裝入鎖存器Q2,以決定將要執(zhí)行的操作模式和將要用到的測試數(shù)據(jù)寄存器的類別。
1.5輔助寄存器
輔助寄存器包括器件標(biāo)志寄存器和旁路寄存器,器件標(biāo)志寄存器用于存儲器件制造商、器件序列號和器件版本號等信息,借助它可以辨別板上器件的制造商,還可以通過它檢測是否已將正確的器件安裝在電路板的正確位置上。旁路寄存器用于將邊界掃描單元直接旁路,把掃描數(shù)據(jù)直接傳遞給下一個(gè)掃描器件。
2基于邊界掃描技術(shù)的數(shù)字系統(tǒng)測試
基于邊界掃描技術(shù)的數(shù)字系統(tǒng)測試包括兩個(gè)方面,一是對IC芯片電路功能測試及系統(tǒng)互連測試;二是利用邊界掃描技術(shù)控制IC芯片處于某種特定的功能模式,以方便電路系統(tǒng)的設(shè)計(jì)和調(diào)試。本文主要論述后者。
2.1測試系統(tǒng)組成
測試系統(tǒng)由主機(jī)(PC機(jī))、測試儀和PCB實(shí)驗(yàn)板組成,測試儀通過標(biāo)準(zhǔn)口(RS232)與PC機(jī)連接,通過串行標(biāo)準(zhǔn)信號電纜與PCB板上的測試存取通道相連,如圖5所示。
PCB板由Xilinx公司的兩塊xc9572 pc84芯片互連組成,芯片符合IEEE1149.1的JTAG接口標(biāo)準(zhǔn),具有84個(gè)外部引腳、4個(gè)JTAG引腳、5個(gè)Vcc引腳、6個(gè)Vss引腳、69個(gè)雙向數(shù)據(jù)輸入/輸出引腳,xc9572系列芯片未實(shí)現(xiàn)異步復(fù)位信號引腳TRST,電纜不需要提供這一信號線。該器件的邊界掃描寄存器由216個(gè)邊界掃描單元組成,其中9個(gè)單元是內(nèi)部屬性的單元,其余207個(gè)單元組成69組邊界掃描單元組[5]。
2.2設(shè)計(jì)分析與實(shí)現(xiàn)
2.2.1設(shè)計(jì)內(nèi)容與分析
在圖5所示的測試系統(tǒng)中,要求兩片IC芯片分別實(shí)現(xiàn)不同功能的數(shù)據(jù)處理。為了對存儲器實(shí)現(xiàn)分時(shí)訪問,可以設(shè)定其中的一片xc9572_pc84芯片(IC2)受到另一片xc9572_pc84芯片(IC1)的控制,使IC2進(jìn)入高阻模式(高阻模式是JTAG標(biāo)準(zhǔn)中推薦的任選模式之一),用以對存儲器的訪問屏蔽一段時(shí)間,此時(shí)受控芯片E2的所有輸出管腳都將處于浮空狀態(tài)即高阻態(tài)。
從圖2描述的TAP控制器的狀態(tài)機(jī)可知,通過改變IC芯片自身的輸入輸出狀態(tài),就可以進(jìn)行邊界掃描測試或利用JTAG接口使IC芯片處于某個(gè)特定的功能模式。
支持JTAG標(biāo)準(zhǔn)的芯片都附有特定的BSDL(Boundary Scan Description Language)描述文件[3]。BSDL語言是硬件描述語言(VHDL)的一個(gè)子集。它對該芯片的邊界掃描特性進(jìn)行描述,用來溝通廠商、用戶與測試工具之間的聯(lián)系,為自動測試圖形生成工具、檢測特定的電路板提供相關(guān)的信息;在BSDL文件的支持下可生成由JYAG標(biāo)準(zhǔn)定義的測試邏輯。BSDL文件可與軟件工具結(jié)合起來,用于測試生成、結(jié)果分析和故障診斷。
通過對xc9572 pc84芯片的BSDL部分文件[6]的分析可知:
通過該部分代碼可得出,控制該芯片進(jìn)入高阻模式需要寫入指令寄存器的控制碼為11111100。此時(shí)應(yīng)選擇旁路寄存器將邊界掃描寄存單元旁路,以使掃描數(shù)據(jù)直接傳遞給下一個(gè)掃描器件。
2.2.2設(shè)計(jì)實(shí)現(xiàn)
根據(jù)上面的分析可以得出,要使芯片從正常工作模式下受控進(jìn)入JTAG高阻狀態(tài)需要經(jīng)過以下五個(gè)步驟:
① 復(fù)位。由于Xilinx 9572_pc84芯片不具備TRST管腳,而且芯片正常工作時(shí)TMS持續(xù)為高電平,所以控制器進(jìn)入復(fù)位狀態(tài)需要使TMS端接收低電平信號,控制TAP控制器完成復(fù)位操作。
②進(jìn)入Shift_IR狀態(tài)。由TAP控制器狀態(tài)機(jī)可以看出,當(dāng)持續(xù)5個(gè)TCK上升沿使TMS端接收到01100時(shí),則進(jìn)入Shift_IR狀態(tài)。
③將指令碼寫入指令寄存器。在Shift_IR狀態(tài),通過TDI將高阻狀態(tài)指令碼11111100寫入指令寄存器,需要5個(gè)TCK周期,此時(shí)TMS需保持4個(gè)周期低電平。
④進(jìn)入Exit1_IR狀態(tài)。在Shift_IR狀態(tài)的第5個(gè)TCK的上升沿,使TMS=1,進(jìn)入Exit1_IR狀態(tài)。
⑤進(jìn)入U(xiǎn)pdate_IR狀態(tài)。在進(jìn)入Exit1_IR狀態(tài)后,使TMS=1,進(jìn)入U(xiǎn)pdate_IR狀態(tài)。此時(shí)芯片進(jìn)入高阻狀態(tài)。
按照上述步驟,采用數(shù)字系統(tǒng)中狀態(tài)機(jī)的設(shè)計(jì)思想[5],用VHDL語言編寫出相應(yīng)的功能塊,控制xc9572_pc84芯片(IC2)進(jìn)入JTAG高阻狀態(tài)(限于篇幅,VHDL源程序未列出),就可以進(jìn)行邊界掃描測試了。將VHDL源程序經(jīng)過編譯、仿真后可得到如圖6所示的JTAG控制時(shí)序波形圖。
JTAG測試技術(shù)是一種新的測試技術(shù),這種技術(shù)是建立在具有JTAG標(biāo)準(zhǔn)接口的芯片之上的。由于這種芯片內(nèi)置一些預(yù)先定義好的功能模式,所以可以通過邊界掃描通道使芯片處于某個(gè)特定的功能模式,以提高系統(tǒng)控制的靈活性并便于系統(tǒng)設(shè)計(jì)。本文通過設(shè)計(jì)實(shí)例,詳細(xì)介紹了利用邊界掃描技術(shù)控制IC芯片處于高阻模式的思路和方法,并且通過實(shí)驗(yàn)實(shí)現(xiàn),達(dá)到了預(yù)期目標(biāo)?;谶吔鐠呙杓夹g(shù)的測試機(jī)制在產(chǎn)品全壽命周期的不同階段都可以共享,因此利用邊界掃描技術(shù)可以方便地對電路系統(tǒng)進(jìn)行調(diào)試、測試,顯著地降低了產(chǎn)品的開發(fā)周期和費(fèi)用。
評論