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