基于ATE的FPGA測試方法
隨著集成電路技術(shù)的發(fā)展,現(xiàn)場可編程門陣列FPGA(Field Programmable Gate Array)器件的應(yīng)用越來越廣泛,其測試技術(shù)也得到了廣泛重視和研究。FPGA的測試可分為面向制造的測試過程(MTP)和面向應(yīng)用的測試過程(ATP)兩類。MTP主要是從制造商的角度來測試,測試成本主要體現(xiàn)在測試向量集長度所決定的測試時間的費用上。MTP主要針對可編程邏輯塊(CLB)、輸入輸出單元(10B)、可編程連線(PI)及編程用的SRAM等進行測試。ATP是在應(yīng)用級上的測試,也就是把FPGA配置為特定的功能進行測試,具有很強的針對性,測試過程相對簡單。國內(nèi)的研究大多集中在MTP,且主要用于自主搭建的測試系統(tǒng),可移植性差。本研究基于J750測試系統(tǒng)用Xilinx 4010為研究對象,使用兩種簡單的電路,即可完成對LUT、進位邏輯、D觸發(fā)器的測試,而且修改方便,可移植性好,為FPGA的通用測試提供了一種方法切實可行的有效方法。
2可編程邏輯資源測試
2.1 可編程邏輯資源(CLB)
可編程邏輯功能塊實現(xiàn)FPGA中的邏輯功能,是FPGA的主要部件,Xilinx 4010 CLB的基本邏輯結(jié)構(gòu)如圖1所示。從圖中可以看出,CLB主要是由兩個查找表(LUT),一個進位邏輯,兩個D觸發(fā)器及一些多路選擇開關(guān)組成。
2.2單個CLB邏輯資源的覆蓋
由于CLB能實現(xiàn)的邏輯功能較多,通過對CLB的一次編程來完全覆蓋其功能是不可能的,但窮盡每一種邏輯來驗證CLB的功能也是不可能的,因此我們根據(jù)CLB的邏輯結(jié)構(gòu)設(shè)計幾種測試配置,能夠覆蓋CLB的大部分功能。對于4010來說,CLB的測試需覆蓋F函數(shù)G函數(shù)的RAM模式、LUT模式、進位邏輯功能及D觸發(fā)器,至于多路選擇器,將其配制在這幾個模式里即可。因此,實現(xiàn)對CLB的測試.將CLB分別配置成RAM模式和計數(shù)器模式,可基本覆蓋CLB的邏輯資源,如圖2、圖3所示。其中紅線為配置后的電路,綠線為沒有配置到的部分。
從圖2可以看出,將CLB配置成RAM模式,實現(xiàn)了F函數(shù)、G函數(shù)的RAM功能(由于ROM模式包含在RAM模式中,因此不用再單獨測試ROM模式),覆蓋了除進位邏輯和D觸發(fā)器外的其他邏輯單元。
從圖3可以看出,將CLB配置成計數(shù)器模式,實現(xiàn)了F函數(shù)和G函數(shù)的LUT功能,覆蓋進位邏輯和D觸發(fā)器。
綜上所述,用這兩種電路,可以覆蓋CLB中除多路選擇器外的所有邏輯資源,基本覆蓋CLB的輸入輸出。因此,用這兩種電路可以實現(xiàn)對CLB的測試。
2.3 CIB陣列的測試配置
由于FPGA中CLB都是規(guī)則排列的,4010為20*20個CLB。為了提高測試效率,減少對CLB的編程次數(shù),需要合理配置CLB。由于IOB資源的限制,不可能一次覆蓋所有的CLB單元,需要進行多次配置,直至測完所有的CLB。由于每一次測試CLB的數(shù)目受限于CLB的配置和IOB的數(shù)目,因此CLB測試的重點就集中在CLB的配置,即如何合理配置CLB電路,達到既能覆蓋電路的大部分功能,又減少了編程次數(shù)。這里,通過將FPGA配置成總線緩沖器,一次即可覆蓋390個CLB,如圖4所示。從下圖可以看出,只需2次配置即可完成CLB陣列RAM功能的測試,第二次配置時,在第一次配置的基礎(chǔ)上手工修改布局后自動布線即可。圖中黃方塊即為配置到的CLB模塊,白塊為沒有配置到的CLB模塊。
將FPGA配置成計數(shù)器,其測試速度取決于計數(shù)器的位數(shù),位數(shù)越高,占用的CLB資源越多,配置次數(shù)就會越少,但測試時間會呈指數(shù)增長,因此,需要在測試時間和計數(shù)器位數(shù)上進行合理選擇。經(jīng)過計算,我們選擇用22位計數(shù)器來配置CLB陣列,其布局布線后的結(jié)果如圖5所示。從該圖可以看出,這種配置方式僅僅占用16個CLB,25個IOB,為了提高測試速度.可以將n個計數(shù)器放置在一個FPGA中,進行并行測試,這樣測試速度可以提高n倍。圖5所示的就是4個22位計數(shù)器配置在一個FPGA中布局布線后的結(jié)果。
按照圖5所示,共需要10次配置就可完成對CLB進位邏輯、D觸發(fā)器及LUT功能的測試。在測試時只要給完整的測試碼,故障覆蓋率即可達到98%以上。
3基于ATE的FPGA測試
目前測試FPGA一般有兩種手段:一種是自主研制測試系統(tǒng),功能應(yīng)包括配置FPGA、加載測試向量、讀取測試響應(yīng)等。該方法往往投資大,耗時長,測試精度難以保證,而且研制出來的測試平臺可移植性差,只能用于研究和驗證。另一種手段是用ATE來測試FPGA,先對]FPGA進行配置,然后對配置成的電路進行測試。這樣可以在同一個操作流程中完成FPGA芯片的多次配置一測試過程,減少操作環(huán)節(jié),提高FPGA芯片的測試效率,能夠?qū)崿F(xiàn)FPGA芯片的產(chǎn)業(yè)化測試。目前商用ATE的性能不斷提高,本文以Teradyne應(yīng)用最為廣泛的J750為測試平臺,該機測試管腳數(shù)可達1024個,測試向量的存儲空間大,測試頻率可以達到100MHz,完全能夠滿足市場上多數(shù)FPGA的測試要求。要快速有效的開發(fā)FPGA的測試程序,就要解決的難題是如何利用ATE對FPGA進行配置,將FPGA的配置文件轉(zhuǎn)換成測試系統(tǒng)可執(zhí)行的測試向量。
3.1 FPGA的配置過程
FPGA的配置是加載設(shè)計規(guī)定的編程數(shù)據(jù)到一個或多個器件的運行過程,以定義器件內(nèi)部功能塊和其互連的功能。Xilinx 4010器件的加電配置過程有四個主要的步驟:清除配置存儲器、初始化、配置和啟動。用ATE對FPGA進行在線配置主要采用從串模式,其配置過程的時序要求如下:芯片供電穩(wěn)定后,進入配置前的準備狀態(tài),INIT端口輸出低電平,時間為Tpor;INIT管腳變高再經(jīng)過Tlcck后,可以對芯片進行配置,對CCLK和DIN管腳提供配置時鐘和配置數(shù)據(jù)信號,配置時鐘周期為TcclK,配置數(shù)據(jù)在CCIK的下降到來時給出。當所有配置數(shù)據(jù)被FPGA成功接受并且配置正確后,芯片開始進入Stan-uP進程,輸出管腳DONE由低變?yōu)楦?,還應(yīng)為CCLK提供至少六個周期的時鐘信號,并對DIN提供高電平信號。Start-up進程結(jié)束后,不需再對CCLK和DIN提供信號,芯片的配置過程
完成。
3.2生成對FPGA進行配置的測試向量
由FPGA的設(shè)計開發(fā)工具生成的被測FPGA器件的配置文件為位流文件。位流文件的數(shù)據(jù)由起始碼和程序數(shù)據(jù)組成。起始碼包含起始序列位和被配置器件需要的配置數(shù)據(jù)位數(shù)的長度計數(shù),程序數(shù)據(jù)包含被配置器件的配置信息。從配置文件中提取配置信息,并進行數(shù)據(jù)轉(zhuǎn)換,就得到DIN管腳的配置數(shù)據(jù)信號。根據(jù)FPGA配置要求,設(shè)置FPGA的CCIK、INIT、DONE等控制管腳的邏輯狀態(tài)。根據(jù)FPGA器件的配置過程對各管腳的時序要求,設(shè)置各個管腳的時序信息,得到配置過程的測試向量。這樣FPGA的配置過程就可以作為一項功能測試由ATE執(zhí)行。
3.3測試配置實現(xiàn)的電路
完成配置過程的FPGA芯片具有一定的功能,其測試方法與其他數(shù)字集成電路的測試方法類似,可以進行直流參數(shù)測試和功能測試。在J750上測試FPGA時,把配置也作為一個測試項,可以實現(xiàn)FP-GA的高速在線配置。配置完成后,對配置好的電路施加測試向量,完成測試過程。
4結(jié)論
本文以Xilinx 4010為例,用兩種電路實現(xiàn)了對CLB的測試,并在Teradyne商用ATE上成功實現(xiàn)快速有效的配置一測試。該測試方法和配置測試過程可移植性好、通用性強,對于實現(xiàn)FPGA的產(chǎn)業(yè)化測試具有重要的意義。
評論