基于FPGA的數(shù)據(jù)域邊界掃描測試向量發(fā)生器的設計與實現(xiàn)
隨著超大規(guī)模集成電路技術的發(fā)展,現(xiàn)代電子系統(tǒng)中印刷電路板越來越復雜,多層板的設計也越來越普遍。由于大量使用各種表貼元件和BGA封裝元件,使得元器件的管腳密度不斷提高,采用萬用表、示波器測試芯片的傳統(tǒng)“探針”方法已經不能滿足要求?;诖耍?lián)合測試行動組JTAG(Joint Test Action Group)于1988年提出了第一個邊界掃描機制的標準,即JTAG標準[1]。邊界掃描技術是應用于數(shù)字集成電路器件的測試性結構設計方法。所謂“邊界”是指測試電路被設置在IC器件邏輯功能電路的四周,位于靠近器件輸入、輸出引腳的邊界處。所謂“掃描”是指連接器件各輸入、輸出引腳的測試電路實際上是一種串行移位寄存器,這種移位寄存器叫做“掃描路徑”,沿著這條路徑可輸入由“0”和“1”組成的各種編碼,對電路進行“掃描”式檢測,從而定位故障芯片,并對芯片進行更換。然而,人們對具體電路測試向量的生成主要是依靠軟件實現(xiàn),但當面臨大規(guī)模復雜問題時,基于軟件的測試向量生成方法往往在速度上受到本質是串行的計算機系統(tǒng)的制約,導致運算速度較慢。本文設計了一種基于FPGA的邊界掃描測試向量發(fā)生器,由于FPGA并行運行的特性,提高了測試向量產生的速度和效率。
1 數(shù)據(jù)域測試理論與算法
數(shù)據(jù)域測試是對數(shù)字電路或系統(tǒng)進行故障偵查、定位和診斷[2]。數(shù)據(jù)域測試是提高數(shù)字系統(tǒng)可靠性的重要途徑,對當代集成電路工業(yè)具有舉足輕重的作用。
1.1 固定型故障模型
固定型故障模型是指電路或系統(tǒng)中某一信號線在系統(tǒng)運行過程中總是固定在某一邏輯值上[3]。如果該線固定在邏輯高電平上,則稱之為固定1故障,簡記為s-a-1;如果該線固定在邏輯低電平上,則稱之為固定0故障,簡記為s-a-0。
1.2 布爾差分算法
布爾差分法是用數(shù)學方法來研究故障的傳播,從而求得故障的測試集[4]。為了敘述方便,本文對于布爾函數(shù)f(X)=f(x1,x2,…,xn)定義如下:
f(xi)=f(x1,x2,…,xi,…,xn)
LFSR的邏輯功能完全由其反饋函數(shù)決定,圖1中所示的LFSR的行為完全由反饋系數(shù)Ci決定,由反饋系數(shù)Ci在二元域上定義的多項式:
稱為該線性反饋移位寄存器的特征多項式。以n次本原多項式為特征多項式的LFSR可產生周期為2n-1的偽隨機序列。
3.2 故障運算機模塊
本文以ISCAS`85基準電路的C17電路為例來設計故障運算機模塊。C17電路的單固定故障數(shù)目為34。將故障注入控制字M和Fv的寬度設置為9位,表示每個周期可以執(zhí)行8個故障的計算,每5個時鐘周期,測試向量保持不變,故障運算機模塊依次注入全部故障。故障注入控制字的數(shù)據(jù)如圖2所示。表中陰影部分第一、二周期以及第三個周期中M[16]、Fv[16]表示注入固定1型故障,其余部分表示注入固定0型故障。
3.3 結果處理模塊
3.3.1 結果處理第一級模塊
由于本系統(tǒng)是并行運行的,若有多個輸出則可能對同一個故障重復觀察。因此,本系統(tǒng)要實現(xiàn)故障覆蓋率的計算。結果處理第一級模塊就要消除對故障的重復計算。
3.3.2 結果處理第二級模塊
結果處理第二級模塊是排除一個測試向量集對同一個故障在輸出端重復觀察的影響,第二級模塊以第一級模塊輸出作為輸入,可以求得故障覆蓋率,并通知邊界掃描測試系統(tǒng)采集測試向量。
3.4 控制模塊
控制模塊主要協(xié)調各個模塊的工作時序,使各功能模塊可以在控制信號下有序工作。clk2是偽隨機測試向量產生模塊的時鐘頻率,clk2的時鐘周期是系統(tǒng)時鐘周期的k倍。設電路中的故障總數(shù)為M,每個時鐘周期可以模擬的故障數(shù)目為N,,其中int為取整。
3.5 系統(tǒng)結構原理圖
使用Quartusii軟件建立系統(tǒng)結構原理圖如圖3所示。該系統(tǒng)通過并行故障模擬算法生成測試向量,可通知邊界掃描故障診斷系統(tǒng)對測試向量進行采集并存入存儲器中,并可以求出測試向量集的故障覆蓋率。
4 系統(tǒng)實現(xiàn)以及結果分析
4.1 資源占用
本系統(tǒng)采用Altera公司的Cyclone II系列EP2C5-AF256A7芯片進行驗證與實現(xiàn)。系統(tǒng)資源占用報告如圖4所示。從報告中可以看出,硬件實現(xiàn)的測試向量發(fā)生器占用了較少的硬件資源,該芯片有足夠的硬件資源供系統(tǒng)進行優(yōu)化和完善。
4.2 結果分析
本文采用Quartusii 9.0軟件以及Modelsim軟件對各個功能模塊及系統(tǒng)進行仿真,分析結果表明了設計的正確性。系統(tǒng)的仿真結果如圖5所示,從波形中可知,所得測試向量集的故障覆蓋率達到了90%以上。實踐表明,若單固定型故障覆蓋率達到90%以上就可以實現(xiàn)對被測系統(tǒng)的大部分故障進行檢測。從仿真結果中可知本設計實現(xiàn)了期望的功能。
本文采用Altera公司的FPGA器件,設計了一種基于FPGA的、為邊界掃描故障診斷系統(tǒng)提供測試向量的測試向量發(fā)生器。與以往的通過軟件生成測試向量的方法相比,雖然消耗了一定的硬件資源,但在速度和效率上得到了提高。由于本文生成測試向量的方法處于試驗階段,還有待優(yōu)化與完善。
評論