張倩莉,于 芳,劉忠立,李 艷
(中國科學(xué)院微電子研究所,100029 北京)
應(yīng)用于FPGA測試的導(dǎo)航映射方法
張倩莉,于 芳,劉忠立,李 艷
(中國科學(xué)院微電子研究所,100029 北京)
針對目前FPGA廠商的EDA工具不對用戶提供專用芯片測試功能,提出一種可應(yīng)用于FPGA測試的導(dǎo)航映射方法.通過導(dǎo)航映射對FPGA底層硬件進(jìn)行完全可控操作,精確控制FPGA邏輯資源的使用,可以對FPGA邏輯資源進(jìn)行有針對性的測試,有效提高FPGA的測試覆蓋率,同時在用戶約束文件的指導(dǎo)下可以繞開FPGA硬件缺陷進(jìn)行編程,實(shí)現(xiàn)有效的FPGA軟件容錯功能.本文采用128個測試配置對FPGA進(jìn)行了驗(yàn)證,結(jié)果表明,利用導(dǎo)航映射方法可以得到良好的測試覆蓋率.
FPGA,用戶約束文件,導(dǎo)航,映射,測試
現(xiàn)場可編程門陣列(FPGA)自從問世以來,憑借其可配置重構(gòu)這一特性,已經(jīng)在各個領(lǐng)域得到了廣泛的應(yīng)用.今天的FPGA在結(jié)構(gòu)上更得到了廣泛的擴(kuò)充,更像是1個片上系統(tǒng)(System On a Chip),它可以包括混合信號 I/O(mixed signal IO),千兆赫茲收發(fā)器(Gigahertz transceivers),以及大量可配置的邏輯和用于輔助設(shè)計的軟件工具[1].由于FPGA結(jié)構(gòu)日益復(fù)雜,規(guī)模越來越大,內(nèi)部資源的種類日益豐富,致使對FPGA測試的難度也越來越高.
FPGA測試方法的特殊挑戰(zhàn)在于[1]:1)FPGA測試方法要與終端應(yīng)用有相同相關(guān)性,同時也要獨(dú)立于終端應(yīng)用;2)應(yīng)該具有可擴(kuò)展性,并且與陣列尺寸無關(guān);3)可重復(fù)使用并且可以自動化操作;4)易于測量定位.
目前對于FPGA的測試分為應(yīng)用相關(guān)的測試和應(yīng)用無關(guān)的測試:應(yīng)用相關(guān)的測試是指將某種特定應(yīng)用下載到FPGA芯片,觀察其功能是否正常,從而檢測FPGA的硬件缺陷.這種測試方法的弊端在于,特定的應(yīng)用對被測FPGA內(nèi)部資源的底層硬件電路結(jié)構(gòu)沒有針對性,測試覆蓋率不高;應(yīng)用無關(guān)的測試是指針對FPGA底層硬件結(jié)構(gòu),設(shè)計以測試覆蓋率為目標(biāo)的測試配置,下載到FPGA中,施加測試向量進(jìn)行測試,這樣的方法能達(dá)到較高的測試覆蓋率,但實(shí)現(xiàn)起來有較大難度,因?yàn)閷Φ讓佑布牟僮餍枰浖O(shè)計工具完全可控才能實(shí)現(xiàn).由于FPGA芯片具有可編程的特點(diǎn),即使FPGA芯片具有工藝缺陷,如果可以確定缺陷位置,在編程時繞過缺陷所在邏輯,那么這種缺陷是可以接受的[2].避開有缺陷的邏輯進(jìn)行編程,同樣要求軟件設(shè)計工具對底層硬件的操作是完全可控的[3].
目前商用FPGA的EDA工具僅僅支持相關(guān)生產(chǎn)商開發(fā)的FPGA,不能支持或評估其他廠商開發(fā)的不同結(jié)構(gòu)的FPGA[4].并且商用EDA工具并不對用戶開放專用的芯片測試功能,所以開發(fā)1個帶有測試功能,可以對底層硬件操作完全可控的EDA工具對具有自主知識產(chǎn)權(quán)的FPGA生產(chǎn)商具有較大意義.
為了在EDA工具中加入FPGA測試功能,并在應(yīng)用無關(guān)的測試過程中實(shí)現(xiàn)較高的測試覆蓋率,同時在FPGA應(yīng)用設(shè)計時達(dá)到避開有缺陷的邏輯進(jìn)行編程的目的,實(shí)現(xiàn)有效的FPGA軟件容錯功能,本文提出一種可以對底層硬件進(jìn)行完全可控操作的可用于FPGA測試的導(dǎo)航映射方法.
本文所針對的特定結(jié)構(gòu)FPGA是自主研發(fā)的基于0.5 μm SOI-CMOS工藝的5萬門 FPGA.該FPGA內(nèi)部資源包括輸入輸出模塊(I/O Block,IOB),邏輯模塊(Logic Block,LB),全局模塊(Global Block,GB)以及布線通道模塊(Channel Block,CHB).其中,邏輯模塊為導(dǎo)航映射主要處理的對象:1個LB由兩個邏輯單元(Logic Cell,LC)組成,每個 LC中包括1個4輸入查找表(LUT4)和1個D觸發(fā)器(DFF).
LC結(jié)構(gòu)如圖 1所示[5],LUT4是由兩個LUT3和1個2-1MUX構(gòu)成.圖中F5MUX連接同一LB中的兩個 LC中的 LUT4,使之構(gòu)成1個LUT5.
圖1 LC邏輯結(jié)構(gòu)
同時,LC可配置為分布式存儲器(Distribute RAM,RAMD).單個LC中的LUT4可配置成1個16X1單端口(single-port)RAM,或者將1個LB中兩個LUT4結(jié)合起來配置成1個16X1雙端口(dual-port)RAM或者1個32X1單端口RAM.
EDA設(shè)計流程如圖2所示,電路描述文件經(jīng)由綜合、網(wǎng)表轉(zhuǎn)換、映射、布局、布線、碼流生成、下載等幾個步驟,完成對FPGA芯片的配置,以達(dá)到電路設(shè)計或測試的目的.
其中映射工具的主要職能是:對綜合結(jié)果進(jìn)行分析,將以基本邏輯單元(Basic Logic Element,BLE,包括 LUT、FF、RAMD、I/O PAD 等)為單位的網(wǎng)表,結(jié)合FPGA的結(jié)構(gòu),轉(zhuǎn)化為以LB為單位的網(wǎng)表,提供給下一步驟的布局布線工具.
本文提出的導(dǎo)航映射方法集成在映射工具中,專門用于對FPGA進(jìn)行測試以及在應(yīng)用FPGA時避開已知硬件缺陷.
圖2 EDA工具設(shè)計流程
本文提出的導(dǎo)航映射方法是完全遵循導(dǎo)航文件約束和規(guī)定進(jìn)行映射操作的方法.導(dǎo)航文件又稱用戶約束文件(User Constrain File,UCF),是根據(jù)綜合結(jié)果的網(wǎng)表文件針對基本邏輯單元、I/O、布線資源等在映射(mapping),布局(place)或布線(route)階段進(jìn)行約束和指導(dǎo)的文件.
現(xiàn)階段也有部分FPGA軟件采用UCF文件,例如Xilinx的ISE,但是其UCF文件中只能對芯片I/O引腳和一些時序進(jìn)行約束[6].本文提出的用于導(dǎo)航的UCF文件還具備對FPGA的邏輯和連線進(jìn)行約束的功能.
用于FPGA模塊測試及全芯片測試的導(dǎo)航映射,主要依賴各種測試配置(Test Configuration)的底層硬件電路描述文件以及相應(yīng)的導(dǎo)航文件.這兩種文件采用以下方式獲得:利用腳本語言,結(jié)合FPGA的硬件結(jié)構(gòu),自動生成有邏輯塊針對性,有一定規(guī)律的可以對硬件底層進(jìn)行操作的測試用電路描述文件和用于導(dǎo)航的UCF文件.UCF文件中一一對應(yīng)的描述了底層硬件電路描述文件內(nèi)基本邏輯單元的各種約束信息.
UCF的內(nèi)容包括以下幾方面:所約束模塊的類型;基本邏輯單元名稱;基本邏輯單元所屬LB信息;基本邏輯單元所屬 LC信息;打包連線標(biāo)志.
導(dǎo)航映射中,映射工具需要讀取UCF文件,并且嚴(yán)格按照UCF文件的約束和導(dǎo)航進(jìn)行映射,這樣可以有針對性的進(jìn)行特定目標(biāo)的測試,有效提高測試覆蓋率.
在映射工具準(zhǔn)備階段,需要讀取FPGA架構(gòu)文件、綜合輸出的網(wǎng)表文件作為映射工具的輸入.用戶需將軟件設(shè)置為測試模式,映射工具將會調(diào)用導(dǎo)航映射算法,并讀取導(dǎo)航文件.其中導(dǎo)航文件UCF起到對映射過程的約束和指導(dǎo)作用.
FPGA架構(gòu)文件主要提供FPGA芯片的結(jié)構(gòu)信息,包括FPGA中各種模塊的位置、數(shù)量、內(nèi)部結(jié)構(gòu)及連接關(guān)系等.
由腳本語言針對硬件底層結(jié)構(gòu)生成的與UCF配套的測試用電路描述文件(verilog),經(jīng)過綜合器綜合(synthesis)輸出網(wǎng)表文件,它主要由I/O pad、BUFG、LUT、FF、RAMD 等基本邏輯單元和它們之間的連線構(gòu)成.本文涉及的特定結(jié)構(gòu)FPGA可以實(shí)現(xiàn)1-4輸入的LUT.同時,單個LUT4可以配置為1個RAMD 16X1S,1個LB內(nèi)的兩個LUT4可以共同配置為1個RAMD 16X1D或者1個RAMD 32X1S.
映射工具在讀取UCF文件時,根據(jù)UCF文件中所約束基本邏輯單元的名稱,在網(wǎng)表文件中找到對應(yīng)的BLE,并將所有約束條件記錄到該BLE的數(shù)據(jù)結(jié)構(gòu)中,便于后續(xù)步驟使用.
應(yīng)用于測試的導(dǎo)航映射的特點(diǎn)在于,它脫離原有的映射算法,完全按照UCF文件內(nèi)的約束進(jìn)行映射.導(dǎo)航映射的過程如圖3所示.
映射工具按照UCF文件的約束條件,遍歷網(wǎng)表中所有的基本邏輯單元,選出lb標(biāo)記值與lc標(biāo)記值完全相同的BLE,結(jié)合FPGA硬件結(jié)構(gòu)將他們進(jìn)行packing工作,生成以LC為單位的網(wǎng)表文件.接下來,重新遍歷網(wǎng)表文件中的LC,選出lb標(biāo)記值相同的LC,按照它們lc標(biāo)記值的位置信息,進(jìn)行clustering步驟,形成LB.映射結(jié)束后生成的輸出文件是以LB為單位的網(wǎng)表文件,交給布局布線工具進(jìn)行操作.
圖3 導(dǎo)航映射過程
由于導(dǎo)航映射是一種嚴(yán)格按照導(dǎo)航文件的約束和指導(dǎo)進(jìn)行的映射方法,所以當(dāng)測試出FPGA部分邏輯具有缺陷時,可以定位出缺陷邏輯塊的坐標(biāo),并在導(dǎo)航文件中加以標(biāo)注和約束,通過導(dǎo)航映射,可以避開有缺陷的邏輯塊,實(shí)現(xiàn)了一種有效的FPGA軟件容錯功能.
圖4為回避缺陷的導(dǎo)航映射結(jié)果,通過EDA工具中的導(dǎo)航布局布線后形成的圖形界面.圈內(nèi)部分在導(dǎo)航文件被約束為缺陷邏輯模塊,在導(dǎo)航映射以及后續(xù)布局布線過程則回避這一缺陷模塊,使得FPGA仍可繼續(xù)使用.
圖4 回避缺陷的導(dǎo)航映射
為了在應(yīng)用無關(guān)的測試過程中對FPGA邏輯結(jié)構(gòu)中的每1個邏輯單元都能有針對性的進(jìn)行測試,并且達(dá)到較高的測試覆蓋率,利用上文所述腳本語言針對全芯片共生成128個測試配置進(jìn)行測試.
packnet是UCF中的打包連線方式標(biāo)志,其默認(rèn)值為1,代表當(dāng)前BLE進(jìn)行打包時BLE之間的連線會映射為LC的內(nèi)部連接.當(dāng)packnet值為0時,要求當(dāng)前BLE在進(jìn)行packing過程時,BLE之間連線需要通過FPGA布線通道,如圖5所示.這樣可以精確測試到指定邏輯塊的特定布線通道.
圖5 測試BLE間連線及布線通道
本文所述FPGA的LUT4結(jié)構(gòu)是由兩個LUT3構(gòu)成,如圖1所示.在測試過程中,可以在UCF文件中指定C-LUT3,S-LUT3,F(xiàn)4MUX的各種測試組合.通過導(dǎo)航映射的方式,生成相應(yīng)的測試配置.這種方式同時還可用于進(jìn)位鏈這種使用專用布線資源的測試.
圖6所示為經(jīng)過導(dǎo)航映射后生成的進(jìn)位鏈的測試配置.圖形化結(jié)果顯示通過導(dǎo)航映射,整個FPGA的進(jìn)位邏輯被連成1條長鏈.
圖6 測試進(jìn)位鏈的資源占用和布線
在本文所述FPGA結(jié)構(gòu)中,可以將同1個LB內(nèi)的兩個LC配置成1個LUT5或者RAMD 32X1S.以兩個LUT4實(shí)現(xiàn)1個LUT5為例,需要借助1個MUX2實(shí)現(xiàn)該功能,圖1中的F5MUX負(fù)責(zé)實(shí)現(xiàn)這一功能.通過導(dǎo)航映射,可以測試FPGA中任意LB中F5MUX的功能.
結(jié)合FPGA硬件結(jié)構(gòu)、邏輯陣列數(shù)量、由腳本語言同步生成的用于測試的電路描述文件、用戶約束文件,可以在測試過程中達(dá)到很高的覆蓋率.表1[5]顯示了對全芯片進(jìn)行的128個測試配置和測試覆蓋率,其中針對邏輯模塊的測試覆蓋率可達(dá)到95%,功能測試覆蓋率為85%.
表2為針對邏輯資源的有代表性的測試配置通過導(dǎo)航映射和利用T-Vpack算法[7]進(jìn)行映射的結(jié)果比較.其中測試芯片為24×24的陣列,共有576個邏輯模塊.通過比較結(jié)果可以得出,對于不同測試配置,T-Vpack算法映射的結(jié)果差異很大,有的模型超出陣列規(guī)模,無法達(dá)到針對特定結(jié)構(gòu)FPGA進(jìn)行測試的目的.而導(dǎo)航映射針對不同的測試配置,能嚴(yán)格根據(jù)硬件結(jié)構(gòu)進(jìn)行映射,得到的結(jié)果完全適應(yīng)陣列規(guī)模,滿足測試預(yù)期.
表1 全芯片測試的128個測試配置
表2 邏輯模塊測試配置導(dǎo)航映射和T-Vpack算法映射的結(jié)果比較
本文提出了一種可以對FPGA硬件底層進(jìn)行操作,能實(shí)現(xiàn)對FPGA進(jìn)行全面可控并有針對性測試功能的導(dǎo)航映射方法.應(yīng)用于FPGA測試的導(dǎo)航映射的特點(diǎn)在于:
1)在UCF的導(dǎo)航下,可以按照測試需求,占用部分或全部的邏輯資源,以完成對FPGA芯片測試或輔助測試功能;
2)對于有邏輯缺陷的FPGA,可以通過導(dǎo)航文件約束缺陷坐標(biāo),使得映射過程避開缺陷邏輯塊,以實(shí)現(xiàn)一種有效的FPGA軟件容錯功能.
經(jīng)128個測試配置[8]結(jié)果顯示,本方法對于FPGA的邏輯模塊可以達(dá)到95%測試覆蓋率.利用導(dǎo)航映射方法和T-Vpack算法針對同一結(jié)構(gòu)FPGA進(jìn)行應(yīng)用無關(guān)測試,比較結(jié)果表明,導(dǎo)航映射滿足了對底層硬件操作完全可控的要求,達(dá)到了對特定結(jié)構(gòu)FPGA有針對進(jìn)行測試的預(yù)期.導(dǎo)航映射結(jié)果可預(yù)知,具有測試針對性,測試目標(biāo)確定可控.
如果將導(dǎo)航映射與映射算法結(jié)合,將可以進(jìn)一步提高測試覆蓋率.同時本方法還可以推廣到用于任何類似結(jié)構(gòu)FPGA的測試中.
[1]LIAO Y B,LI P,Ruan A W.A HW/SW co-verification technique for field programmable gate array(FPGA)test[C]//Testing and Diagnosis,2009.ICTD 2009.IEEE Circuits and Systems International Conference on.Piscataway:IEEE,2009:1-4.
[2]LIAO Y B,LI P,RUAN A W.Full coverage manufacturing testing for SRAM-Based FPGA[C]//Integrated Circuits,ISIC'09.Proceedings of the 2009 12th International Symposium on.Piscataway:IEEE,2009:478-481.
[3]TOUTOUNCHI S,LAI A.FPGA test and coverage[C]//ITC International Test Conference.Piscataway:IEEE,2002:599 -607.
[4]BETZ V,ROSE J,MARQUARDT A.Architecture and CAD for deep-submicron FPGAs[M].Aarhus:Kluwer Academic Publishers,1998:2 -10.
[5]HAN Xiaowei.Design and verification of radiation-hardened SOI-based FPGA(Ⅱ)[D].Beijing:Chinese Academy of Sciences,2011.
[6]薛小剛,葛毅敏.Xinlinx ISE 9.X FPGA/CPLD 設(shè)計指南[M].北京:人民郵電出版社,2007:173-207.
[7]ZHANG Qianli,CHEN S L.Mapper design for an SOI-based FPGA[C]//The 10thIEEE International Conference on Solid-State and Integrated Circuit Technology.Piscataway:IEEE,2010:821-823.
[8]WU Lihua.Design and verification of radiation-hardened SOI-based FPGA(Ⅰ)[D].Beijing:Chinese Academy of Sciences,2011.
A navigated mapping method for FPGA testing
ZHANG Qian-li,YU Fang,LIU Zhong-li,LI Yan
(Institute of Microelectronics,Chinese Academy of Sciences,100029 Beijing,China)
Because the FPGA factories presently do not offer the special testing function in their EDA tools,this paper addresses the design of a navigated mapping method used for FPGA testing.The navigated mapping tool totally controls the basic elements and exactly controls the usage of FPGA logic resource,tests some targetable logic of the FPGA and increases the coverage of each test vector effectively,implements the FPGA software defect-tolerance function.The result is well proven in test converage through 128 test cases.
FPGA;UCF;navigated;mapping;testing
TN47
A
0367-6234(2012)09-0144-05
2011-05-12.
張倩莉(1986—),女,博士,助理研究員;
于 芳(1960—),女,研究員,博士生導(dǎo)師;
劉忠立(1940—),男,研究員,博士生導(dǎo)師.
張倩莉,zhangqianli@ime.ac.cn.
(編輯 張 宏)