• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于部分重配置的FPGA內(nèi)嵌BRAM測試方法

      2017-01-16 08:40:40李圣華來金梅
      關(guān)鍵詞:耦合芯片測試

      李圣華,王 健,來金梅

      (復(fù)旦大學(xué) 專用集成電路與系統(tǒng)國家重點實驗室,上海 201203)

      基于部分重配置的FPGA內(nèi)嵌BRAM測試方法

      李圣華,王 健,來金梅

      (復(fù)旦大學(xué) 專用集成電路與系統(tǒng)國家重點實驗室,上海 201203)

      對于FPGA的內(nèi)嵌BRAM資源的測試,傳統(tǒng)的方法存在著故障覆蓋率不夠高,測試配置數(shù)目較多,以及測試時間較長的缺點.針對上述問題,本文提出了一種新的利用FPGA內(nèi)嵌ICAP核進(jìn)行片內(nèi)自動部分重配置功能來實現(xiàn)對FPGA內(nèi)嵌BRAM核的內(nèi)建自測試方法,且無需額外的外接存儲單元.在已有方法的基礎(chǔ)上提高了對寫破壞故障、讀破壞故障、干擾耦合故障、寫破壞耦合故障、讀破壞耦合故障以及BRAM初始化功能故障的覆蓋,改進(jìn)算法使程序執(zhí)行周期數(shù)降低一半左右,同時將多個算法集成在同一個測試配置里來實現(xiàn)降低測試的完整配置數(shù),從而降低測試時間.測試結(jié)果表明,該方法在故障覆蓋率上可以達(dá)到100%,而且測試配置數(shù)可以降低至兩個完整配置,其中每個完整配置里包含13個算法的片內(nèi)自動部分重配置,實測得到總測試時間僅為131.216ms.

      現(xiàn)場可編程門陣列; 塊隨機(jī)存儲器; 內(nèi)建自測試; 部分重配置; ICAP

      隨著集成電路的發(fā)展,現(xiàn)場可編程門陣列(FPGA)在不斷擴(kuò)大可編程邏輯陣列的同時,內(nèi)嵌的各種可編程知識產(chǎn)權(quán)(IP)核的規(guī)模也在不斷地擴(kuò)大,使得FPGA的性能越來越強(qiáng)大.因此,如何對FPGA芯片的可編程邏輯陣列及IP核進(jìn)行完備測試成為一個重要課題.而塊隨機(jī)存儲器(Block RAM, BRAM)核作為FPGA內(nèi)最常用的IP核之一,如何測試其功能的正確性尤為重要.而在芯片測試中,測試時間和測試覆蓋率是最重要的兩個指標(biāo),它直接反映了測試的是否可行性和是否有效性.對于FPGA芯片的測試來講,由于其可配置性,因此測試時間主要受測試配置數(shù)目的影響,BRAM作為FPGA內(nèi)嵌的可配置IP核,尤為如此,降低其測試時間的瓶頸在于如何減小測試配置數(shù).

      本文提出的測試方法是針對Xilinx FPGA芯片的內(nèi)嵌BRAM,對于Xilinx FPGA內(nèi)嵌BRAM來說,可以根據(jù)需要配置成不同的模式[1].根據(jù)FPGA內(nèi)嵌BRAM可配置的模式以及靜態(tài)隨機(jī)存儲器(Static RAM, SRAM)的結(jié)構(gòu),將BRAM中可能出現(xiàn)的故障分為以下7種,分別為SRAM故障、雙端口讀寫故障、位寬模式故障、錯誤檢查和糾正編碼(Error Correcting Code, ECC)功能故障、串聯(lián)(cascade)功能故障、先進(jìn)先出(First In First Out, FIFO)功能及標(biāo)志位故障、初始化功能故障[1].其中SRAM故障又可細(xì)分為地址譯碼故障(AF)、固定型故障(SAF)、開路故障(SOF)、轉(zhuǎn)換故障(TF)、寫破壞故障(WDF)、讀破壞故障(DRDF)、倒置耦合故障(CFin)、等冪耦合故障(CFid)、狀態(tài)耦合故障(CFst)、干擾耦合故障(CFdst)、寫破壞耦合故障(CFwd)、讀破壞耦合故障(CFdrd)[2].

      對于FPGA內(nèi)嵌BRAM核的測試,已有較多文獻(xiàn)給出了測試方法.為了在保證故障覆蓋率的前提下降低測試配置數(shù)以降低測試時間,有些文獻(xiàn)采用了部分重配置技術(shù)[3,4].如在文獻(xiàn)[5]中,在覆蓋SRAM故障時采用了March LR算法[6],可以覆蓋地址譯碼故障、固定型故障、開路故障、轉(zhuǎn)換故障、耦合故障(其中包括全部倒置耦合故障、等冪耦合故障、狀態(tài)耦合故障及部分干擾耦合故障),同時,還增加配置數(shù)覆蓋了BRAM的雙端口讀寫功能、多種位寬模式、cascade功能、ECC功能及FIFO功能等可能出現(xiàn)的故障,故障覆蓋率較高,最終共使用了5個完整配置,輔以14個部分配置完成對Xilinx Virtex-5 FPGA的測試,但仍存在沒有覆蓋到的故障,如SRAM故障中的寫破壞故障、讀破壞故障及部分耦合故障,BRAM功能中的初始化功能故障也未進(jìn)行測試,同時仍舊存在著測試配置數(shù)過多,測試時間長的問題.文獻(xiàn)[7]使用改進(jìn)的March C-算法,用了一個完整配置完成對Virtex-4系列FPGA內(nèi)嵌BRAM的測試,未使用部分重配置技術(shù),僅能對部分SRAM故障進(jìn)行了檢測,對BRAM的其他功能如雙端口讀寫功能、多種位寬模式、cascade功能、ECC功能、FIFO功能及初始化功能均沒有進(jìn)行測試,測試的故障覆蓋率較低.

      為了解決上述問題,本文在文獻(xiàn)[5]的基礎(chǔ)上,提出了一種新的利用FPGA內(nèi)嵌ICAP核進(jìn)行片內(nèi)自動部分重配置功能來實現(xiàn)對FPGA內(nèi)嵌BRAM核的內(nèi)建自測試方法.

      1 測試方法

      本文提出的測試方法主要包含兩大部分: 其一為提升故障覆蓋算法部分,采用文獻(xiàn)中的March SS算法增加對寫破壞故障、讀破壞故障、干擾耦合故障、寫破壞耦合故障以及讀破壞耦合故障的覆蓋,同時增加初始化功能測試算法對BRAM初始化功能故障進(jìn)行覆蓋;其二為降低測試時間部分,通過減少測試完整配置數(shù)來達(dá)到降低測試時間的目的.

      1.1 提升故障覆蓋

      為了實現(xiàn)對上文中提到的故障模型的全覆蓋,本文在文獻(xiàn)[5]的基礎(chǔ)上,進(jìn)行了一定的改進(jìn),沿用了文獻(xiàn)[5]中March s2pf-、March d2pf、MATS+、cascade MATS+、ECC及FIFO的測試算法,采用March SS算法取代了March LR算法,增加了SRAM故障的覆蓋,同時增加了對初始化功能故障的測試.完整的測試一共采用了14個測試算法,下面將對設(shè)計中采用的14個測試算法進(jìn)行說明.

      第1個測試算法是用于覆蓋初始化功能故障的初始化測試算法,此時BRAM配置為36bit模式.算法步驟是在配置時給每塊BRAM初始化一定的數(shù)據(jù),并且保證每塊BRAM寫入的數(shù)據(jù)一致,在程序執(zhí)行時依次將BRAM中的數(shù)據(jù)讀出相互比較并與正確值進(jìn)行比較看是否存在故障.該算法的時間復(fù)雜度為O(n).

      第2個測試算法是March SS算法,此時BRAM配置成36bit模式,用于覆蓋上文提到的故障模型中的SRAM故障以及36bit位寬模式下的BRAM讀寫功能,該算法的時間復(fù)雜度為O(22n).文獻(xiàn)[5]中采用的是March LR算法來覆蓋SRAM故障,然而March LR算法對SRAM故障中的寫破壞故障、讀破壞故障、寫破壞耦合故障以及讀破壞耦合故障故障無法檢測,對干擾耦合故障無法做到100%的覆蓋,相反地,March SS算法可以做到對這些故障的完全檢測,因此在本設(shè)計中用March SS算法取代March LR算法來覆蓋SRAM故障.在開發(fā)該測試算法時,還需要進(jìn)行背景數(shù)據(jù)序列(Background Data Sequence, BDS)變換[8],這是因為將算法擴(kuò)展到36bit位寬模式時,需要考慮字內(nèi)耦合故障.

      第3~14個測試算法分別是用于覆蓋上文提到的故障模型中的雙端口讀寫故障、位寬模式故障、cascade功能故障、ECC功能故障、FIFO功能及其標(biāo)志位故障算法,在算法上與文獻(xiàn)[5]是一致的,采用了March s2pf-和March d2pf算法[9]、MATS+算法、March X算法對這些故障進(jìn)行測試.其中March s2pf-算法的時間復(fù)雜度為O(14n),March d2pf算法的時間復(fù)雜度為O(9n),MATS+算法的時間復(fù)雜度為O(5n),March X算法的時間復(fù)雜度為O(6n).

      使用本文提出的算法雖然會導(dǎo)致測試電路硬件開銷增大,增大的規(guī)模占FPGA規(guī)模的0.2%左右,由于在進(jìn)行測試時,F(xiàn)PGA芯片內(nèi)的其他邏輯資源均是閑置的,均可以用來構(gòu)建測試電路,因此測試電路帶來的硬件開銷的增大不會對FPGA內(nèi)嵌BRAM測試產(chǎn)生太大影響.

      1.2 降低測試時間

      在芯片測試中,測試時間一般可由兩部分組成: 其一為下載配置時間,其二為程序執(zhí)行時間.對于BRAM來講,下載配置時間一般都大于程序執(zhí)行時間,因此需要降低測試時間,需要從降低下載配置時間方面來考慮,而影響下載配置時間的因素主要需要配置的位流.在本設(shè)計中,由于測試算法對BRAM進(jìn)行測試時,各個算法電路之間存在可通用的模塊,因此我們在設(shè)計中使用Xilinx內(nèi)置的ICAP核實現(xiàn)多個測試算法之間的片內(nèi)部分重配置,將多個算法集成在同一個測試配置里來實現(xiàn)降低測試的完整配置數(shù),從而降低測試時間.通用模塊的選取原則是將測試向量產(chǎn)生,測試輸出比較以及其余與待測BRAM無關(guān)的邏輯均置為通用模塊,僅僅將需要測試的BRAM置為部分重配置模塊,這是因為不同的測試算法對應(yīng)的BRAM的工作模式不一致,而工作模式的切換僅能通過重新配置來實現(xiàn),經(jīng)過試驗發(fā)現(xiàn),待測BRAM部分產(chǎn)生的配置位流僅占完整配置位流的8.7%,與完整配置相比,理論上部分重配置單個算法配置時間可以降低91.3%.

      本文中采用的是用ICAP核來實現(xiàn)對FPGA的片內(nèi)自動部分重配置.為了提高本設(shè)計中測試技術(shù)的通用性,解決在進(jìn)行ICAP部分重配置時需要額外的外接存儲單元存儲部分重配置位流的缺陷,本文中采用了重布置技術(shù)[10,11],將待測BRAM切割分類,構(gòu)建部分重配置模塊,減小單個部分重配置模塊配置位流的大小,從而實現(xiàn)將最終的部分重配置位流存儲在片內(nèi)的目的,因為片內(nèi)存儲空間是有限的.要實現(xiàn)這一目的,需要保證這所有的部分重配置模塊的結(jié)構(gòu)完全一致,與相鄰區(qū)域的連線也需要保持一致,為此我們在設(shè)計時在每個重配置模塊的兩端加入了BUF模塊.相比于其他接口(比如SelectMap)從外部存儲(比如Flash)讀取數(shù)據(jù),使用ICAP從BRAM讀取數(shù)據(jù)不僅可以提高測試方法的通用性和靈活性,同時ICAP從BRAM讀取數(shù)據(jù)速度上的優(yōu)勢也可以降低配置時間.

      1.3 測試電路結(jié)構(gòu)

      在本節(jié)中將對本設(shè)計中提出的測試算法用電路實現(xiàn).在本設(shè)計中,由于采用了ICAP片內(nèi)部分重配置的方式來實現(xiàn),測試電路由TPG,ORA,PR_BRAM,BUF,ICAP_ctl及位流存儲模塊(bit_mem)組成.各個模塊連接關(guān)系見圖1.這些模塊中,BUF模塊與PR_BRAM模塊均有多個,這是因為我們將待測BRAM劃分成了多個部分重配置模塊以使得單個部分重配置模塊的位流最小,而每個重配置模塊的兩側(cè)分別設(shè)計了一個BUF模塊,用于避免部分重配置模塊與其他靜態(tài)模塊的直接連線,以實現(xiàn)所有重配置模塊產(chǎn)生的重配置位流只存在地址的差異.下面將逐個對這些模塊進(jìn)行介紹.

      1.3.1 TPG模塊

      該模塊是測試向量產(chǎn)生模塊.在本設(shè)計中,由于該模塊不作為重配置模塊而是作為靜態(tài)模塊,也就是說在14個測試算法測試的過程中是無法進(jìn)行重配置的,而不同的測試算法對應(yīng)的測試向量不一樣,因此我們需要將整個測試流程的14個測試算法需要的測試向量全部集成在該模塊內(nèi),每執(zhí)行完一個測試算法后在進(jìn)行重配置下一個位流時通過選擇信號切換為相應(yīng)測試算法需要的測試向量.

      1.3.2 ORA模塊

      ORA是輸出響應(yīng)比較器,在本設(shè)計中為靜態(tài)模塊,將所有從待測BRAM中輸出的數(shù)據(jù)與正確的數(shù)據(jù)進(jìn)行比較.

      1.3.3 PR_BRAM模塊

      該模塊是待測BRAM模塊,作為本設(shè)計的部分重配置模塊.由于整塊芯片中有多列BRAM,首先我們將整個芯片的BRAM根據(jù)在芯片中的位置平分為上半?yún)^(qū)和下半?yún)^(qū).在對下半?yún)^(qū)BRAM進(jìn)行測試時,該區(qū)間內(nèi)的BRAM作為待測BRAM,而上半?yún)^(qū)的BRAM則用作位流存儲模塊,反之亦然.確定了待測BRAM后,我們將這些BRAM切割劃分為部分重配置模塊,在劃分時以行(row)為最小單位劃分部分重配置模塊,劃分原則為同列的每相鄰的4塊BRAM構(gòu)成一個部分重配置模塊,因為在這種劃分原則下得到的部分重配置模塊位流最小.

      1.3.4 BUF模塊

      該模塊是緩沖器模塊,在本設(shè)計中是靜態(tài)模塊,目的是為了保證所有的重配置模塊(即PR_BRAM模塊)的與其他靜態(tài)模塊的連接均一致.這樣可以實現(xiàn)所有重配置模塊產(chǎn)生的重配置位流只存在地址的差異,滿足重布置的要求,即以單個重配置模塊的位流來配置所有的重配置模塊.

      1.3.5 Bit_mem模塊

      該模塊是位流存儲模塊,該模塊是由不進(jìn)行測試的芯片半?yún)^(qū)的BRAM組成,用于在片內(nèi)存儲部分重配置時的位流,設(shè)計為靜態(tài)模塊.如果該模塊中的BRAM出現(xiàn)故障,將會導(dǎo)致某個待測BRAM的配置數(shù)據(jù)出錯,從而被判定為測試出現(xiàn)故障,因此在該情況下本文提出的方法依然是有效的.

      1.3.6 ICAP_ctl模塊

      該模塊是ICAP控制模塊,通過狀態(tài)機(jī)控制ICAP核來實現(xiàn)測試算法的重配置,是靜態(tài)模塊.在該模塊的設(shè)計中,最重要的是實現(xiàn)14個測試算法之間的重配置流程,該過程的實現(xiàn)流程圖如圖2左側(cè)所示.其中,該流程中,“重配置下一算法”這一步驟由于是通過單個重配置模塊的位流通過ICAP來配置所有的重配置模塊,此過程的實現(xiàn)需要滿足一定的時序要求.具體流程如圖2右側(cè)流程圖所示,該部分是左側(cè)重配置下一算法步驟的細(xì)化.

      2 仿真分析

      針對本文中提出的測試方法,我們首先對該方法的功能正確性進(jìn)行了仿真,在14個測試算法的功能仿真驗證通過后,我們接著對這些測試算法對上文中提到的故障模型的覆蓋情況進(jìn)行了仿真,仿真的工具采用的是modelsim算法,方法是進(jìn)行故障注入,是指在設(shè)計用于測試算法仿真的BRAM實例時,通過硬件描述語言給BRAM實例人工注入一定的故障.故障注入后,我們用開發(fā)好的測試算法去測試已經(jīng)注入故障的BRAM,同時設(shè)立一個故障計數(shù)器,每檢測到一個故障,則計數(shù)器加1,依此來檢驗這些測試算法對故障的覆蓋情況,由于不同算法對故障的覆蓋情況不一樣,因此在對不同的算法進(jìn)行仿真時插入的故障也不同,如在仿真March SS算法時插入的是SRAM故障,如表1所示.

      表1 故障插入與仿真結(jié)果

      注: 檢測比例均為100%.

      從表1中,我們提到了每種故障的注入故障數(shù)目,這是根據(jù)上文中提到的故障模型,給每種類型注入一定數(shù)量的故障,選擇注入故障數(shù)目的依據(jù)是遍歷每類故障的所有情況,比如在仿真March SS算法時插入的37個SRAM故障中包含1個地址譯碼故障、2個固定型故障、2個開路故障、2個轉(zhuǎn)換故障、2個寫破壞故障、2個讀破壞故障、2個倒置耦合故障、4個等冪耦合故障、4個狀態(tài)耦合故障、8個干擾耦合故障、4個寫破壞耦合故障以及4個讀破壞耦合故障,已經(jīng)包含了所有的SRAM故障類型,其他故障的插入數(shù)目同理.要注意的是,初始化故障不作為本次仿真的對象,這是因為初始化數(shù)據(jù)是在位流下載配置時寫入的,無法對其進(jìn)行仿真,但是,后面進(jìn)行了實測驗證了該故障是可以被檢測的.使用這些注入了故障后的BRAM對算法進(jìn)行仿真,統(tǒng)計測試算法可以檢測的故障數(shù)目,其中March SS算法的仿真結(jié)果見圖3.在圖中,done信號是算法執(zhí)行完成信號,result信號為上文所說的故障計數(shù)器的輸出值,可以看出,result的值在done信號未拉高前從0逐漸變大,每檢測到一個故障則加一,因此我們只需檢查done信號拉高時,即算法執(zhí)行完畢時result的值即為該算法檢測到的故障數(shù)目.由此我們知道March SS算法對SRAM故障的檢測結(jié)果是37.

      3 上板測試

      我們在Virtex-4 XC4VLX200 FPGA[1]上實現(xiàn)了上述設(shè)計,最終的測試配置有兩個,分別為測試芯片上半?yún)^(qū)BRAM和芯片下半?yún)^(qū)BRAM.為了驗證這兩個測試配置是否完成了最初的設(shè)想,我們對其進(jìn)行了上板測試,測試主要分為兩部分內(nèi)容: 第一部分是功能的驗證,目的是驗證測試配置功能是否正確,與預(yù)期結(jié)果是否一致;第二部分為性能測試,目的是驗證本設(shè)計在測試時間方面的優(yōu)勢.測試平臺是Virtex-4 XC4VLX200開發(fā)板,使用的測試設(shè)備包括示波器、信號發(fā)生器等,如圖4所示.

      3.1 功能驗證

      首先進(jìn)行的是對該方法是否正確進(jìn)行測試驗證,通過將一定的內(nèi)部信號(如讀寫使能信號、地址信號、重配置相關(guān)信號等)引出通過示波器觀察,看是否與預(yù)期一致.在圖5中,我們觀察到,在測試算法執(zhí)行完后BIST_done拉高,并開始部分重配置,直至部分重配置完成后,RECONF_done信號拉高,BIST_done信號回到低電平,測試算法開始執(zhí)行,然后RECONF_done信號回到低電平,結(jié)合圖2,這兩個信號的跳轉(zhuǎn)變化與流程圖中的描述是一致的.Result信號一直維持在低電平表明本次測試沒有遇到錯誤,測試是通過的,Done信號一直維持在高電平也說明了這一點.

      為了進(jìn)一步觀察Addr3_0信號與Dout信號是否變化正確,我們隨機(jī)選取了一部分進(jìn)行放大與仿真結(jié)果進(jìn)行比較,如圖6和圖7所示,本段截取的是第四個測試算法March s2pf-的一部分,其中,圖6給出的是實測結(jié)果,圖7為相應(yīng)位置仿真結(jié)果.我們通過比較實測圖與仿真圖中的Addr3_0與Dout端口,通過比較,我們發(fā)現(xiàn)測試結(jié)果與仿真結(jié)果是一致的.

      以上結(jié)果說明了在無故障的情況下各個信號的變化是正常的,為了驗證有故障的情況,我們緊接著模擬了一個BRAM初始化故障,模擬的方法是在其中一塊BRAM的某個地址中寫入與其他BRAM相同位置不同的數(shù)據(jù),由于在初始化算法執(zhí)行時會讀出所有BRAM的值并進(jìn)行相互比較,因此寫入不同數(shù)據(jù)的那塊BRAM將被算法鑒定為故障,我們將觀察本測試算法是否檢測到這個模擬故障的存在.結(jié)果如圖8所示,我們發(fā)現(xiàn),一旦檢測該模擬的故障存在,result將會立即拉高,并持續(xù)到測試結(jié)束,我們可以通過觀察result的值來判斷最終的結(jié)果是否出故障.結(jié)合以上測試,我們的測試方法在FPGA芯片平臺上的功能是通過的.

      3.2 性能測試

      在功能測試通過的前提下,我們知道本設(shè)計中的測試方法是可行的,接下來我們首先對本設(shè)計在芯片上的實際測試時間進(jìn)行測試,然后對其進(jìn)行分析.

      3.2.1 實測數(shù)據(jù)

      表2 芯片實測數(shù)據(jù)

      注: 總測試時間為131.216ms.

      為了計算測試時間值,我們在設(shè)計中加入了一個靜態(tài)計數(shù)模塊,從第一個測試算法開始執(zhí)行開始計時,到最后一個測試算法執(zhí)行完畢后結(jié)束,并將計數(shù)值輸出,根據(jù)計數(shù)值結(jié)合計數(shù)的頻率可以計算出該測試用例(pattern)的測試時間.表2給出了兩個測試配置(1和2分別測試芯片上半?yún)^(qū)BRAM和下半?yún)^(qū)BRAM)在輸入頻率為33MHz的前提下的測試時間值.

      3.2.2 數(shù)據(jù)分析

      由于在文獻(xiàn)中并未給出其具體測試時間,無法直接進(jìn)行測試時間數(shù)據(jù)的比較,因此我們通過本節(jié)對測試時間的分析來說明本設(shè)計在測試時間上的優(yōu)勢.

      測試時間是由測試算法執(zhí)行時間和配置時間這兩部分組成的,在這兩部分中占主要的是配置時間.上文中提到文獻(xiàn)[7]和文獻(xiàn)[5]均提出了對FPGA內(nèi)嵌BRAM核的測試方法,但由于文獻(xiàn)[7]中提到的測試方法對較多的故障均沒有進(jìn)行覆蓋,因此我們與文獻(xiàn)[5]中的測試方法進(jìn)行比較.本文在文獻(xiàn)[5]的基礎(chǔ)上改進(jìn)了算法,提高了對寫破壞故障、讀破壞故障、干擾耦合故障、寫破壞耦合故障、讀破壞耦合故障以及BRAM初始化功能故障的覆蓋,同時將多個算法集成在同一個測試配置里來實現(xiàn)降低測試的完整配置數(shù),降低了測試時間.

      在配置時間方面,文獻(xiàn)[5]使用了5個完整配置及14個部分配置完成了測試(測試芯片為Virtex-5 XC4VLX30,F(xiàn)PGA的完整位流大小為1023Kb,14個部分配置的大小總和為376Kb).在本設(shè)計中,完成測試需要2個完成配置及26個部分配置(測試芯片為Virtex-4 XC4VLX200,F(xiàn)PGA的完整位流大小為6271Kb,部分配置大小的共和為12012 Kb).接著可以從算法時間復(fù)雜度的角度來對執(zhí)行時間進(jìn)行分析,本文中增加的March SS算法和初始化測試算法的算法時間復(fù)雜度分別為O(22n)和O(1n),根據(jù)算法的時間復(fù)雜度可以計算得出本論文測試方法總的程序執(zhí)行時間為244844個時鐘周期,而文獻(xiàn)[5]中的總的程序執(zhí)行時間為1113572個時鐘周期.雖然文獻(xiàn)[5]中測試的芯片與本設(shè)計中有所不同,但功能是一致的,惟一的區(qū)別是Virtex-5系列芯片的BRAM大小(36Kb)為Virtex-4內(nèi)嵌BRAM大小(18Kb)的兩倍,因此如將文獻(xiàn)[5]中的方法運用到本設(shè)計測試的芯片中,程序執(zhí)行時間將會降低一半左右,但即使如此,程序執(zhí)行時間也將達(dá)到556786個時鐘周期左右,超過了本設(shè)計中的程序執(zhí)行時間.在配置時間上,本設(shè)計僅需要2個完整配置及26個部分配置,相比于文獻(xiàn)[5]中5個完整配置及14個部分配置有較大提升.而且本文中采用了ICAP內(nèi)部自動部分重配置,無需手動進(jìn)行部分重配置,在靈活性上也優(yōu)于文獻(xiàn)[5].

      4 結(jié) 語

      本文提出了一種利用FPGA內(nèi)嵌ICAP核進(jìn)行片內(nèi)自動部分重配置功能來實現(xiàn)對FPGA內(nèi)嵌BRAM核的內(nèi)建自測試方法,該方法不僅在故障覆蓋率上可以達(dá)到100%,而且完成全部測試只需2個完整配置及26個部分配置,與已有方法相比,配置時間與程序執(zhí)行時間均有降低,從而降低了測試時間.并且該方法最終在FPGA芯片上實現(xiàn)并進(jìn)行了實驗驗證,證明了該方法的正確性,在輸入頻率為33MHz的情況下,總的測試時間僅為131.216ms.此外,該方法并不局限于本文中測試采用的芯片及BRAM模塊,可以進(jìn)一步用于其他型號的FPGA的BRAM核及其他IP核(如DSP核)的測試.

      [1] XILINX INC. Virtex-4 FPGA User Guide, 2008.[2016-3-27].http: ∥www.xilinx.com/.

      [2] HAMDIOUI S, VAN DE GOOR A J, RODGERS M. March SS: A test for all static simple RAM faults[C]∥Proc. of IEEE International Workshop on memory Technology, Design, and Testing. Bendor, France: IEEE Press, 2002: 95-100.

      [3] XILINX INC. Virtex-4 FPGA Configuration UserGuide, 2009.[2016-3-27].http: ∥www.xilinx.com/.

      [4] XILINX INC. Partial Reconfiguration User Guide, 2011.[2016-3-27].http: ∥www.xilinx.com/.

      [5] DAILEY J L, GARRISON B R, PULUKURI M.D,etal. Built-In Self-Test of embedded memory cores in Virtex-5 Field Programmable Gate Arrays[C]∥System Theory (SSST), 2011 IEEE 43rd Southeastern Symposium on Auburn. Alabama: IEEE Press, 2011: 220-225.

      [6] VAN DE GOOR A J, GAYDADJIEV G, HARMOLIK V,etal. March LR: A test for realistic linked faults[C]∥Proc. IEEE VLSI Test Symposium. Princeton, New Jersey: IEEE Press, 1996: 272-280.

      [7] GADDE P, NIAMAT M. FPGA memory testing technique using BIST[C]∥Midwest Symposium on Circuits & Systems. Columbus, Ohio: IEEE Press, 2013: 473-476.

      [8] VAN DE GOOR A.J, TLILI I B S. March tests for word-oriented memories[C]∥Proc. Design Automation and Test in Europe, Paris 1998 (DATA98). Paris, France: IEEE Press, 1998: 501-508.

      [9] HAMDIOUI S, VAN DE GOOR A.J. Efficient tests for realistic faults in dual-port SRAMs[J]. IEEE Transactions on Computers, 2002,51(5): 460-473.

      [10] DRAHONOVSKY T, ROZKOVEC M, NOVAK O. Relocation of reconfigurable modules on Xilinx FPGA[C]∥Design and Diagnostics of Electronic Circuits & Systems (DDECS), 2013 IEEE 16th International Symposium on. Karlovy Vary, Czech Republic. 2013: 175-180.

      [11] ICHINOMIYA Y, AMAGASAKI M, IIDA M,etal. Abitstream relocation technique to improve flexibility of partial reconfiguration[C]∥Proceedings of the 12th international conference on Algorithms and Architectures for Parallel Processing - Volume Part I. Fukuoka, Japan: IEEE Press, 2012: 139-152.

      Testing Method of BRAM in FPGA Based on Partial Reconfiguration

      LI Shenghua, WANG Jian, LAI Jinmei

      (StateKeyLaboratoryofASIC&System,FudanUniversity,Shanghai201203,China)

      When testing the BRAM resource in FPGA, the traditional BRAM testing method has many limitations, such as the fault coverage is not enough, the number of test patterns is too much, the testing time is long. To address the problems discussed above, an ICAP on-chip partial reconfiguration based is proposed to test the Block RAM using built-in self test, which is no need to add extra memory resource. Improve the algorithms based on the testing methods which are already exist, adding a Block RAM initial testing algorithm, enhance the coverage of write disturb fault, deceptive read destructive fault, disturb coupling fault, write disturb coupling fault, deceptive read destructive coupling fault and BRAM initial function fault, at the same time, reduce the clock cycles of testing algorithm in half. And we integrate all the algorithms into one test pattern to realize the purpose of reducing testing patterns, and then reduce the testing time. The experimental results show the method proposed in our article can make the fault coverage to 100%, and we reduce the test pattern number to two full configurations, and each configuration has 13 algorithms’ partial reconfiguration on chip. The testing time of our method on board testing is only 131.216 ms.

      FPGA; BRAM; built-in-self-test; partial reconfiguration; ICAP

      0427-7104(2016)06-0806-09

      2016-03-28

      李圣華(1992—),男,碩士研究生;來金梅,女,教授,通訊聯(lián)系人,E-mail: jmlai@fudan.edu.cn.

      TN 402

      A

      猜你喜歡
      耦合芯片測試
      非Lipschitz條件下超前帶跳倒向耦合隨機(jī)微分方程的Wong-Zakai逼近
      幽默大測試
      幽默大師(2020年11期)2020-11-26 06:12:12
      “攝問”測試
      “攝問”測試
      “攝問”測試
      芯片測試
      多通道采樣芯片ADS8556在光伏并網(wǎng)中的應(yīng)用
      基于“殼-固”耦合方法模擬焊接裝配
      大型鑄鍛件(2015年5期)2015-12-16 11:43:20
      求解奇異攝動Volterra積分微分方程的LDG-CFEM耦合方法
      非線性耦合KdV方程組的精確解
      漯河市| 太湖县| 松滋市| 太原市| 郸城县| 若尔盖县| 西华县| 昆明市| 丰台区| 湖北省| 大宁县| 名山县| 濮阳市| 神木县| 仙居县| 武夷山市| 古田县| 湖南省| 马鞍山市| 进贤县| 阳东县| 尼木县| 潞城市| 千阳县| 兴山县| 台北县| 桦甸市| 诸城市| 五家渠市| 巴林左旗| 平南县| 广平县| 张家口市| 成都市| 澳门| 托里县| 黄平县| 普洱| 屏南县| 乐平市| 申扎县|