基于邊界掃描技術(shù)的數(shù)字系統(tǒng)測試研究
摘 要: 介紹了支持JTAG標(biāo)準(zhǔn)的IC芯片結(jié)構(gòu)、邊界掃描測試原理以及利用邊界掃描技術(shù)控制IC芯片處于特定功能模式的方法。針對(duì)IC芯片某種特定的功能模式給出了設(shè)計(jì)思路和方法,并用兩塊xc9572 pc84芯片互連的PCB板為例進(jìn)行設(shè)計(jì)分析和實(shí)驗(yàn)實(shí)現(xiàn)。通過實(shí)驗(yàn)實(shí)現(xiàn),體現(xiàn)了邊界掃描技術(shù)易于電路系統(tǒng)調(diào)試和方便系統(tǒng)設(shè)計(jì)的特點(diǎn),且設(shè)計(jì)的系統(tǒng)控制邏輯簡單方便,易于實(shí)現(xiàn)。
關(guān)鍵詞: 邊界掃描測試 IEEE1149.1 標(biāo)準(zhǔn)(JTAG標(biāo)準(zhǔn)) 可測性設(shè)計(jì) 集成電路
當(dāng)今,微電子技術(shù)已經(jīng)進(jìn)入超大規(guī)模集成電路(VLSI)時(shí)代。隨著芯片電路的小型化及表面封裝技術(shù)(SMT)和電路板組裝技術(shù)的發(fā)展,使得傳統(tǒng)測試技術(shù)面臨著巨大的挑戰(zhàn)。在這種情況下,為了提高電路和系統(tǒng)的可測試性,聯(lián)合測試行動(dòng)小組(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芯片處于某種特定功能模式的方法,并且針對(duì)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信號(hào)同步工作,并響應(yīng)TMS信號(hào)。在TCK信號(hào)和TMS信號(hào)的控制下, TAP控制器可以選擇使用指令寄存器掃描還是數(shù)據(jù)寄存器掃描,以及選擇用于控制邊界掃描測試的各個(gè)狀態(tài)。圖2描述了TAP控制器的狀態(tài)轉(zhuǎn)換全過程[3]。
無論當(dāng)前狀態(tài)如何, 只要TMS保持5個(gè)TCK 時(shí)鐘為高電平, TAP控制器都會(huì)回到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ù)在移位信號(hào)(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ù)在更新信號(hào)(UPDATE)的作用下,進(jìn)入到多路選擇器2(MUX2)中,通過BSR的并行輸出端(DO)進(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信號(hào)控制IR裝載指令,SHIRFT IR信號(hào)控制指令在IR中的移位;CLK IR信號(hào)是從TCK獲得的時(shí)鐘信號(hào),用于為BSR的捕獲操作、移位操作提供時(shí)鐘信號(hào)。UPDATE IR信號(hào)用于將當(dāng)前指令裝入鎖存器Q2,以決定將要執(zhí)行的操作模式和將要用到的測試數(shù)據(jù)寄存器的類別。
1.5 輔助寄存器
輔助寄存器包括器件標(biāo)志寄存器和旁路寄存器,器件標(biāo)志寄存器用于存儲(chǔ)器件制造商、器件序列號(hào)和器件版本號(hào)等信息,借助它可以辨別板上器件的制造商, 還可以通過它檢測是否已將正確的器件安裝在電路板的正確位置上。旁路寄存器用于將邊界掃描單元直接旁路,把掃描數(shù)據(jù)直接傳遞給下一個(gè)掃描器件。
2 基于邊界掃描技術(shù)的數(shù)字系統(tǒng)測試
基于邊界掃描技術(shù)的數(shù)字系統(tǒng)測試包括兩個(gè)方面,一是對(duì)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)信號(hào)電纜與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ù)位信號(hào)引腳TRST,電纜不需要提供這一信號(hào)線。該器件的邊界掃描寄存器由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ù)處理。為了對(duì)存儲(chǔ)器實(shí)現(xiàn)分時(shí)訪問,可以設(shè)定其中的一片xc9572_ pc84芯片(IC2)受到另一片xc9572_ pc84芯片(IC1)的控制,使IC2進(jìn)入高阻模式(高阻模式是JTAG標(biāo)準(zhǔn)中推薦的任選模式之一),用以對(duì)存儲(chǔ)器的訪問屏蔽一段時(shí)間,此時(shí)受控芯片IC2的所有輸出管腳都將處于浮空狀態(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è)子集。它對(duì)該芯片的邊界掃描特性進(jìn)行描述,用來溝通廠商、用戶與測試工具之間的聯(lián)系,為自動(dòng)測試圖形生成工具、檢測特定的電路板提供相關(guān)的信息;在BSDL文件的支持下可生成由JTAG標(biāo)準(zhǔn)定義的測試邏輯。BSDL文件可與軟件工具結(jié)合起來,用于測試生成、結(jié)果分析和故障診斷。
通過對(duì)xc9572 pc84芯片的BSDL部分文件[6]的分析可知:
……
attribute INSTRUCTION_CAPTURE of xc9572_pc84:
entity is '000XXX01'&
attribute INSTRUCTION_DISABLE of xc9572_pc84 : entity is 'HIGHZ'&
attribute INSTRUCTION_OPCODE of xc9572_pc84:entity is
'BYPASS (11111111),' &
'EXTEST (00000000),' &
'IDCODE (11111110),' &
'INTEST (00000010),' &
'SAMPLE (00000001),' &
'USERCODE (11111101)' ;
……
通過該部分代碼可得出,控制該芯片進(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端接收低電平信號(hào),控制TAP控制器完成復(fù)位操作。
?、谶M(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è)周期低電平。
?、苓M(jìn)入 Exit1_IR 狀態(tài)。在Shift_IR狀態(tài)的第5個(gè)TCK的上升沿,使TMS=1,進(jìn)入 Exit1_IR狀態(tài)。
?、葸M(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)。基于邊界掃描技術(shù)的測試機(jī)制在產(chǎn)品全壽命周期的不同階段都可以共享,因此利用邊界掃描技術(shù)可以方便地對(duì)電路系統(tǒng)進(jìn)行調(diào)試、測試,顯著地降低了產(chǎn)品的開發(fā)周期和費(fèi)用。
參考文獻(xiàn)
1 IEEE std 1149.1-2001:IEEE Standard Test Access Port and Boundary Scan Architecture[S]. New York, USA,2001
2 Lee Nayes, Larry Lauenger. Addin Boundary Scan Test Cability to an Existing Multi- strategy Tester[J]. Autotestcon, 1993
3 陳光禹,潘中良.可測試性設(shè)計(jì)技術(shù)[M].北京:電子工業(yè)出版社,1997
4 楊廷善.邊界掃描技術(shù)及其應(yīng)用[M].測控技術(shù),2000;(199):5~8
5 姜立東.VHDL語言程序設(shè)計(jì)及應(yīng)用[M]. 北京: 北京郵電大學(xué)出版社,2001
6 專用集成電路和集成系統(tǒng)自動(dòng)化設(shè)計(jì)方法[M].北京:國防工業(yè)出版社,1997
7 高 平,成 立. 數(shù)字VLSI電路測試技術(shù)—BIST方案[J].半導(dǎo)體技術(shù)2003;28(9):29~32