朱振軍,林 明,宋月麗
(1.江蘇科技大學 電子信息學院,江蘇 鎮(zhèn)江 212003;2.中國船舶重工集團第723研究所 江蘇 揚州 225001)
隨著微電子技術、微封裝技術和印制板制造技術的不斷發(fā)展,印制電路板變得越來越小,密度越來越大,復雜程度越來越高,使用萬用表、示波器測試芯片的傳統“探針”方法已不能滿足要求。在這種背景下,早在20世紀80年代,聯合測試行動組(Joint Test Action Group,JTAG)就起草了邊界掃描測試(Boundary Scan Testing,BST)技術規(guī)范,后來在 1990 年被批準為IEEE標準1149.1-1990規(guī)定,簡稱JTAG標準。該規(guī)范提供了有效地測試引線間隔致密的電路板上元器件的能力[1]。
邊界掃描技術是一種應用于數字集成電路器件的測試性結構設計方法。邊界掃描測試是通過在芯片的每個輸入輸出 (Input or Output,I/O)引腳附加一個邊界掃描單元(Boundary Scan Cell,BSC)以及一些附加的測試控制邏輯實現的[2]。它通過對JTAG接口連接起來的鏈路施加測試向量,然后讀取存在于器件輸入輸出管腳與內核電路之間的邊界掃描單元返回的數據,并進行對比來完成測試。邊界掃描技術大大提到了器件的可控性和可視性,可以方便地完成電路板的板級測試。
邊界掃描的測試總線一般由4個專用的測試存取通道(Test Access Port,TAP)組成:測試時鐘輸入線 (Test Data Input,TCK)、測試模式選擇線(Test Mode Select,TMS)、串行測試數據輸入線(Test Data Input,TDI)、串行測試數據輸出線(Test Data Output,TDO)[3]。 IEEE1149.1 標準還提供了一個可供選擇的輸入信號 “測試系統復位 (Test Reset System,TRST)”,功能是控制測試存取通道控制器的異步初始化。為了保證測試邏輯的確定性,當測試系統復位上施加的信號從0變?yōu)?時,TMS在邏輯1上要保持幾個TCK時鐘周期。元器件與外部通信的信號必須通過TAP。
如圖1所示,邊界掃描技術的工作原理是:在測試時鐘信號的基準上,邊界掃描測試系統將測試數據以串行方式由TDI輸入到邊界掃描寄存器中,再通過TMS傳送測試控制信息,經TAP控制器譯碼并控制邊界掃描單元完成測試數據的加載和響應數據的采集,再通過測試數據通道將捕獲到的數據輸出至TDO,最后由TDO送到邊界掃描測試系統。邊界掃描測試系統將捕捉到的響應數據和期望的響應進行比較即可快速的判斷電路的連接狀態(tài)。邊界掃描技術不僅可測試芯片內部的邏輯功能[4],還可以通過控制多個芯片的測試通道而測試芯片之間或電路板之間的連接是否存在故障。
圖1 邊界掃描測試原理圖Fig.1 Schematic diagram of Boundary Scan Testing
基于邊界掃描設計法的元器件的所有與外部交換的信息(指令、測試數據和測試結果)都采用串行通信方式,允許測試指令及相關的測試數據串行送給元器件,然后允許把測試指令的執(zhí)行結果從元器件串行讀出。如圖2所示,一個典型的邊界掃描系統包含以下硬件組成:1)JTAG接口,一般情況下只需要四個接口即可,即 TDI、TCK、TDO、TMS(TRST 可選,非必需接口);2)TAP控制器,用于控制JTAG進入某種特定狀態(tài);3)指令寄存器,用于寄存采樣指令(SAMPLE)、外測試指令(EXTEST)等測試模式的指令編碼;4)指令譯碼器,用于譯碼指令寄存器中的指令編碼并作為多通道數據選擇器的控制端;5)數據選擇器,用于將指令所對應的數據寄存器中所寄存的數據選擇輸出;6)數據寄存器,包含幾種類型:旁路寄存器、邊界掃描寄存器、取器件標志指令(IDCODE)寄存器等,用于存放在TDI的激勵下產生的各種響應信號數據。
圖2 邊界掃描的基本結構圖Fig.2 Structure diagram of Boundary Scan
電路板上各器件之間的連接方式大致可以分為4類:1)JTAG器件之間的互連;2)JTAG器件和 JTAG器件及非JTAG器件均相連;3)JTAG器件和非JTAG器件間的互連;4)非JTAG器件之間的互連。在板級測試中,邊界掃描技術可以覆蓋到前3類連接關系[5]。對一個含有邊界掃描芯片的電路板測試可分為3個大方面。
完備性測試是進行邊界掃描其他任何測試之前建議首先進行的測試操作,以確保邊界掃描鏈能正常工作。完備性測試可以檢測時鐘TCK和模式選擇TMS的輸入端連接是否正確,所提供的有關信號是否正常;數據輸入TDI和數據輸出TDO端的連接是否正確,且輸入和輸出的功能是否正常;內部的指令寄存器工作是否正常;內部的邊界掃描寄存器工作是否正常。在這項測試中,首先,通過讀取待測板上JTAG芯片的取器件標志指令和用戶編碼指令來判斷芯片的貼裝正確與否。其次,通過對TDI輸入一串測試向量,在TDO處讀取響應來確定掃描鏈路的長度,并與JTAG器件的邊界掃描描述語言(Boundary-Scan Description Language,BSDL)文件中定義的鏈路長度比對,完成寄存器長度測試和讀邊界掃描寄存器測試。最后還要進行旁路指令寄存器、讀指令寄存器的測試。
互連測試指的是對JTAG器件之間的連接關系進行測試。測試的內容包括:器件之間的互連(開/短路),一些透明邏輯及串聯在邊界掃描單元網絡上的電阻如上拉/下拉電阻等。邊界掃描的互連測試可以方便的測試與球柵陣列結構的電路板(Ball Grid Array,BGA)封裝的芯片相連的網絡。
非JTAG器件的測試包括隨機存儲器 (Random Access Memory,RAM)、閃存(FLASH Memory)等存儲器測試和簇測試。存儲器測試指的是對板上存儲芯片與JTAG器件之間的連接關系進行測試。通常的存儲器測試方法包括:存儲器直接存取、存儲器內建自測試、宏測試。為了支持非邊界掃描器件的測試,可以在測試的時候提出兩種方案:1)構建JTAG軟核,植入待測芯片;2)借助邊界掃描器件,搭建測試外殼。總之是通過待測的非JTAG器件周圍的JTAG器件提供測試通道,從而完成對非JTAG器件的測試[6]。
圖3 板級測試流程圖Fig.3 Flow chart of board-level testing
圖3 說明了一個板級測試的主要步驟。首先,創(chuàng)建一個電路板的測試工程,把電路圖的網絡說明文件導入工程,連接數據庫后會生成一個器件列表。列表中根據器件的類型和器件是否在掃描鏈路上分成了4種類型。有些器件的模型會在邊界掃描系統自帶的庫中找到,沒有的器件可以根據器件的手冊手動建立模型;JTAG器件可以導入相應的BSDL語言;簡單的器件例如電阻、電容等可以統一歸類。其次,對器件的模型分類結果進行編譯分析,編譯通過后就可以進行完備性、互連性及非JTAG器件的測試了。最后,對測試結果進行分析并輸出測試報告。
所有的測試過程都是在德國Goepel公司的JULET/Scan Flex硬件平臺和CASCON軟件平臺上完成的。待測板為一塊含有JTAG芯片、存儲器和部分邏輯器件的開發(fā)板,具有測試的通用性。
待測板可測性分析:如圖4所示待測板有兩個JTAG芯片:U1和U2。U1為賽靈斯(Xilinx)公司的XC9572XL芯片,U2為Altera公司的EPM7032AE芯片。
圖4 待測板的JTAG鏈路結構Fig.4 Structure diagram of JTAGlink on the board to be tested
待測板上有兩塊存儲器:U9和U10。U9是SRAM,U10是FLASH。U9通過U10與U1相連。U10的所有數據端D0-D7通過緩沖器U8(74LVT245)連接到U1,地址端的ADR0-ADR14直接連到U1??刂贫说腛E_F、WE_F都直接與JTAG器件U1相連。而另一控制端CE_F也通過緩沖器U11(74LVC138)轉接后與U1相連。存儲器的連接如圖5所示。
圖5 存儲器之間的連接圖Fig.5 Connection diagram of Memory
下面是通過實際的工程進行測試,而總結的步驟以及測試結果。
1)建立測試工程,測試準備。導入U1和U2相應的BSDL語言,其它器件從庫中查找,部分未知器件手動進行仿真建模。
2)掃描鏈路配置。對器件進行分類處理后,邊界掃描系統識別出JTAG鏈路,軟件掃描出待測板只有一條鏈路。因為U2是最靠近TDO的,固其測試響應最先被檢測。
3)JTAG器件之間的完備性測試。主要測試,JTAG器件之間的連接,器件的取器件標志指令。
4)JTAG芯片之間的互連測試。 互連測試沒有通過,提示U1的64號管腳沒有上拉電阻,
5)存儲器測試。測試步驟如下:①執(zhí)行外測試指令并進入數據寄存器移位狀態(tài),測試向量從U1的TDI輸入,通過掃描鏈路將串行加載到U1的邊界掃描單元中;②進入數據鎖存器刷新狀態(tài),將U1邊界掃描單元中的數據鎖存到輸出管腳上,并通過U1、U10之間的相連網絡加載到U10的輸入端;③執(zhí)行采樣指令并進入捕獲數據寄存器狀態(tài),U1捕捉U10輸出管腳的數據到相應的邊界掃描單元;④進入數據寄存器移位狀態(tài),U10的測試響應數據從U1的TDO端串行輸出。測試結果顯示,RAM和FLASH測試都是通過的。
6)二次開發(fā)簇測試。雖然在完成完備性測試、互連測試和存儲器測試之后基本可以覆蓋待測板大部分網絡,但是為了進一步提高測試的覆蓋率,需要盡可能的把板上所有邊界掃描單元能夠驅動的網絡都測試到,為此我們開發(fā)了諸如簇測試之類的測試[7]。以U4為例,其內部邏輯結構和連接關系如圖 6所示,輸入端由 U2的 BSN1、BSN2、BSN3控制,輸出端反饋到U2的BSN6。等效于借助U2的4個BSC為U4構建了一個JTAG架構。需要注意的是,進行簇測試的器件必須是所有使用的輸入輸出管腳均與JTAG器件相連,否則將無法完整的發(fā)送和接收測試向量。
圖6 待測部分內部邏輯結構和連接關系圖Fig.6 Portion of the internal logic structure and connection diagram
一個可測性設計較好的待測板,在邊界掃描的測試中能完成絕大部分網絡的覆蓋,而剩下的部分未測網絡則可以通過諸如飛針測試、針床測試等加以補充。這樣對一個電路板的測試可以達到較好的測試覆蓋率。
一個電路板的測試覆蓋率的高低在很大程度上決定于電路板的可測性設計和電路板的復雜程度。然而這兩個方面又是相互矛盾的。增加電路板的可測性,勢必會增加電路板設計的復雜度。為了達到最優(yōu)的效果,應該權衡設計復雜最小化問題和可測性改善最大化的問題。
根據目前電路板測試的技術水平 現提出如下方法:
1)改進測試算法,進一步壓縮內建自測試中額外的電路和管腳。
2)在考慮可測性設計的的時候,調整硬件電路的設計結構,使其適合內建自測試復雜的測試向量激勵和壓縮。
3)實現多種測試方法的綜合。例如可以將在線測試儀平臺和邊界掃描測試平臺結合在一起??稍跍y試開始時,首先調用在線測試儀測試程序,通過飛針完成待測板基礎性項目測試,而后調用邊界掃描測試程序完成板上大部分器件的測試,最后再回到在線測試儀測試平臺,對邊界掃描未能覆蓋到的網絡補測,達到覆蓋率的最大化。
在當今電路板板生產和制造工藝飛速發(fā)展的階段,電路板的復雜程度也越來越高,這給電路的線路檢測、線路板故障檢查以及排列球柵陣列結構的電路板封裝芯片焊點的好壞帶來了麻煩,邊界掃描技術解決了這些問題。邊界掃描技術已成為了超大規(guī)模集成電路的主流測試技術。
[1]Collins.Pete.Extensions to the IEEE 1149.1 Boundary-Scan Standard[S].EDN.2005,9(18):81.
[2]陳光禹,潘中良.可測性設計技術[M].北京:電子工業(yè)出版社,1997.
[3]羅濤,林明,邱衛(wèi)東.邊界掃描結構的設計及仿真[J].科學技術與工程,2011,11(2):261-265.LUOTao,LINMing,QIUWei-dong.Thedesign and stimulation of boundary scan’s structure[J].Science Technology and Engineerling,2011,11(2):261-265.
[4]Quiros-Olozabal A,Cifredo-CHacon M A.A new algorithm for the selection of control cells in boundary-scan interconnect test[J].Journal of Electronic Testing,2009,25(2):75-78.
[5]雷紹充,邵志標,梁峰.超大規(guī)模集成電路測試[M].北京:電子工業(yè)出版社,2008.
[6]陳亮,胡善偉.邊界掃描技術及其應用[J].航空計算技術,2009,39(1):128-137.CHEN Liang,HU Shan-wei.The technology and application of boundary scan[J].Aeronautical Computing Technology,2009,39(1):128-137.
[7]雷加,李延平.數?;旌线吔鐠呙杓夹g的研究現狀與發(fā)展[J].計算機測量與控制,2010,18(4):734-737.LEI Jia,LI Yan-ping.Present dituation and development of mixed-siganl boundary scan tec-hnology [J].Conputer Measurement&Control,2010,18(4):734-737.