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