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