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