《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于Testbench的FPGA實物自動化測試環(huán)境設(shè)計
基于Testbench的FPGA實物自動化測試環(huán)境設(shè)計
2018年電子技術(shù)應(yīng)用第4期
高 虎,封二強,趙 剛
中國航空綜合技術(shù)研究所,北京100083
摘要: 針對FPGA軟件測試過程中仿真測試和實物測試的不足,提出了一種基于仿真測試用例的實物自動化測試環(huán)境,將用于仿真測試的Testbench進行解析處理,形成能夠用于FPGA實物測試的傳輸信號,通過執(zhí)行器將此信號轉(zhuǎn)換為作用于被測FPGA芯片的實際信號,并采集被測FPGA芯片的響應(yīng),實現(xiàn)對FPGA的實物自動化測試。采用實物自動化測試環(huán)境驗證平臺對設(shè)計架構(gòu)進行了驗證,取得了良好的效果。
中圖分類號: TP311.11
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.173548
中文引用格式: 高虎,封二強,趙剛. 基于Testbench的FPGA實物自動化測試環(huán)境設(shè)計[J].電子技術(shù)應(yīng)用,2018,44(4):48-51.
英文引用格式: Gao Hu,F(xiàn)eng Erqiang,Zhao Gang. Design of FPGA physical automatic testing environment based on Testbench[J]. Application of Electronic Technique,2018,44(4):48-51.
Design of FPGA physical automatic testing environment based on Testbench
Gao Hu,F(xiàn)eng Erqiang,Zhao Gang
China Aero-Polytechnology Establishment,Beijing 100028,China
Abstract: According to the shortcomings of simulation testing and physical testing method of FPGA software testing, a design of FPGA physical automatic testing environment based on simulation testing case was proposed. The Testbench used in simulation testing was parsed and processed into FPGA transmission signals used in physical testing. An actuator was designed to convert the testing data into real signals transmitted between FPGA under test and the testing environment. The design framework was validated by a physical automatic testing environment verification platform, and good results had been achieved.
Key words : FPGA testing;Testbench;physical testing;automatic testing;testing environment
0 引言

    隨著FPGA設(shè)計規(guī)模的不斷擴大,因FPGA軟件設(shè)計而造成的質(zhì)量問題也越來越突出,成為影響裝備質(zhì)量的重要因素[1-2]。而測試是當(dāng)前解決該問題的最有效手段,因此,越來越多的型號裝備產(chǎn)品定型過程對FPGA軟件測試提出了新的要求[3]

    然而FPGA測試與常規(guī)軟件測試不同,因其測試環(huán)境限制,測試過程需大量依賴于仿真和分析的方法[4],而在實際芯片中開展的測試往往是板級、系統(tǒng)級測試,測試結(jié)果可信度低且無法有效發(fā)現(xiàn)FPGA軟件設(shè)計缺陷[5-6]。為此,本文提出了一種基于仿真測試平臺Testbench數(shù)據(jù)的自動化測試環(huán)境框架,測試結(jié)果具有較高的可信度,能夠有效提高FPGA測試質(zhì)量。

1 FPGA動態(tài)測試概述

1.1 FPGA動態(tài)測試環(huán)境原理

    當(dāng)前型號裝備FPGA定型測試過程主要方法包括設(shè)計檢查、功能仿真、門級仿真、時序仿真、靜態(tài)時序分析、邏輯等效性檢查和實物測試。其中功能仿真、門級仿真、時序仿真和實物測試均為動態(tài)測試,開展測試時需依據(jù)測試要求,建立FPGA運行的外圍環(huán)境,根據(jù)測試對象的不同,可將此類環(huán)境分為仿真測試環(huán)境和實物測試環(huán)境。

    采用仿真測試環(huán)境時,需根據(jù)測試用例將測試數(shù)據(jù)映射為不同時刻下的不同信號值,形成仿真測試平臺文件Testbench,通過仿真測試工具將被測FPGA產(chǎn)生的響應(yīng)進行采集和自動判斷,形成測試結(jié)論[7]。

    采用實物測試環(huán)境時,往往構(gòu)建系統(tǒng)測試環(huán)境,將FPGA與外圍電路、設(shè)備一起運行,通過外部總線接口設(shè)置激勵數(shù)據(jù),然后通過總線輸出接口查看響應(yīng)結(jié)果,人工分析和判斷,形成測試結(jié)論[8]。

