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