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