1.2 FPGA動態(tài)測試特點

    動態(tài)測試因測試實施過程中被測系統(tǒng)處于運行狀態(tài),能夠較為準確地反映系統(tǒng)實際運行時的行為,因此在測試技術(shù)中成為最重要的測試手段之一。FPGA動態(tài)測試過程通常采用仿真測試與實物測試相結(jié)合的方法,通過執(zhí)行測試用例覆蓋FPGA需求、發(fā)現(xiàn)相關(guān)缺陷,與靜態(tài)測試相比, 具有測試結(jié)果直觀、覆蓋率高等優(yōu)勢。

    但是,F(xiàn)PGA動態(tài)測試也存在一定弊端,在當(dāng)前型號測試任務(wù)中越來越突出[9-10],主要包括:(1)仿真測試過分依賴于仿真工具的性能;(2)仿真測試覆蓋率因使用IP核等原因無法得到充分保障;(3)實物測試針對系統(tǒng)數(shù)據(jù),而無法針對芯片信號。

    當(dāng)前高可靠系統(tǒng)的FPGA動態(tài)測試方法作為型號任務(wù)測試中的重要測試手段,在工程實踐中雖然能夠發(fā)現(xiàn)大量FPGA質(zhì)量缺陷,但是上述弊端得不到解決,F(xiàn)PGA潛在的質(zhì)量風(fēng)險就無法得到有效控制。

2 自動化測試環(huán)境設(shè)計

2.1 環(huán)境需求分析

    為提高當(dāng)前高可靠系統(tǒng)FPGA動態(tài)測試的可信性及測試效率,動態(tài)測試過程需滿足如下測試要求:

    (1)測試激勵應(yīng)能夠完整反映FPGA芯片的輸入輸出行為,而非系統(tǒng)級測試激勵僅反映應(yīng)用數(shù)據(jù),即測試用例數(shù)據(jù)需由應(yīng)用層降低至信號傳輸層。

    (2)動態(tài)測試的目標FPGA設(shè)計需在真實的器件上運行,而非采用仿真工具替代目標FPGA運行。

    (3)動態(tài)測試激勵的施加及測試結(jié)果的采集均能夠滿足FPGA設(shè)計需求的精度及實時性,即能夠?qū)Ρ粶yFPGA設(shè)計施加高精度的信號輸入,同時能夠支持對被測FPGA輸出信號的高精度采集;此外,對FPGA各激勵及響應(yīng)信號的實時性應(yīng)滿足系統(tǒng)要求[11]。

2.2 環(huán)境框架構(gòu)建

2.2.1 工作原理

    為滿足動態(tài)測試環(huán)境需求,設(shè)計基于Testbench的實物測試環(huán)境,通過Testbench對測試信號作用域、觸發(fā)時刻的描述,解決測試激勵的信號傳輸層需求;通過將Testbench信號轉(zhuǎn)換成真實的電路信號并施加于真實的被測FPGA芯片,解決被測系統(tǒng)運行的真實性問題;通過高性能FPGA芯片進行Testbench信號描述與真實電路信號的轉(zhuǎn)換,解決測試激勵及響應(yīng)的精度及實時性需求。具體工作原理如下:將Testbench進行語義解析,便可獲得測試激勵數(shù)據(jù)。此激勵數(shù)據(jù)若不用于仿真,而經(jīng)過信號分配施加于被測FPGA芯片實體,便可實現(xiàn)基于Testbench的實物測試。同時,解析Testbench中對預(yù)期信號的讀取過程,并將被測FPGA實體的輸出信號讀取出來便可獲得被測FPGA的運行結(jié)果,然后將實際運行結(jié)果與預(yù)期結(jié)果進行自動比對,便可實現(xiàn)基于Testbench的自動化測試過程。

2.2.2 系統(tǒng)結(jié)構(gòu)

    根據(jù)Testbench下的FPGA自動化測試工作原理,設(shè)計FPGA自動化測試環(huán)境框架如圖1所示。

