陳翎 潘中良



摘要:邊界掃描測試能夠對電路芯片間的互連和每個芯片內部的邏輯功能等進行檢測,可以檢測出電路中多種類型的故障,以確保電路具有較高的可靠性和電路功能的正確性。本文首先說明了邊界掃描測試的結構;其次,給出了邊界掃描測試軟件的設計方法,對它的如下的主要模塊即電路描述的輸入、電路網表結構分析、完備性測試、互連測試、芯片內部功能的測試、測試結果輸出等的功能進行了說明,重點對電路網表結構分析這個模塊的實現進行了詳細闡述。
關鍵詞:集成電路 邊界掃描 測試方法 軟件程序 網表結構分析
中圖分類號:TN407 文獻標識碼:A 文章編號:1007-9416(2016)07-0070-04
Abstract:The boundary scan testing can detect the interconnections among chips and the logic functions of each chip, it is able to detect the faults in the circuits, and can ensure the high reliability and the correctness of circuit functions. First of all, the structure of boundary scan testing is demonstrated in this paper. Secondly, the design method of boundary scan testing software is given, the functions of its main modules are shown, the modules include the circuit description input, circuit netlist structure analysis, interconnection testing, chip internal logic testing and test results output, etc. The implementation of circuit netlist structure analysis is described in detail.
Key Words:Integrated circuits, boundary scan, testing method, software program,netlist structure analysis
1 引言
在集成電路(IC)的生產過程中,涉及氧化、光刻、摻雜、淀積等多種工藝步驟,每種步驟都會對電路的質量與可靠性產生影響。為了保證電路具有較高的可靠性,必需對電路進行多種類型的測試。通過進行測試,可以檢測出電路中的多種類型故障,例如,一條信號線的時延故障[1,2]、多條信號線之間的串擾故障[3,4]等,從而保證電路功能的正確性以及電路的可靠性。
對集成電路或印制電路板進行測試的傳統方法是使用針床或測試探針,但隨著電路集成度的不斷提高,使得布線密度不斷增加,信號線之間的間距越來越小,從而使得測試探針難以接觸到引線,因此這種電路集成度的提高給傳統的測試方法提出了嚴峻的挑戰。特別是近年來出現的片上系統,它是在一塊芯片上集成了整個系統的功能,在硬件結構上包括微處理器、存儲器、信號處理器、數模轉換器等[5,6],此時信號線之間的間距遠小于測試探針之間的間距,采用這種物理的測試探針可能對系統的線路連接造成損壞,同時對系統內部的一些節點或信號線,就不能通過測試探針進行接觸和訪問。
為了解決電路芯片和印制電路板的測試問題,人們提出了邊界掃描(Boundary Scan)測試技術,它是通過在芯片管腳和芯片內部的邏輯電路之間增加由移位寄存器所構成的邊界掃描單元,來實現對測試矢量的施加以及對測試響應的捕獲[7,8]。可以使用邊界掃描測試對電路芯片間的連通性和每個芯片內部的邏輯功能等進行檢測。本文對邊界掃描測試的軟件程序設計中的電路網表結構分析進行了詳細說明,給出了對電路中的邊界掃描結構進行提取的方法以及程序設計。
2 邊界掃描測試的結構
邊界掃描測試的硬件結構主要由如下四個部分組成:(1)測試存取通道(TAP);(2)TAP控制器;(3)指令寄存器;(4)測試數據寄存器。在硬件上是在IC芯片的每個I/O引腳處添加一個邊界掃描單元,以及添加一些測試控制邏輯。這種邊界掃描單元是由一些邊界掃描寄存器所組成,通過將這些寄存器連成掃描路徑,構成掃描鏈[9,10]。這些邊界掃描寄存器位于IC的外部引腳和IC的內部邏輯之間,可以在狀態控制器(即TAP控制器)的控制下,對外部引腳和內部邏輯進行信號的采集或施加信號。如圖1所示。
測試存取通道TAP(Test Access Port)是邊界掃描測試電路與外部電路的接口,它包括以下五種控制信號:測試時鐘
TCK、測試方式選擇
TMS、測試數據輸入
TDI、測試數據輸出TDO、測試復位TRST。
(1)測試時鐘。
TCK(Test Clock):它是用于控制邊界掃描寄存器和TAP控制器的時鐘。
(2)測試方式選擇。
TMS(Test Mode Select):當該信號有效時,IC芯片處于測試模式,否則是處于正常工作模式。
(3)測試數據輸入。
TDI(Test Data Input):用于邊界掃描測試數據的輸入,邊界掃描指令和測試數據均由此進行輸入。
(4)測試數據輸出TDO(Test Data Output):用于邊界掃描測試數據的輸出,由TAP控制器的狀態和指令寄存器的內容來決定哪些寄存器用于數據的輸出。
(5)測試復位TRST(Test Reset):用于邊界掃描測試的邏輯復位,低電平時有效,即當TRST的輸入為低電平時,IC芯片進入正常工作狀態,邊界掃描測試的控制邏輯無效。這種測試復位TRST信號為可選信號。
TAP控制器是邊界掃描測試的核心,它的輸入信號為TCK、TMS和TRST(可選)。TAP控制器產生掃描數據寄存器和指令寄存器等所需的時鐘信號,并在指令寄存器的配合下產生復位、執行測試、輸出數據到緩沖器等信號。對測試數據的捕獲、移位、更新等都必須在TAP控制器進入到相應的狀態時才能進行。
以上對邊界掃描測試的硬件結構進行了說明,在它的實際應用過程中,邊界掃描測試需要與測試軟件程序相結合,才能實現對IC芯片的自身功能和芯片間互連的測試。下面對邊界掃描測試的軟件程序設計進行闡述。
3 邊界掃描測試的軟件程序設計
3.1 邊界掃描測試軟件的功能與實現過程
邊界掃描測試軟件是通過使用邊界掃描測試技術,完成對電路芯片的內部邏輯功能的測試,以及對芯片間的互連線的測試。能夠檢測芯片的內部邏輯功能是否正常,以及檢測芯片間的互連線的多種類型的故障(例如,開路故障、短路故障、固定型故障s-a-0和s-a-1等),并指出故障的位置,以及故障的個數。具有電路描述的輸入、電路網表結構分析、完備性測試、互連測試、芯片內部功能的測試、測試結果輸出等多個模塊。
對邊界掃描測試軟件的實現過程如下:通過對輸入的電路芯片的結構描述文件進行預處理,提取出相關的邊界掃描測試的信息,并采用鏈表等數據結構來說明電路中的所有信號線與各個模塊之間的連接關系;針對多種類型的故障,例如,開路、短路、s-a-0和s-a-1故障等,設計測試矢量生成方法,以產生用于檢測這些故障的測試矢量;對邊界掃描測試的整個過程進行設計,包括測試矢量的施加、測試響應的捕獲、測試鏈路上的數據移位、以及多種測試指令的操作與執行,以方便地進行對電路芯片內部邏輯功能的測試和對芯片間互連線的測試。
邊界掃描測試軟件由如下的多個模塊組成:電路描述的輸入、電路網表結構分析、完備性測試、互連測試、芯片內部功能的測試等。完備性測試是對邊界掃描結構自身的功能正確性的測試;互連測試是對具有邊界掃描功能的多個芯片間的互連線的測試;芯片內部功能的測試是使用邊界掃描的鏈路完成對各個芯片的邏輯功能的測試。軟件的主界面如圖2所示,在主界面的菜單欄中有“文件”、“電路網表結構分析”、“完備性測試”、“互連測試”、“芯片內部功能的測試”、“測試結果輸出”、“幫助”等菜單項。
3.2 電路網表結構分析
首先,在菜單項“文件”中有“新建”、“打開”、“保存”、“另存為”、“打印”、 “電路描述的輸入”、“退出”等菜單命令。
菜單命令“新建”的功能是用于建立描述電路結構的文本文件,并在主界面的窗口中對文件的內容進行添加與修改等;菜單命令“保存”的功能是對在主界面的窗口中顯示的文本文件進行存儲(保存);菜單命令“另存為”的功能是對在主界面的窗口中顯示的文本文件用另一個文件名進行存儲;菜單命令“打印”的功能是在打印機上對在主界面的窗口中顯示的文本文件進行打印輸出。
菜單項“電路網表結構分析”的功能是對主界面的窗口中顯示的電路結構描述文件進行分析與處理,獲得電路的輸入和輸出信號線的名稱、電路中的所有信號線與各個模塊之間的連接關系、電路的邊界掃描結構等信息;通過建立鏈表等數據結構,來保存這些電路結構信息,以供后續的操作步驟所使用。
對輸入的描述電路結構的文本文件(也稱為網表文件),需要從中提取出有關的邊界掃描結構的信息,以在后續的測試過程中使用。可以把網表文件中的內容大致分為兩部分:前一部分是對各個組件的描述,后一部分是互連結構的描述。
例如,可以直接使用采用 BSDL描述的電路結構,從中提取出電路的互連結構信息,這里,BSDL(Boundary-ScanDescription Language)它是超高速集成電路硬件描述語言(VHDL)的一個子集。從一個BSDL文件中可以獲取如下三部分的信息:TAP通道、測試指令碼、邊界掃描單元。下面以Altera公司所生產的器件EPM7064AET44的BSDL文件為例,對這三部分信息進行說明。下面分別是從該器件的BSDL文件中截取的與這三部分有關的信息。
3.2.1 TAP通道的信息
attribute TAP_SCAN_IN of TDI: signal is true;
attribute TAP_SCAN_MODE of TMS: signal is true;
attribute TAP_SCAN_OUT of TDO: signal is true;
attribute TAP_SCAN_CLOCK of TCK : signal is (10.00e6, BOTH);
這里在進行測試時TCK的最大頻率不能超過10M。
3.2.2 測試指令的操作碼
attribute INSTRUCTION_LENGTH of EPM7064AET44: entity is 10;
attribute INSTRUCTION_OPCODE of EPM7064AET44: entity is "BYPASS (1111111111), "
& "EXTEST (0000000000)," & "SAMPLE (0001010101)," & "IDCODE (0001011001),"
& "USERCODE (0000000111)";
這里說明了指令長度為10位,以及“BYPASS”、“EXTEST”、“SAMPLE”、“IDCODE”、“USERCODE”等指令各自所對應的操作碼,例如,指令“BYPASS”所對應的操作碼為“1111111111”。
3.2.3 邊界掃描單元的信息
attribute BOUNDARY_LENGTH of EPM7064AET44: entity is 192; // 說明共有192個邊界掃描單元
attribute BOUNDARY_REGISTER of EPM7064AET44 : entity is
--BSC group 0 for dedicated input pin 38 //管腳38的邊界掃描單元的信息
"0 (BC_4,IN38,input, X)," & "1 (BC_4,*,internal, X)," & "2 (BC_4,*,internal, X)," &
--BSC group 1 for dedicated input pin 37 //管腳37的邊界掃描單元的信息
"3(BC_4, IN37,input, X)," & "4 (BC_4,*,internal, X)," & "5(BC_4,*,internal, X)," &
…… ……
--BSC group 63 for dedicated input pin 39 //管腳39的邊界掃描單元的信息
"189 (BC_4, IN39,input, X)," & "190 (BC_4,*,internal, X)," & "191 (BC_4,*,internal,X)";
這里,每個管腳所對應的邊界掃描單元的描述格式為:num(cell,port,function,safe[ccell,disval,rslt])。該格式中每個部分的含義如下。
num為邊界掃描單元的標號,它的值為0是表示該單元是最靠近TDO。
cell為所使用的單元類型,例如,cell為BC_1時表示使用一個通用單元,可用作輸入和輸出;cell為BC_2時表示使用一個具有并行輸出鎖存器的輸入單元;cell為BC_3時表示使用一個沒有并行輸出鎖存器的輸入單元;cell為BC_4時表示使用一個只允許作為信號捕獲的輸入單元;cell為BC_5時表示使用一個三態管腳單元,并且是由一個系統管腳來控制三態輸出;cell為BC_6時表示用于雙向管腳中的輸入/輸出單元。
port說明該單元是用于驅動還是用于接收數據;若該單元是被用于對數據輸出的控制單元或作為一個內部單元使用,則用“*”表示。
function說明單元的功能。例如,當function為“clock”時,則是時鐘輸入端的單元;當為“control”時,則是控制三態方向的單元;當為“internal”時,則是捕獲內部數據;當為“input”時,則是簡單的輸入管腳接收器;當為“output2”時,則是為二態輸出提供數據;當為“output3”時,則為三態輸出提供數據;當為“bidir”時,則是用于雙向管腳的雙向單元。
safe是受控單元不作用時的安全值。使用該參數可以減少不確定數據對電路的影響;其中ccell為受控單元;disval為用于控制使ccell所指單元不作用的值;rslt為該單元沒有被驅動時的狀態。
4 實驗結果
我們用C++語言編制了邊界掃描測試的軟件,其主界面如圖2所示。該軟件在微型計算機上運行,通過與硬件邊界掃描控制器的結合,實現了對被測電路的整個測試過程。
在該軟件的主界面的菜單項“文件”中的菜單命令“打開”的功能是直接從計算機中找到并選中描述電路結構的文本文件。從出現的對話框中點擊“打開”按鈕,之后在主界面的窗口中顯示該文本文件。例如,圖3是選取D盤目錄D:\BST\Circuitdes中的文件Circuit10.vhd的例子。
圖4是從出現的對話框中點擊“打開”按鈕之后,在主界面的窗口中顯示該文件Circuit10.vhd的內容。
對軟件主界面中的菜單項“電路網表結構分析”,點擊該菜單項,若從出現的對話框(如圖5所示)中選取“進行網表結構分析”,并按“確定”按鈕,則軟件系統是對輸入的電路描述文件(例如Circuit10.std)所描述的電路進行網表結構分析,并將獲得的互連結構信息保存在默認的文件中(例如Circuit10.bst)。
若從出現的對話框(如圖5所示)中選中“選取待處理的電路描述文件,然后進行網表結構分析”,并按“確定”按鈕,則軟件系統是直接對選取的電路結構描述的VHDL 文件或BSDL文件進行網表結構分析,并將獲得的互連結構信息保存在默認的文件中。
這種操作的結果文件是供軟件系統的后續操作“完備性測試”、“互連測試”、“芯片內部功能的測試”等使用,并直接作為這些操作的輸入。例如,對電路結構描述文件Circuit10.vhd,經過“電路網表結構分析”這一步的操作之后的結果被保存在文件Circuit10.std中。
為驗證邊界掃描測試的軟件系統的性能,我們設計了一個被測電路板,在該板上主要有如下六個芯片:EP1C3T144、EPM7064AET44、四個SN74LVTH182512。把這六個芯片通過邊界掃描測試總線中的TCK、TMS、TDI和TDO等進行連接。同時,在它們的互連線上設置了固定型s-a-0和s-a-1、開路、短路等故障。
通過使用前面的方法對輸入的電路芯片的結構描述文件進行處理,提取出每個芯片的邊界掃描測試的信息,進行電路網表結構分析,并采用鏈表等數據結構來說明電路中的所有信號線與各個模塊之間的連接關系。實驗結果表明,所設計的軟件程序能準確地提取出每種芯片的邊界掃描信息,為后續的測試提供了方便,使整個測試系統能檢測芯片的內部邏輯功能是否正常,以及能夠檢測芯片間互連線的固定型故障、開路、短路等多種類型故障。
5 結語
邊界掃描測試能夠對具有高集成度的電路芯片和印制電路板等進行互連測試與內部的邏輯功能測試。通過編制測試軟件并與硬件上的邊界掃描控制器的結合,能實現對被測電路的整個邊界掃描測試的過程。本文對邊界掃描測試的軟件程序設計中的電路網表結構分析這個模塊的實現進行了詳細闡述,給出了對電路中的邊界掃描結構信息進行提取的步驟。
參考文獻
[1]L.Bao, W.Lu. Dynamic statistical-timing-analysis-based VLSI path delay test pattern generation[J]. IEEE Trans. on VLSI, 2015, 23(9):1577-1590.
[2]B.Arslan, A.Orailoglu. Power-aware delay test quality optimization for multiple frequency domains[J]. IEEE Trans. on CAD, 2016, 35(1):141-154.
[3]K.Peng, M.Yilmaz, K.Chakrabarty. Crosstalk- and process variations-aware high-quality tests for small-delay defects[J]. IEEE Trans. on VLSI, 2013, 21(6):1129-1142.
[4]D.Sourav, E.N.Dmitri, M.Sasikanth. Compact physical model for crosstalk in spin-wave interconnects[J]. IEEE Trans. on Electron Devices, 2015, 62(11):3863-3869.
[5]潘中良.系統芯片SoC的設計與測試[M].科學出版社,2009.
[6]陳光禹,潘中良.可測性設計與技術[M].電子工業出版社,1997.
[7]IEEE Std1149.1-2001. IEEE standard test access port and boundary-scan architecture[S]. 2001.
[8]Y.Hiroyuki, M.Hiroyuki, N.Takanobu. On detecting delay faults using time-to-digital converter embedded in boundary scan[J]. IEICE Trans. on Information and Systems,2013,96(9):986-1993.
[9]S.Stephen,R.Aubin.Contact less test of IC pads,pins, and TSVs via standard boundary scan[J]. IEEE Design & Test of Computers,2012,29(5):55-62.
[10]F.Farnaz,N.Bahareh,T.Fatemeh. A new approach to model the effect of topology on testing using boundary scan[J].Journal of Electronic Testing,2015,31(3):301-310.