1 引言
國內從90年代中期開始研究邊界掃描技術,取得了一定的成果,但多是對完全BS (boundary scan)器件的邊界掃描測試,對由非BS器件組成的邏輯簇的測試還鮮見報道。本文所介紹的基于邊界掃描的邏輯簇測試診斷軟件以Borland C++ Builder為開發工具,能夠自動產生邏輯簇的串行測試矢量,準確進行故障定位,并附加有邊界掃描結構完備性測試功能模塊,提高了測試可靠性。
2 邏輯簇測試診斷軟件設計
一個邊界掃描測試診斷過程可以簡述為:首先輸入測試矩陣進行激勵,然后輸出響應矩陣,最后通過分析響應矩陣就可達到對故障進行診斷定位的目的。所以說,故障診斷問題就集中在測試矩陣的構造、列測試向量的并行加載、列響應向量的并行采集和響應矩陣的分析上。我們在進行軟件設計時,利用并行測試矢量描述與簇描述文件來構造完備的測試矩陣,將其以串行掃描方式由邊界掃描器件的TDI經BS鏈路串行移位送到與邏輯簇相連的相應BSC,然后通過TMS發送測試控制命令,經TAP控制器控制BSC完成測試碼的并行加載和響應碼的并行采集。測試響應碼則經BS鏈路串行移位從邊界掃描器件的TDO送到測試機處理得到響應矩陣,最后通過對響應矩陣的分析來進行邏輯簇電路故障的診斷定位。
2.1 軟件設計流程圖
邏輯簇測試的程序流程圖如圖1所示,其中各步驟的具體作用如下。

?
邊界掃描信息數據選擇與設置:設置PCB板邊界掃描鏈的組成、選擇PCB板的網絡表、選擇各BS器件的BSDL信息、選擇被測邏輯簇描述文件、輸入其并行測試矢量描述文件。
編譯信息:從BS器件信息數據庫中讀取各芯片的邊界掃描長度、指令碼、邊界掃描單元總數、邏輯簇與BS器件互連網絡總數及各網絡的組成,并根據 PCB板的BS鏈組成給各BSC從最靠近TDO端開始編排序號,然后譯出加載診斷矩陣和采集響應結果的對應BSC序號。
生成測試矩陣:根據邏輯簇與BS器件互連網絡總數及各網絡的組成,結合邏輯簇的并行測試矢量或簇描述文件,利用測試生成算法生成測試矢量集,構成測試矩陣。
邊界掃描結構完備性檢查:進行邊界掃描寄存器、指令寄存器等寄存器的功能測試和各TAP端口信號故障測試。
TAP控制器復位并控制其進入移位指令寄存器狀態:在測試時鐘的上升沿發送“11111”到TMS引腳,掃描鏈所有芯片TAP控制器處于復位狀態。然后再次發送“01100”到TMS引腳,TAP控制器進入移位指令寄存器狀態。
選擇邊界掃描寄存器連接在掃描鏈上:從TDI 引腳發送各芯片的SAMPLE指令至各芯片的指令寄存器。在測試時鐘的上升沿發送 “11100”到TMS端,各芯片選擇邊界掃描寄存器連接在掃描鏈上, TAP控制器進入移位數據寄存器狀態。
測試矢量輸入掃描鏈并串行移位到相應BSC:讀取測試矢量集中的列向量送入對應邊界掃描單元(即邏輯簇的虛擬輸入端)等待加載。
向掃描鏈各BS器件輸入對應的EXTEST指令:在測試時鐘的上升沿發送“111100”至TMS端,TAP控制器進入移位指令寄存器狀態,發送各芯片 EXTEST指令至各芯片的指令寄存器。發送“111100”至TMS端,通過各芯片輸出端口上的BSC將數據加載到網絡,TAP控制器處于移位指令寄存器狀態。
掃描鏈各BS器件輸入對應的SAMPIE指令:發送各芯片的SAMPLE指令至指令寄存器。在測試時鐘的上升沿發送“11100”至TMS端,各芯片從互連網絡上獲取數據并存入輸入端口的BSC中,各芯片TAP控制器進入移位數據寄存器狀態。
從邊界掃描鏈TDO端串行輸出響應數據并存儲:連續發送N(BSC總數)個測試時鐘到TCK端,并在每個測試時鐘的下降沿采集TDO引腳移出的數據,提取并保存各邏輯簇虛擬輸出端對應的響應數據構成響應向量。
組成響應矩陣分析測試結果:將所有的響應向量組成響應矩陣,與正確測試響應相比較和分析,判斷邏輯簇是否存在故障。
2.2 邏輯簇測試的設置
在進行邊界掃描測試時,首先要對測試矢量自動生成所需的若干信息進行設置。對于BS器件之間的互連測試,其設置只需填寫掃描鏈信息和選擇網絡表文件。而對邏輯簇的測試因為涉及到簇的定義及針對其功能的并行測試矢量,設置所需信息相對復雜,包括有:
?、艗呙桄溌返慕M成芯片、各芯片的邊界掃描指令與其BSC單元信息;
?、票粶y電路板的網絡表文件*.edf;
⑶邏輯簇的并行測試矢量描述文件*.vdf;
?、却孛枋鑫募?.cld。