qrs1-t1.gif

    將測試環(huán)境按照測試的實時性要求劃分成主控平臺和執(zhí)行平臺兩部分,主控平臺為非實時節(jié)點,執(zhí)行平臺為實時節(jié)點。

    主控平臺主要完成測試準備及測試結(jié)果分析工作。準備工作包括測試激勵的準備和測試接口的準備。測試激勵的準備是指將Testbench中的測試激勵信息進行解析的過程,具體過程為:在主控平臺中完成Testbench的編輯后,將生成的Testbench經(jīng)形式化處理,解析成激勵域和結(jié)果域兩類字段,每個域字段內(nèi)均包含時刻、引腳和引腳值3個要素,最終形成包含有測試激勵信息的數(shù)據(jù)幀消息,并通過以太網(wǎng)將該數(shù)據(jù)幀消息發(fā)送至執(zhí)行平臺。測試接口的準備是指設(shè)計被測FPGA外圍接口模型,并將其綜合、布局布線后下載至一片高性能FPGA(以下稱為執(zhí)行器FPGA)中等待運行的過程;對于不同的被測FPGA測試項目,需對執(zhí)行器FPGA分別進行接口模型的創(chuàng)建。測試結(jié)果分析工作用于接收測試結(jié)果數(shù)據(jù),生成測試報告。

    執(zhí)行平臺可視為一個多路信號收發(fā)平臺,其接收主控下發(fā)的Testbench激勵數(shù)據(jù)幀消息,并存入大容量DPRAM中,當(dāng)收到測試執(zhí)行命令時,將該數(shù)據(jù)幀消息通過DPRAM發(fā)送至執(zhí)行器FPGA。執(zhí)行器FPGA按照DPRAM中描述的信號引腳、信號值及信號觸發(fā)時間信息,輸出信號至被測FPGA,并按照采集引腳地址及采集時機讀取被測FPGA產(chǎn)生的輸出信號,然后將采集的被測FPGA響應(yīng)結(jié)果通過DPRAM發(fā)送給處理器,實時上報至主控平臺,用于監(jiān)控和測試結(jié)果分析。

2.3 關(guān)鍵技術(shù)

    基于Testbench的實物自動化測試環(huán)境以Testbench為數(shù)據(jù)核心,通過執(zhí)行器FPGA進行數(shù)據(jù)到信號的轉(zhuǎn)換,因此,Testbench解析方法及執(zhí)行器FPGA設(shè)計是構(gòu)建實物自動化測試環(huán)境的關(guān)鍵技術(shù)。

2.3.1 Testbench解析方法

    Testbench是開展FPGA測試的數(shù)據(jù)驅(qū)動,也是FPGA測試結(jié)果采集的驅(qū)動。Testbench由激勵產(chǎn)生、激勵施加、響應(yīng)判斷3部分構(gòu)成[12]。在開展基于Testbench的自動化實物測試環(huán)境構(gòu)建中對Testbench的解析主要是指對激勵產(chǎn)生、響應(yīng)判斷的解析;激勵施加的實質(zhì)是例化被測FPGA(即DUT,Design Under Test),對于構(gòu)建自動化實物測試環(huán)境并沒有影響。

    無論采用何種語言構(gòu)建Testbench,激勵產(chǎn)生都會最終落實為在指定時刻對DUT引腳施加特定值的操作集合,因此可將Testbench的激勵施加過程解析為時刻、引腳、引腳值的集合,命名該集合為激勵域。

    Testbench中的響應(yīng)判斷過程在一系列激勵產(chǎn)生并施加于DUT后實施,與激勵域類似,該過程也可理解為在指定時刻起對DUT引腳采集值的操作集合,該過程也同樣解析為時刻、引腳、引腳值3個要素,并命名該集合為結(jié)果域。與激勵域不同的是,結(jié)果域中的引腳值用于存儲預(yù)期結(jié)果數(shù)據(jù),該引腳值也可設(shè)為空,即無預(yù)期結(jié)果,表示由人工判定測試結(jié)果。

    綜上,一個Testbench可以解析為如圖2所示的激勵域及結(jié)果域的集合。

