<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)TE的FPGA測試方法

基于A(yíng)TE的FPGA測試方法

作者: 時(shí)間:2017-06-06 來(lái)源:網(wǎng)絡(luò ) 收藏
1 引言

隨著(zhù)集成電路技術(shù)的發(fā)展,現場(chǎng)可編程門(mén)陣列FPGA(Field Programmable Gate Array)器件的應用越來(lái)越廣泛,其測試技術(shù)也得到了廣泛重視和研究。FPGA的測試可分為面向制造的測試過(guò)程(MTP)和面向應用的測試過(guò)程(ATP)兩類(lèi)。MTP主要是從制造商的角度來(lái)測試,測試成本主要體現在測試向量集長(cháng)度所決定的測試時(shí)間的費用上。MTP主要針對可編程邏輯塊(CLB)、輸入輸出單元(10B)、可編程連線(xiàn)(PI)及編程用的SRAM等進(jìn)行測試。ATP是在應用級上的測試,也就是把FPGA配置為特定的功能進(jìn)行測試,具有很強的針對性,測試過(guò)程相對簡(jiǎn)單。國內的研究大多集中在MTP,且主要用于自主搭建的測試系統,可移植性差。本研究基于J750測試系統用Xilinx 4010為研究對象,使用兩種簡(jiǎn)單的電路,即可完成對LUT、進(jìn)位邏輯、D觸發(fā)器的測試,而且修改方便,可移植性好,為FPGA的通用測試提供了一種方法切實(shí)可行的有效方法。

2可編程邏輯資源測試

2.1 可編程邏輯資源(CLB)

可編程邏輯功能塊實(shí)現FPGA中的邏輯功能,是FPGA的主要部件,Xilinx 4010 CLB的基本邏輯結構如圖1所示。從圖中可以看出,CLB主要是由兩個(gè)查找表(LUT),一個(gè)進(jìn)位邏輯,兩個(gè)D觸發(fā)器及一些多路選擇開(kāi)關(guān)組成。




2.2單個(gè)CLB邏輯資源的覆蓋
由于CLB能實(shí)現的邏輯功能較多,通過(guò)對CLB的一次編程來(lái)完全覆蓋其功能是不可能的,但窮盡每一種邏輯來(lái)驗證CLB的功能也是不可能的,因此我們根據CLB的邏輯結構設計幾種測試配置,能夠覆蓋CLB的大部分功能。對于4010來(lái)說(shuō),CLB的測試需覆蓋F函數G函數的RAM模式、LUT模式、進(jìn)位邏輯功能及D觸發(fā)器,至于多路選擇器,將其配制在這幾個(gè)模式里即可。因此,實(shí)現對CLB的測試.將CLB分別配置成RAM模式和計數器模式,可基本覆蓋CLB的邏輯資源,如圖2、圖3所示。其中紅線(xiàn)為配置后的電路,綠線(xiàn)為沒(méi)有配置到的部分。





從圖2可以看出,將CLB配置成RAM模式,實(shí)現了F函數、G函數的RAM功能(由于ROM模式包含在RAM模式中,因此不用再單獨測試ROM模式),覆蓋了除進(jìn)位邏輯和D觸發(fā)器外的其他邏輯單元。

從圖3可以看出,將CLB配置成計數器模式,實(shí)現了F函數和G函數的LUT功能,覆蓋進(jìn)位邏輯和D觸發(fā)器。

綜上所述,用這兩種電路,可以覆蓋CLB中除多路選擇器外的所有邏輯資源,基本覆蓋CLB的輸入輸出。因此,用這兩種電路可以實(shí)現對CLB的測試。

2.3 CIB陣列的測試配置

由于FPGA中CLB都是規則排列的,4010為20*20個(gè)CLB。為了提高測試效率,減少對CLB的編程次數,需要合理配置CLB。由于IOB資源的限制,不可能一次覆蓋所有的CLB單元,需要進(jìn)行多次配置,直至測完所有的CLB。由于每一次測試CLB的數目受限于CLB的配置和IOB的數目,因此CLB測試的重點(diǎn)就集中在CLB的配置,即如何合理配置CLB電路,達到既能覆蓋電路的大部分功能,又減少了編程次數。這里,通過(guò)將FPGA配置成總線(xiàn)緩沖器,一次即可覆蓋390個(gè)CLB,如圖4所示。從下圖可以看出,只需2次配置即可完成CLB陣列RAM功能的測試,第二次配置時(shí),在第一次配置的基礎上手工修改布局后自動(dòng)布線(xiàn)即可。圖中黃方塊即為配置到的CLB模塊,白塊為沒(méi)有配置到的CLB模塊。