?
本軟件邏輯簇設置界面如圖2所示。掃描鏈路設置要依次選擇或填寫組成掃描鏈的芯片總數、芯片序號(第*片)、芯片標稱(網絡表中芯片的名稱 U1、U2等)以及芯片的具體名稱和相關邊界掃描信息。芯片的邊界掃描相關信息是一個可以編輯、增添、修改信息的數據庫,選擇了芯片名稱即可調用其數據庫信息?!斑壿嫶販y試選擇”一欄用來選擇被測的是單個非BS器件還是由非BS器件組成的簇,對于單個非BS器件,只需填寫器件標稱,而對于簇測試,還需編寫一個定義簇的輸入輸出、端口名稱的簇描述.cld(cluster description)文件。另外,它們的并行測試矢量文件.vdf(vector description file)也需由用戶編寫輸入。cld與vdf文件都是自行設計的有一定語法規范的的文件編輯格式,簡捷易用,用戶只需了解邏輯簇的組成和功能就可以容易地編輯。
邏輯簇測試所有信息選擇填寫完成后,點擊 “確定”開始測試或選擇“保存設置”、“載入設置”等命令。
3 邏輯簇測試實例驗證
3.1 試驗板結構
為研制基于邊界掃描的邏輯簇測試診斷軟件,我們在一塊帶有示范性的試驗板上對某邏輯簇進行了測試實例驗證。被測邏輯簇為試驗板的一部分,其電路如圖3所示。試驗板采用了邊界掃描測試性設計技術,邏輯簇器件74LS04(U 5)的輸入輸出管腳均與BS器件U1、U 2(Altera公司的EPM7128SL84)相連,因而可以把U 1、U2的邊界掃描單元作為其虛擬測試點,實現了可觀性、控制性。開關K1用來控制U1與U5 連線的通斷,以模擬U5的故障情況。

?
3.2 測試矢量的加載
本試驗中,74LS04的6個輸入管腳1、3、5、 9、11、13與U1的63、64、65、67、68、69管腳相連,其對應的輸出型BSC序號為53、56、59、65、 71、74;74LS04的6個輸出管腳2、4、6、8、10、12與U 2的63、64、65、67、68、69管腳相連,其對應的輸入型BSC序號為72、69、63、57、54、51。
74LS04是一個簡單的非邏輯,輸入管腳1、3、 5、9、11、13與輸出管腳2、4、6、8、10、12對應為反,對它的功能測試比較簡單,且故障能夠定位到它與U1、U2的連線。其測試矢量應先給各輸入端賦值0,輸出端應該輸出1;再給各輸入端賦值1,輸出端應該輸出0。如果某一對端口不能完成此測試,而其它端口可以,則說明這一對端口與U1 或U2的連線有故障;若全部邏輯不符,則說明芯片 74LS04出故障。首先按照并行測試矢量文件VDF的語法格式,根據以上邏輯編寫出邏輯簇的并行測試矢量文件(此處略)。
為利用U1的BSC單元把測試矢量加載至U5,首先要由網絡表和BSDL編譯函數把并行測試矢量加載到與U 5相連的U1對應管腳的輸出型BSC單元。U5的 I/O管腳是三態管腳,其每個管腳對應的BSC單元控制必須賦輸出允許值“1”,經過軟件的網絡表和BSDL 編譯分析,最終從TDI輸入U1的第一組串行測試矢量為“111…0110110111110111110110…111”,這樣,序號為53、56、59、65、71、74的U1的BSC單元賦值為0,其余為1。第二組串行測試矢量為“111…111”,即全1。
3.3 測試響應的輸出
在指令移位狀態下輸入EXTEST指令“0000000000”,U 1將測試矢量加到U5的輸入端,U5完成各輸入端邏輯非的功能,輸出端得到對激勵的響應。同時U2捕獲U5輸出管腳的數據,送入U 2對應管腳的輸入型BSC單元??刂芓MS,轉換至數據移位狀態,串行輸出U2的288個BSC單元值,對第一組串行測試矢量的輸出響應如圖4(a)。經過對TDO值的分析編譯,從中提取出U 5輸出管腳2、4、6、8、10、12對應的值為全“1”,說明第一組測試無故障。用同樣的控制過程得到TDO對第二組串行測試矢量的輸出響應如圖4(b)。

?
同樣對TDO值進行分析編譯,從中提取出U5輸出管腳2、4、6、8、10、12對應的值為全“0”,第二組測試亦無故障。軟件輸出互連網絡完好的結果提示。
為模擬邏輯簇的故障情況,用開關K 1斷開U1與U5的兩條連線,重復以上測試過程,通過對測試矢量和測試響應的對比分析,可以準確地將故障定位到斷開的連線上。另外,邏輯簇測試前需執行邊界掃描結構完備性測試程序,具體過程請參見文獻[2]。
4 結束語
本文詳細介紹了基于邊界掃描的邏輯簇測試診斷軟件的設計原理、流程圖與應用,并通過測試實例初步驗證了軟件的有效性與可靠性。但由于邏輯簇的復雜不一、串/并行測試矢量相結合的工作方式,不可避免地會帶來掃描鏈管理、器件隔離等諸多問題,它們在軟件調試過程中也時有發生,如何解決這些問題我們將在后續工作中繼續研究。
電子發燒友App


















評論