qrs1-t2.gif

    為提高測試環(huán)境的時間控制精度并提高存儲效率[13],將一個時刻點下的激勵域及結(jié)果域解析為時刻控制點配置結(jié)構(gòu)Tickset,其定義形式如下:

     qrs1-t2-x1.gif

    其中,tickVal表示激勵信號觸發(fā)的時刻點,drvPinNum用于存儲該時刻點同時為多少個引腳賦值,drvTab是指向具體引腳配置表的指針,引腳配置表結(jié)構(gòu)形式如下:

     qrs1-t2-x2.gif

    這樣,一個時刻點即為一個Tickset結(jié)構(gòu),其中包含了drvPinNum個激勵引腳和sampPinNum個采集引腳,每個引腳的地址和值也都包含在內(nèi)。

    一個Testbench中包含了多個時刻點,共同構(gòu)成了一個測試用例,因此一個測試用例可定義為case結(jié)構(gòu),形式如下:

     qrs1-t2-x3.gif

    在case結(jié)構(gòu)中包含了tickNum個Tickset,指針變量tickPoints表示具體的時刻控制點配置Tickset集合。

    自動化實物測試環(huán)境的設(shè)計目標之一為提高測試執(zhí)行效率,為此,可將所有生成的Testbench一次解析,生成測試用例集Caseset,實現(xiàn)測試用例集內(nèi)用例的不間斷執(zhí)行。Caseset的定義形式如下:

     qrs1-t2-x4.gif

    設(shè)計Testbench解析軟件,按照上述約定協(xié)議形式將全部Testbench文件進行格式化后解析,最終形成的測試用例集Caseset下發(fā)至執(zhí)行平臺,通過CPU寫入DPRAM中,供執(zhí)行器FPGA讀取、配置。

2.3.2 執(zhí)行器FPGA設(shè)計

    執(zhí)行器FPGA是銜接被測FPGA與測試環(huán)境的接口適配單元,主要完成Testbench數(shù)據(jù)與電路信號的轉(zhuǎn)換功能,在整個自動化測試環(huán)境中起核心作用。其內(nèi)部主要模塊及信息傳遞關(guān)系如圖3所示。

qrs1-t3.gif

    執(zhí)行器FPGA讀取DPRAM中的Testbench激勵數(shù)據(jù)消息,解析出激勵域和結(jié)果域,并對將兩個域的時刻控制值交由計數(shù)器處理。

    激勵域解析模塊讀取DPRAM中激勵數(shù)據(jù)所要施加的FPGA引腳地址、激勵值[14],然后經(jīng)地址數(shù)據(jù)分配模塊進行FPGA引腳索引和數(shù)據(jù)鎖存,到達激勵觸發(fā)時刻后將激勵數(shù)據(jù)通過指定的引腳輸出至被測FPGA。

    結(jié)果域解析模塊讀取DPRAM中結(jié)果采集所需要的引腳地址、預(yù)期結(jié)果值,經(jīng)地址數(shù)據(jù)分配模塊進行引腳映射,當(dāng)采集時刻到達時,地址數(shù)據(jù)分配模塊再從采集緩存中讀取對應(yīng)的數(shù)據(jù)值,并與DPRAM中的預(yù)期采集結(jié)果值進行比較,將該時刻的結(jié)論發(fā)送至DPRAM用于與實際測試結(jié)果一起上傳至主控平臺。

    時刻控制模塊是執(zhí)行器FPGA的控制中樞,一方面,讀取DPRAM中的時刻描述,計算獲得執(zhí)行器FPGA實際需觸發(fā)輸入輸出的時刻,通過計數(shù)器控制激勵和采集的使能,從而實現(xiàn)對FPGA信號的實時性傳輸控制;另一方面,通過讀取DPRAM中的測試用例數(shù)量、測試激勵域數(shù)量、結(jié)果域數(shù)量、各個域內(nèi)不同時刻點的引腳信號的數(shù)量,管理測試用例中的不同測試時刻的激勵域與結(jié)果域數(shù)據(jù)的時刻、引腳的配置,為激勵域解析模塊和結(jié)果域解析模塊實現(xiàn)引腳和數(shù)據(jù)分配提供依據(jù)。

    此外,執(zhí)行器FPGA中還包括由主控平臺被測FPGA接口建模軟件配置的input引腳組、output引腳組及inout引腳組,用于配合地址收分配模塊進行數(shù)據(jù)管理。

2.4 軟硬件部署

    自動化動態(tài)測試環(huán)境中包括上位機主控平臺和下位機執(zhí)行平臺兩部分,主控平臺運行于PC無需開展特別硬件設(shè)計;執(zhí)行平臺主要包括X86CPU、DPRAM和執(zhí)行器FPGA 3部分,其中X86CPU通過DPRAM與執(zhí)行器FPGA進行數(shù)據(jù)通信的設(shè)計采用常規(guī)的DPRAM通信方法。

    軟件方面,上位機主控平臺部署Testbench解析軟件,解析Testbench為Caseset測試用例集格式;部署被測FPGA接口建模軟件,通過執(zhí)行器FPGA集成開發(fā)環(huán)境ISE的配合實現(xiàn)對執(zhí)行器FPGA與被測FPGA連接引腳的配置;通過監(jiān)控與報告生成軟接收并顯示測試執(zhí)行結(jié)果數(shù)據(jù),生成測試報告;下位機執(zhí)行平臺X86CPU運行實時操作系統(tǒng)VxWorks 5.5,進行測試命令的執(zhí)行及測試數(shù)據(jù)分發(fā)和實時回傳。

