解維坤,陳 龍,黃 晉,肖艷梅
(1.中國電子科技集團公司第五十八研究所,江蘇無錫 214035;2.江南大學物聯(lián)網(wǎng)工程學院,江蘇無錫 214122)
現(xiàn)場可編程門陣列(FPGA)已成為當前電子系統(tǒng)中普遍采用的核心數(shù)字芯片之一。超大容量的FPGA產(chǎn)品在新一代主流系統(tǒng)中的使用越來越多,其質(zhì)量及可靠性要求越來越高,對FPGA測試的需求越來越大。隨著FPGA的規(guī)模發(fā)展到千萬門級甚至是億門級,配置碼越來越大,一段配置碼可高達數(shù)百兆,完成一款FPGA測試往往需要成百上千段配置碼,測試數(shù)據(jù)量非常龐大。
數(shù)量巨大的測試向量會帶來很多問題。首先,測試系統(tǒng)需要非常大的向量深度來存儲這些向量;其次,F(xiàn)PGA配制過程所占的時間比重越來越大,造成測試成本急劇增加。FPGA測試壓縮技術能夠有效地減少測試數(shù)據(jù)量,也能夠降低對測試系統(tǒng)向量深度和數(shù)據(jù)傳輸通道的需求,還可以減少測試時間,降低測試功耗,提高測試效率。
目前,測試壓縮技術主要集中在大規(guī)模數(shù)字集成電路的ATPG壓縮編碼算法和可測性設計方面,如文獻[1]~[7]介紹了一些測試激勵和測試響應壓縮編碼算法以及SOC的內(nèi)建自測試(BIST)測試壓縮結(jié)構等,這些測試壓縮方法都需要在待測芯片內(nèi)部增加解壓縮電路。本文主要從FPGA的配置碼流生成和配置加載方面研究FPGA的測試壓縮方法,不需要在芯片內(nèi)部增加解壓縮電路[1-7]。
壓縮測試可以有效地減少數(shù)字電路測試向量體積和測試時間,從而降低芯片的測試成本。傳統(tǒng)的測試壓縮思路如下:測試激勵向量經(jīng)壓縮后,通過測試設備傳送到芯片的解碼電路;解碼電路解碼還原出原始測試向量,施加到待測電路完成測試;測試響應再通過響應壓縮電路壓縮后傳送到自動測試設備上完成比較。測試壓縮體系結(jié)構原理如圖1所示[1]。
圖1 測試壓縮體系結(jié)構原理圖
測試數(shù)據(jù)包括測試激勵和測試響應,因此測試數(shù)據(jù)的壓縮技術也分為測試激勵壓縮和測試響應壓縮兩大類。測試激勵壓縮包含基于編碼、廣播式、邏輯變換等方法。測試響應壓縮根據(jù)壓縮電路特性的不同可有多種分類,如空間壓縮與時間壓縮、電路相關壓縮與電路無關壓縮、線性與非線性壓縮以及組合壓縮與時序壓縮等。
不同于一般數(shù)字集成電路,F(xiàn)PGA的測試需要先進行配置然后再測試,對FPGA進行完整測試需要經(jīng)過反復多次“配置-測試”過程,F(xiàn)PGA的測試時間主要發(fā)生在配置上。隨著FPGA規(guī)模的增大,F(xiàn)PGA內(nèi)部集成多種IP,想要完成全部覆蓋的測試需要越來越多的測試用例,縮短配置時間可以有效提高整個測試效率。配置時間的長短主要由配置下載頻率和配置位流大小決定,在配置頻率固定的情況下,減少配置位流大小可以有效縮短配置時間。FPGA的測試壓縮方法主要從配置位流壓縮和加載角度開展研究。
FPGA的配置過程是將FPGA設計軟件生成的位流文件下載到FPGA中的過程,配置時間的長短由配置速度和位流文件大小決定。
位流是表示FPGA配置信息的一種形式,是由FPGA開發(fā)軟件根據(jù)設計生成的配置信息。位流以32位的二進制數(shù)表示一個字,41個字組成一幀數(shù)據(jù)。位流以位流文件形式下載到FPGA中,位流文件是位流生成器生成的一種ACSII編碼格式的文件,由文件頭、數(shù)據(jù)幀以及文件尾構成,其結(jié)構如圖2所示。圖2中TYPE000代表互連和BLOCK配置信息,TYPE001代表BRAM初始化內(nèi)容。位流文件樣式如圖3所示。
圖2 位流文件構成
圖3 位流文件樣式
配置過程是通過幀地址來寫入幀數(shù)據(jù),每一個幀地址都對應一幀數(shù)據(jù)。正常配置模式是根據(jù)器件BLOCK的順序連續(xù)寫入幀數(shù)據(jù),在開頭的部分直接指定要寫入字的個數(shù),從幀地址0開始按照幀地址順序,遍歷完成整個芯片的配置過程,配置順序如圖4所示,先寫Type000,后寫Type001,在每一個Type中先寫上半部分,后寫下半部分,然后按行寫入幀數(shù)據(jù)。
圖4 配置流程圖
在FPGA配置時鐘頻率固定的情況下,可以通過減少配置位流文件的大小來提高配置速度。傳統(tǒng)FPGA的配置是根據(jù)幀地址順序配置的,配置位流文件大小由芯片規(guī)模決定。本文所述位流壓縮算法,提出一種多幀寫位流壓縮方式,通過統(tǒng)計FPGA中幀內(nèi)容相同的幀放在一起進行配置,幀內(nèi)容相同的幀中先以普通模式配置第一幀,隨后以壓縮模式配置剩余幀。這種壓縮方式的壓縮比通??梢赃_到80%以上,可以有效縮小配置位流文件大小,提高配置速度,并且不需要在芯片內(nèi)部實現(xiàn)解壓縮電路。
多幀寫的原理是以行為單位,統(tǒng)計一行中配置幀數(shù)據(jù)相同的幀,將這些幀內(nèi)容相同的幀放在一起配置,而不是嚴格按照幀地址順序配置。位流壓縮的原理如圖5所示,圖中所示幀地址和幀數(shù)據(jù)只是為了便于顯示說明,并不代表實際內(nèi)容。首先正常配置幀內(nèi)容為0XAAAAAAAA的幀地址00000000,然后以壓縮模式配置(多幀寫)該行剩余所有幀內(nèi)容為0XAAAAAAAA的幀地址。相對于正常配置每幀需要配置41個字,壓縮模式除了首次配置外,剩余為多幀寫模式,多幀寫模式下每幀寫只需要4個字。所以對于一些配置幀內(nèi)容有比較多相同的用例,可以極大地減小配置文件的大小,縮短配置時間,提高配置速度,從而提高測試效率。
圖5 位流壓縮原理圖
FPGA測試壓縮還可以從ATE的角度采用X模式(X4/X8)或Multiport方式進行測試壓縮,進一步壓縮測試向量長度,縮短加載時間,提高測試效率。
利用ATE加載配置碼時,通常是一個周期加載1行(最大32 bit)配置向量,通過Timer X8模式,將8行向量壓縮成一行,向量長度壓縮了8倍,可以使FPGA配置pattern裝載時間大大縮短。圖6為ATE的X模式示意圖[8]。
圖6 基于ATE的X模式示意圖
V93000測試加載向量時會將全部定義的管腳進行空間分配,由于FPGA的管腳多(往往高達1000 PIN以上),但配置碼只需要用到部分管腳,這樣每個配置碼的向量大小裝載在機器里會自動變大,影響裝載和測試速度。通過圖7中Multiport(多種管腳分組)的方法可以將需要用到的管腳單獨分成一組,進行相應的設置后,裝載向量時會關聯(lián)到單獨定義的組,這樣向量大小就會大大縮小,明顯提高了向量裝載和測試速度。
圖7 Multiport方法示意圖
為了驗證FPGA測試壓縮方法的使用效果,本文以Xilinx公司Virtex-5系列FPGA-XC5VLX155T為例進行測試驗證。XC5VLX155T是一款典型的千萬門級FPGA,系統(tǒng)門數(shù)1550萬門,封裝管腳達到1738 PIN。測試過程中,分別選取一段不壓縮和壓縮的LVTTL電平模式配置碼對XC5VLX155T進行配置時間的測試。
不采用位流壓縮、基于ATE的X模式和Multiport方式進行測試時,一段LVTTL配置碼的位流長度為43042304位(詳見圖3第7行bit數(shù)),文件大小43 MB左右。利用ATE在系統(tǒng)快速配置方法,采用32位從并模式對電路進行配置,配置時間為176.893 ms。實驗數(shù)據(jù)如圖8所示。
圖8 不采用壓縮實驗的數(shù)據(jù)
采用位流壓縮、基于ATE的X模式和Multiport方式進行測試時,利用ATE在系統(tǒng)快速配置方法,采用32位從并模式對電路進行配置,一段LVTTL配置碼的配置時間為49.596 ms,實驗數(shù)據(jù)如圖9所示。
圖9 采用壓縮實驗的數(shù)據(jù)
可見,通過測試壓縮僅一段配置碼配置時間就縮短了127.297 ms。對FPGA芯片XC5VLX155T進行完整的測試通常需要兩百多段配置碼,單顆電路測試時間至少可節(jié)省25.5 s。另外,若不進行測試壓縮,需要占用更多的測試系統(tǒng)向量空間,一個測試程序往往只能加載幾十段配置碼,兩百多段配置碼需要多個測試程序,這樣便需要多次測試,大大降低了測試效率。FPGA測試壓縮可降低對測試系統(tǒng)向量空間的需求,縮短了測試時間,提高了測試效率。
本文主要介紹了壓縮測試和FPGA配置原理,并從位流壓縮和向量加載角度出發(fā),提出了一些縮短FPGA配置時間和提高測試效率的FPGA測試壓縮方法,并分別通過壓縮和不壓縮方式對Xilinx公司Virtex-5系列FPGA XC5VLX155T進行測試配置驗證。實踐證明,文中提到的FPGA測試壓縮方法可降低對測試系統(tǒng)向量空間的需求,大大縮短FPGA的測試配置時間并提高測試效率,該方法對其他類型數(shù)字電路的測試也有一定借鑒作用。
參考文獻:
[1]韓銀和.數(shù)字電路測試壓縮方法研究[J].中國科學院研究生院學報,2007:848-849.
[2]韓銀和,李曉維.數(shù)字電路的測試壓縮方法[J].中國計算機學會通訊,2007:47-55.
[3]徐衛(wèi)林.集成電路測試壓縮方法研究[C].全國電工理論與新技術學術年會2007論文集,2007:75-77.
[4]李建新,吳孝銀.測試數(shù)據(jù)編碼壓縮技術研究[J].宿州學院學報,2010:31-33.
[5]陳田,梁華國.基于優(yōu)化編碼的LFSR重播種測試壓縮方案[J].計算機研究與發(fā)展,2012,49(2):443-451.
[6]劉娟,詹文法.數(shù)據(jù)塊相容性統(tǒng)計的測試數(shù)據(jù)壓縮方案[J].計算機工程與應用,2013,49(22):26-28.
[7]N Sitchinava,S Samaranayake,R Kapur,E Gizdarski,F C Neuveux,T W Williams.Changing the scan enable during shift[C].In Proceedings of IEEE VLSI Test Symposium,2004∶73-78.
[8]Advantest.Advantest V93000 SOC Basic User Training Rev.7.2.2[P].2014.