基于BIST的FPGA邏輯單元測(cè)試方法
摘 要:給出了一種基于內(nèi)建自測(cè)(BIST)的測(cè)試現(xiàn)場(chǎng)可編程門陣列(FPGA)邏輯單元的方法,討論了測(cè)試的配置結(jié)構(gòu)、故障覆蓋率和測(cè)試中出現(xiàn)的問(wèn)題及解決辦法。實(shí)驗(yàn)表明,該測(cè)試方法具有所需測(cè)試向量少、故障覆蓋率高、簡(jiǎn)便適用等優(yōu)點(diǎn)。
關(guān)鍵詞:現(xiàn)場(chǎng)可編程門陣列;內(nèi)建自測(cè);響應(yīng)檢驗(yàn)電路;測(cè)試
引言
現(xiàn)場(chǎng)可編程門陣列FPGA(Field ProgrammableGate Array)是一種新型器件,它將門陣列的通用結(jié)構(gòu)與現(xiàn)場(chǎng)可編程的特性結(jié)合于一體,因而受到廣泛關(guān)注。FPGA 測(cè)試中,測(cè)試激勵(lì)的多種測(cè)試生成方法,都有其一定局限性,不能求出所有故障,而且隨著集成電路規(guī)模的迅速膨脹,電路結(jié)構(gòu)也越來(lái)越復(fù)雜,大量的故障變得不可測(cè)。所以,人們把視線轉(zhuǎn)向了電路系統(tǒng)的設(shè)計(jì)過(guò)程。如果設(shè)計(jì)的電路容易測(cè)試,容易找到測(cè)試碼,對(duì)測(cè)試和測(cè)試碼的生成問(wèn)題就大大簡(jiǎn)化,這就是可測(cè)性設(shè)計(jì)問(wèn)題。可測(cè)性設(shè)計(jì)問(wèn)題的一個(gè)主要解決方法就是內(nèi)建自測(cè)法BIST(Built-in self-test)。
利用FPGA可重復(fù)編程的特性,通過(guò)脫機(jī)配置,建立BIST邏輯,即使由于線路被操作系統(tǒng)的重新配置而令BIST結(jié)構(gòu)消失,可測(cè)性也可實(shí)現(xiàn)。本文給出一種基于BIST利用ORCA(Optimized Reconfigurable Cell Array)結(jié)構(gòu)測(cè)試FPGA邏輯單元PLB(Programmable Logic Block)的方法,該方法對(duì)邏輯單元PLB 進(jìn)行了分類、分階段的測(cè)試,同時(shí)進(jìn)行電路模擬實(shí)驗(yàn)。
BIST測(cè)試結(jié)構(gòu)
這種基于BIST的測(cè)試方法是一系列測(cè)試階段順序進(jìn)行的結(jié)果,每一階段都包括以下幾步:1)對(duì)電路進(jìn)行配置;2)測(cè)試初始化;3)生成測(cè)試圖形;4)對(duì)響應(yīng)進(jìn)行分析;5)讀出測(cè)試結(jié)果。
圖1 給出了利用ORCA測(cè)試方法過(guò)程中FPGA的配置結(jié)構(gòu)。在用于完全測(cè)試BUT (Block Under Test)的絕大部分配置中,TPG以二進(jìn)制計(jì)數(shù)器的模式工作,為BUT的m個(gè)輸入端提供隨機(jī)的測(cè)試模式。由于PLB的輸入要多于輸出,所以需要將一些PLB通過(guò)編程構(gòu)造成m位的計(jì)數(shù)器,在存儲(chǔ)器的操作模式中,存儲(chǔ)器被配置為隨機(jī)存儲(chǔ)器。TPG作為p字節(jié)(p<m)的狀態(tài)機(jī)產(chǎn)生標(biāo)準(zhǔn)的RAM測(cè)試序列。
圖1測(cè)試FPGA的ORCA結(jié)構(gòu)
不同的TPG一定要滿足BUT的需求,BUT的輸出要與ORA相符合,因此,TPG的數(shù)目要求為c,c同時(shí)也是與一個(gè)ORA相符合的PLB的輸出管腳數(shù)。ORA由一個(gè)LUT和一個(gè)觸發(fā)器組成,其中LUT用于從c 組BUT 相應(yīng)的輸出作比較,觸發(fā)器記錄第一次不匹配的情況。從觸發(fā)器輸出到LUT 輸入的反饋信息會(huì)在ORA第一次錯(cuò)誤記錄之后進(jìn)一步做比較。通常,一些ORA會(huì)在同一個(gè)PLB中實(shí)施,這依賴于PLB中相互獨(dú)立的LUT的個(gè)數(shù)。這里,如果LUT的輸入序列至少與一個(gè)PLB 是分離的,則認(rèn)為此LUT是獨(dú)立的。每一個(gè)TPG驅(qū)動(dòng)一組共n個(gè)BUT,每個(gè)BUT有m個(gè)輸入和k個(gè)輸出,則BUT中共有c*n*k個(gè)輸出與k 組n個(gè)ORA作比較,每個(gè)ORA監(jiān)控c個(gè)輸出,ORA的第i組接收n個(gè)BUT的第i個(gè)輸出。
例如,在ORCA結(jié)構(gòu)的PLB中,存在2個(gè)獨(dú)立的LUT,每個(gè)LUT 有5個(gè)輸入,由于反饋的存在,需令c=4。又由于每個(gè)PLB有18個(gè)輸入,TPG生成隨機(jī)測(cè)試向量所要求的觸發(fā)器的數(shù)量也是18。因?yàn)橐粋€(gè)PLB中有f=4個(gè)觸發(fā)器,所以需要5個(gè)PLB來(lái)構(gòu)成隨機(jī)TPG,其中只有4個(gè)PLB是用于產(chǎn)生RAM模式測(cè)試進(jìn)而構(gòu)成TPG狀態(tài)機(jī)的。最后,每個(gè)必須與ORA作比較的PLB中有k=5個(gè)輸出。表1對(duì)以上數(shù)據(jù)進(jìn)行了概括,并將Xilinx 4000與Altera Flex 8000系列中的FPGA各項(xiàng)參數(shù)進(jìn)行了對(duì)比,對(duì)FPGA這些結(jié)構(gòu)參數(shù)、TPG輸出信號(hào)計(jì)數(shù)n以及BIST所需步驟的數(shù)目進(jìn)行了分析。多數(shù)商業(yè)用途的FPGA進(jìn)行完全測(cè)試需兩個(gè)測(cè)試步驟,而一些其他規(guī)模的FPGA則需要三個(gè)步驟。
測(cè)試實(shí)施
在測(cè)試實(shí)施階段利用故障模擬來(lái)評(píng)價(jià)不同BIST步驟中的故障覆蓋率。為ORCA結(jié)構(gòu)的PLB建立了一個(gè)完全的門級(jí)電路模型,包括代表基本輸入值的PLB配置,那些輸入值在每一階段是“固定”的。允許模擬影響配置位的stuck-at故障。LUT、FF和Output Mux三個(gè)模組中每一個(gè)的隨機(jī)測(cè)試用于檢測(cè)無(wú)法探查的故障(LUT中為3個(gè)故障,F(xiàn)F中為4 個(gè)故障),這些故障從故障目錄表中被移除。PLB中共2224個(gè)stuck-at門級(jí)故障,其中1538個(gè)在LUT中,440個(gè)在FF 中,224個(gè)在輸出MUX中,完全測(cè)試每個(gè)PLB共需9次這樣的配置結(jié)構(gòu)。對(duì)3個(gè)模組中每一階段所檢測(cè)出的新故障數(shù)目、檢測(cè)故障累積的總數(shù)及故障覆蓋率等故障模擬結(jié)果見(jiàn)表2。
表1FPGA結(jié)構(gòu)參數(shù)對(duì)比
表2PLB故障模擬測(cè)試結(jié)果
從表2中可以看出,第一階段為L(zhǎng)UT提供了一個(gè)完全的測(cè)試,而接著的5個(gè)階段檢測(cè)了FF中所有的故障,對(duì)輸出MUX所有的故障檢測(cè)需要9步。這9次配置結(jié)構(gòu)可以根據(jù)為三個(gè)模組中每一個(gè)而設(shè)定的模式來(lái)描述。一個(gè)ORCA輸出利用9*1 MUX來(lái)選擇4個(gè)LUT輸出中的任一個(gè),或者4個(gè)FF輸出的任一個(gè),也就是LUT在以快速加法器操作方式進(jìn)行工作。這9*1MUX證實(shí)了完全測(cè)試輸出MUX 塊的配置數(shù)量。
ORCA結(jié)構(gòu)的LUT有4個(gè)不同的操作模式:RAM、fast adder 、5 變量的LUT-based邏輯功能、4變量的LUT-based邏輯功能。它們?cè)赑LBBIST前4步中進(jìn)行測(cè)試,如表3所示。在RAM模式中,TPG被配置為產(chǎn)生標(biāo)準(zhǔn)RAM 測(cè)試序列,而在其他步驟中被配置為二進(jìn)制計(jì)數(shù)器。一旦LUT已經(jīng)在RAM模式下測(cè)試,余下的BIST步驟中,依靠LUT中的棋盤模式來(lái)確定LUT輸出的所有可能模式。FF有以下操作模式供選擇:1)FF/Latch;2)Set/Reset;3)falling edge/rising edge ofclock等,與這些選擇相關(guān)的數(shù)據(jù)太大,不易考慮。因此,可根據(jù)對(duì)PLB 門級(jí)電路模型的故障模擬來(lái)選擇。5 次配置對(duì)完全測(cè)試FF 模組是足夠的。
表3PLB BIST配置
從表3的后半部分可知FF 模組各種操作模式的不同選擇情況。在這9次BIST配置中,ORCA的典型應(yīng)用包括54%的連線資源可編程線段以及87%的PLB和LUT。盡管多數(shù)ORCA只需要2個(gè)測(cè)試階段,還需18次的配置結(jié)構(gòu)來(lái)測(cè)試所有的PLB。這18次配置結(jié)構(gòu)與通常應(yīng)用ORCA結(jié)構(gòu)測(cè)試的32次配置相比,結(jié)果比較令人滿意。
測(cè)試中遇到的問(wèn)題
路線資源的限制
作為偽隨機(jī)測(cè)試,PLB的測(cè)試包括PLB大多數(shù)的I/0管腳,但I(xiàn)C系列ORCA路由于資源有限,不能支持所有TPG輸出到BUT以及所有的BUT輸出到ORA。為解決這個(gè)問(wèn)題,基于偽隨機(jī)測(cè)試的準(zhǔn)則允許對(duì)每一次配置有一點(diǎn)“偏差”,只對(duì)在該階段確實(shí)用到的輸入采用隨機(jī)測(cè)試,并觀察其輸出。表3給出了每一步BIST所用到的PLB管腳數(shù)目,路線資源可以滿足系統(tǒng)要求。
缺少詳細(xì)的配置控制
在一般的應(yīng)用中,用戶只需要將FF的輸出與PLB的輸出相連,而不管是具體哪個(gè)輸出,這是特定的布線算法和路由算法決定的。在本方法中,為了得到完全的測(cè)試,必須保證每一個(gè)輸出矩陣依次與它的9個(gè)輸入(4個(gè)FF輸出,4個(gè)LUT輸出,1個(gè)加法器進(jìn)位)相連,因此有一種與這9次配置都不同的選擇。但是CAD工具不允許用戶控制輸出的多路復(fù)用器(用戶模式下沒(méi)有輸出多路開(kāi)關(guān)),因此,解決方法是修改中間的設(shè)計(jì)文件或者配置位流,來(lái)控制輸出的多路輸出選擇。
結(jié)語(yǔ)
本文方法的最大優(yōu)點(diǎn)是不需專用測(cè)試儀器,只需要觀察測(cè)試響應(yīng)檢驗(yàn)電路ORA的輸出即可,因此所需輸入、輸出單元少,故障覆蓋率高,不可測(cè)故障較其他方法大大降低。實(shí)驗(yàn)數(shù)據(jù)表明,本方法的測(cè)試結(jié)果令人滿意。
來(lái)源:零八我的愛(ài)0次