3 實驗與應(yīng)用

    基于上述設(shè)計方法,開發(fā)設(shè)計FPGA仿真用例實物化測試環(huán)境原型,包含Testbench解析器軟件、FPGA接口建模軟件等核心軟件,將Testbench文件解析成Caseset集合格式;采用XC7VX690T作為執(zhí)行器FPGA,設(shè)計其數(shù)據(jù)與信號的轉(zhuǎn)換邏輯,并通過外置接線板與被測FPGA芯片交聯(lián)。將該平臺試用于某型衛(wèi)星導(dǎo)航通信FPGA軟件測試中,與“仿真+系統(tǒng)”測試方式相比,顯著提高了測試工作效率。

4 結(jié)論

    本文探索性地提出了一種基于仿真測試平臺的實物自動化測試環(huán)境,用于FPGA軟件測試中彌補仿真測試和當(dāng)前實物測試存在的弊端,通過實物自動化測試環(huán)境原型對設(shè)計框架進行驗證,結(jié)果表明該測試環(huán)境具有測試覆蓋率高、測試效率高的優(yōu)點,在后續(xù)項目中加以優(yōu)化便可作為FPGA測試工程實踐的主要工具。

參考文獻

[1] 高虎,劉媛,劉子宜.DO-254標準中的確認與驗證過程分析[J].航空標準化與質(zhì)量,2014(2):10-13.

[2] 劉子宜,劉暢,鄭軍.基于軟件測試技術(shù)的FPGA測試研究[J].電子技術(shù)應(yīng)用,2011,37(5):28-30.

[3] 周珊,楊雅雯,王金波.航天高可靠FPGA測試技術(shù)研究[J].計算機技術(shù)與發(fā)展,2017,27(3):1-5.

[4] 費亞男,周輝,朱偉杰.FPGA軟件自動化驗證平臺設(shè)計與實踐[J].計算機測量與控制,2016,24(5):139-142.

[5] LEMON R,COULTER B,ARCHIBALD S,et al.Interface test adapter development & maintenance using a continuity/insulation automatic test station in large scale test systems[C].Autotestcon,2009 IEEE,2009:107-112.

[6] JUSTIN J,LINDSTROM L,JAIN A.Using a plug-in model to simplify and enhance ATE test software capabilities[C].Autotestcon,2012 IEEE,2012:105-107.

[7] 王鵬,劉萬和,劉銳,等.基于SystemVerilog可重用測試平臺的實現(xiàn)[J].電子技術(shù)應(yīng)用,2015,41(2):61-64.

[8] 高虎,鄭軍,趙剛.FPGA板級自動化仿真測試環(huán)境框架設(shè)計[J].微電子學(xué)與計算機,2017,34(12):94-98.

[9] 孫秀睿.FPGA設(shè)計驗證中的軟硬件協(xié)同仿真測試方法[J].南通大學(xué)學(xué)報(自然科學(xué)版),2016,15(3):41-44,66.

[10] 王曉耕.基于VHDL的數(shù)字SoC設(shè)計與驗證的全面自動化實現(xiàn)[D].西安:西安電子科技大學(xué),2016.

[11] 易敏,蘇淑靖,季偉,等.基于FPGA的高速時間交替采樣系統(tǒng)[J].電子技術(shù)應(yīng)用,2015,41(1):71-74.

[12] 錢一文,景為平,蔣斌.基于UVM的CPU卡芯片驗證平臺[J].微電子學(xué)與計算機,2016,33(6):37-40.

[13] 王建中,楊璐.高速實時系統(tǒng)數(shù)據(jù)采集與傳輸[J].計算機科學(xué),2016,43(S2):604-606.

[14] 呂波,張涌,黃侃,等.基于FPGA的四口RAM設(shè)計與實現(xiàn)[J].儀表技術(shù)與傳感器,2017(1):34-37.



作者信息:

高  虎,封二強,趙  剛

(中國航空綜合技術(shù)研究所,北京100083)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。