將FPGA配置成計數器,其測試速度取決于計數器的位數,位數越高,占用的CLB資源越多,配置次數就會(huì )越少,但測試時(shí)間會(huì )呈指數增長(cháng),因此,需要在測試時(shí)間和計數器位數上進(jìn)行合理選擇。經(jīng)過(guò)計算,我們選擇用22位計數器來(lái)配置CLB陣列,其布局布線(xiàn)后的結果如圖5所示。從該圖可以看出,這種配置方式僅僅占用16個(gè)CLB,25個(gè)IOB,為了提高測試速度.可以將n個(gè)計數器放置在一個(gè)FPGA中,進(jìn)行并行測試,這樣測試速度可以提高n倍。圖5所示的就是4個(gè)22位計數器配置在一個(gè)FPGA中布局布線(xiàn)后的結果。

按照圖5所示,共需要10次配置就可完成對CLB進(jìn)位邏輯、D觸發(fā)器及LUT功能的測試。在測試時(shí)只要給完整的測試碼,故障覆蓋率即可達到98%以上。





3基于A(yíng)TE的FPGA測試

目前測試FPGA一般有兩種手段:一種是自主研制測試系統,功能應包括配置FPGA、加載測試向量、讀取測試響應等。該方法往往投資大,耗時(shí)長(cháng),測試精度難以保證,而且研制出來(lái)的測試平臺可移植性差,只能用于研究和驗證。另一種手段是用ATE來(lái)測試FPGA,先對]FPGA進(jìn)行配置,然后對配置成的電路進(jìn)行測試。這樣可以在同一個(gè)操作流程中完成FPGA芯片的多次配置一測試過(guò)程,減少操作環(huán)節,提高FPGA芯片的測試效率,能夠實(shí)現FPGA芯片的產(chǎn)業(yè)化測試。目前商用ATE的性能不斷提高,本文以Teradyne應用最為廣泛的J750為測試平臺,該機測試管腳數可達1024個(gè),測試向量的存儲空間大,測試頻率可以達到100MHz,完全能夠滿(mǎn)足市場(chǎng)上多數FPGA的測試要求。要快速有效的開(kāi)發(fā)FPGA的測試程序,就要解決的難題是如何利用ATE對FPGA進(jìn)行配置,將FPGA的配置文件轉換成測試系統可執行的測試向量。

3.1 FPGA的配置過(guò)程

FPGA的配置是加載設計規定的編程數據到一個(gè)或多個(gè)器件的運行過(guò)程,以定義器件內部功能塊和其互連的功能。Xilinx 4010器件的加電配置過(guò)程有四個(gè)主要的步驟:清除配置存儲器、初始化、配置和啟動(dòng)。用ATE對FPGA進(jìn)行在線(xiàn)配置主要采用從串模式,其配置過(guò)程的時(shí)序要求如下:芯片供電穩定后,進(jìn)入配置前的準備狀態(tài),INIT端口輸出低電平,時(shí)間為T(mén)por;INIT管腳變高再經(jīng)過(guò)Tlcck后,可以對芯片進(jìn)行配置,對CCLK和DIN管腳提供配置時(shí)鐘和配置數據信號,配置時(shí)鐘周期為T(mén)cclK,配置數據在CCIK的下降到來(lái)時(shí)給出。當所有配置數據被FPGA成功接受并且配置正確后,芯片開(kāi)始進(jìn)入Stan-uP進(jìn)程,輸出管腳DONE由低變?yōu)楦?,還應為CCLK提供至少六個(gè)周期的時(shí)鐘信號,并對DIN提供高電平信號。Start-up進(jìn)程結束后,不需再對CCLK和DIN提供信號,芯片的配置過(guò)程
完成。

3.2生成對FPGA進(jìn)行配置的測試向量

由FPGA的設計開(kāi)發(fā)工具生成的被測FPGA器件的配置文件為位流文件。位流文件的數據由起始碼和程序數據組成。起始碼包含起始序列位和被配置器件需要的配置數據位數的長(cháng)度計數,程序數據包含被配置器件的配置信息。從配置文件中提取配置信息,并進(jìn)行數據轉換,就得到DIN管腳的配置數據信號。根據FPGA配置要求,設置FPGA的CCIK、INIT、DONE等控制管腳的邏輯狀態(tài)。根據FPGA器件的配置過(guò)程對各管腳的時(shí)序要求,設置各個(gè)管腳的時(shí)序信息,得到配置過(guò)程的測試向量。這樣FPGA的配置過(guò)程就可以作為一項功能測試由ATE執行。

3.3測試配置實(shí)現的電路

完成配置過(guò)程的FPGA芯片具有一定的功能,其測試方法與其他數字集成電路的測試方法類(lèi)似,可以進(jìn)行直流參數測試和功能測試。在J750上測試FPGA時(shí),把配置也作為一個(gè)測試項,可以實(shí)現FP-GA的高速在線(xiàn)配置。配置完成后,對配置好的電路施加測試向量,完成測試過(guò)程。

4結論

本文以Xilinx 4010為例,用兩種電路實(shí)現了對CLB的測試,并在Teradyne商用ATE上成功實(shí)現快速有效的配置一測試。該測試方法和配置測試過(guò)程可移植性好、通用性強,對于實(shí)現FPGA的產(chǎn)業(yè)化測試具有重要的意義。



關(guān)鍵詞: ATEFPGA測試

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>