《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于軟件測(cè)試技術(shù)的FPGA測(cè)試研究
基于軟件測(cè)試技術(shù)的FPGA測(cè)試研究
來源:電子技術(shù)應(yīng)用2011年第5期
劉子宜,劉 暢,鄭 軍
中國(guó)航空綜合技術(shù)研究所 軟件可靠性與測(cè)評(píng)研究室,北京100028
摘要: 基于對(duì)FPGA系統(tǒng)失效機(jī)理的深入分析, 提出了軟件測(cè)試技術(shù)在FPGA測(cè)試中的應(yīng)用, 并分析了其可行性; 通過對(duì)比FPGA與軟件系統(tǒng)的異同, 歸納出FPGA特有的測(cè)試要求,從而在軟件測(cè)試技術(shù)的基礎(chǔ)上針對(duì)FPGA的特點(diǎn)進(jìn)行改進(jìn), 形成了一套實(shí)用的FPGA測(cè)試方法。
中圖分類號(hào): TN407
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)05-0028-03
Research of FPGA testing based on software testing technology
Liu Ziyi,Liu Chang,Zheng Jun
Department of Software Reliability and Testing, China Aero-Polytechnology Establishment, Beijing 100028,China
Abstract: Based on the deep analysis of failure mechanism of FPGA system, the application of software testing technology in FPGA system was provided, and its feasibility was analyzed. The own testing requirements of FPGA system was inducted via the contrast of the FPGA system and software system. With the improvements of software testing technology for the characteristic of FPGA system, a set of practical FPGA testing methods were provided.
Key words : FPGA;software testing;HDL


    現(xiàn)場(chǎng)可編程門陣列(FPGA)的出現(xiàn)大大壓縮了電子產(chǎn)品研發(fā)的周期和成本,由于FPGA器件具有高密度、低功耗、高速、高可靠性等優(yōu)點(diǎn),在航空、航天、通信、工業(yè)控制等方面得到了大量應(yīng)用。隨著FPGA應(yīng)用領(lǐng)域的擴(kuò)展以及重要性和復(fù)雜程度的提高,其可靠性問題變得越來越突出,因此對(duì)FPGA系統(tǒng)的測(cè)試需求變得尤為迫切。
    目前FPGA測(cè)試技術(shù)的研究主要集中于對(duì)FPGA芯片資源的測(cè)試,通過編程覆蓋FPGA所有的邏輯資源[1,2]和連接資源[3],驗(yàn)證每個(gè)單元基本邏輯功能的正確性,而無法對(duì)電路的整體行為進(jìn)行有效的驗(yàn)證。硬件描述語言(HDL)是FPGA電路設(shè)計(jì)的主要實(shí)現(xiàn)方式,和軟件一樣,HDL也是人腦思維的邏輯產(chǎn)物,同樣存在著不希望或不可接受的人為錯(cuò)誤。隨著設(shè)計(jì)復(fù)雜程度的提高,由HDL引入的缺陷成為影響FPGA可靠運(yùn)行的關(guān)鍵因素,對(duì)FPGA電路行為的測(cè)試成為提高系統(tǒng)質(zhì)量和可靠性的重要環(huán)節(jié)。
    MIN Y.H.提出了在FPGA系統(tǒng)中進(jìn)行高層測(cè)試的必要性[4]。高層測(cè)試即任何高于門級(jí)的測(cè)試,考慮的是高層描述,如HDL、狀態(tài)圖、功能塊圖等,通過高層測(cè)試發(fā)現(xiàn)設(shè)計(jì)中的缺陷,并在系統(tǒng)的開發(fā)階段充分考慮測(cè)試需求,指導(dǎo)系統(tǒng)設(shè)計(jì)。以此為基礎(chǔ),先后提出了一系列具體的實(shí)施方法,如層次化的測(cè)試方法、基于電路功能或結(jié)構(gòu)的測(cè)試方法、基于模擬的測(cè)試方法等。
1 研究背景
1.1 軟件測(cè)試技術(shù)概述

    在IEEE的軟件工程標(biāo)準(zhǔn)術(shù)語中,軟件測(cè)試定義為使用人工和自動(dòng)手段來運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或找出預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。
    按照測(cè)試級(jí)別,軟件測(cè)試包括單元測(cè)試、部件測(cè)試、配置項(xiàng)測(cè)試、系統(tǒng)測(cè)試等;按照測(cè)試方法,軟件測(cè)試可分為動(dòng)態(tài)測(cè)試和靜態(tài)測(cè)試,動(dòng)態(tài)測(cè)試又可分為黑盒測(cè)試和白盒測(cè)試。靜態(tài)測(cè)試包括了代碼審查、靜態(tài)分析、代碼走查等測(cè)試類型;動(dòng)態(tài)測(cè)試包括邏輯測(cè)試、功能測(cè)試、性能測(cè)試、接口測(cè)試等測(cè)試類型。白盒測(cè)試通常采用以邏輯覆蓋衡量的結(jié)構(gòu)性測(cè)試技術(shù);黑盒測(cè)試通常采用包括功能分解、等價(jià)類劃分、邊界值分析等在內(nèi)的功能性測(cè)試技術(shù)[5]。
1.2 FPGA系統(tǒng)的特點(diǎn)
    FPGA作為可編程邏輯器件,通過編程的方式(如HDL)將通用芯片配置成用戶需要的硬件數(shù)字電路,F(xiàn)PGA和軟件系統(tǒng)具有相似的結(jié)構(gòu)和開發(fā)方式,HDL與軟件都是人腦思維邏輯的產(chǎn)物,具有相似的語法和失效機(jī)理。因此,將軟件測(cè)試的成熟技術(shù)用于FPGA測(cè)試,在理論和操作上均具有可行性。
    但是,由于軟硬件系統(tǒng)本質(zhì)上的不同,F(xiàn)PGA和軟件系統(tǒng)在測(cè)試要求上存在一定的差異,表1從開發(fā)方式、代碼執(zhí)行順序、受硬件影響程度、執(zhí)行結(jié)果的隨機(jī)性以及應(yīng)用領(lǐng)域等方面,歸納了FPGA和軟件系統(tǒng)的不同之處。

2 FPGA特有測(cè)試要求
    針對(duì)FPGA和軟件系統(tǒng)的差異,存在不同于軟件測(cè)試特有的測(cè)試要求,包括HDL代碼檢測(cè)要求、測(cè)試級(jí)別要求和時(shí)序測(cè)試用例設(shè)計(jì)要求等。
2.1 HDL代碼檢測(cè)要求
    由于HDL代碼并行執(zhí)行并存在硬件環(huán)境的影響以及競(jìng)爭(zhēng)、冒險(xiǎn)等不確定結(jié)果,在白盒測(cè)試中具有不同于軟件測(cè)試的要求。一方面,不同于軟件的控制流和數(shù)據(jù)流,并行程序的時(shí)序和信號(hào)流是一對(duì)相互依存的信息,程序的邏輯狀態(tài)由二者共同確定。這就要求在測(cè)試中,既要依據(jù)信號(hào)流圖對(duì)組合邏輯進(jìn)行驗(yàn)證,還要依據(jù)時(shí)序圖分析時(shí)變信號(hào)的時(shí)序一致性。另一方面,硬件特征對(duì)運(yùn)行結(jié)果的影響也是代碼檢測(cè)中需要考慮的因素[6]。在編碼規(guī)范的制定上,應(yīng)當(dāng)充分考慮并行程序的特點(diǎn),正確處理與硬件資源之間的關(guān)系,避免競(jìng)爭(zhēng)、冒險(xiǎn)等不確定結(jié)果的產(chǎn)生。
2.2 測(cè)試級(jí)別的要求
    與傳統(tǒng)自底向上的電子設(shè)計(jì)技術(shù)不同,F(xiàn)PGA采用與軟件開發(fā)相同的自頂向下的設(shè)計(jì)方法。一個(gè)項(xiàng)目的開發(fā)過程,從系統(tǒng)的分解、RTL模型的建立、門級(jí)模型的產(chǎn)生,到最終的可以物理布線實(shí)現(xiàn)的底層電路,是一個(gè)從高抽象級(jí)別到低抽象級(jí)別的開發(fā)周期。在開發(fā)過程中,需要在每一階段分別進(jìn)行行為仿真、功能仿真、門級(jí)時(shí)序仿真等仿真驗(yàn)證,而在測(cè)試階段需要自底向上依次從門級(jí)、元件功能級(jí)到系統(tǒng)行為級(jí)進(jìn)行測(cè)試。
2.3 時(shí)序測(cè)試用例設(shè)計(jì)要求
    FPGA的并行運(yùn)算和高響應(yīng)速度的特性,使其在對(duì)高速時(shí)序邏輯的處理中得到廣泛應(yīng)用。因此對(duì)FPGA系統(tǒng)功能、性能的測(cè)試中,不能僅僅局限于對(duì)穩(wěn)態(tài)輸入輸出的驗(yàn)證,還需要驗(yàn)證系統(tǒng)對(duì)時(shí)序信號(hào)的響應(yīng)及輸出量隨時(shí)間變化正確性的判斷。因此在測(cè)試用例的設(shè)計(jì)中,需要對(duì)系統(tǒng)輸入、輸出的時(shí)間變化趨勢(shì)進(jìn)行規(guī)定,并提供動(dòng)態(tài)輸出信號(hào)的判斷準(zhǔn)則,同時(shí)需要開發(fā)時(shí)序測(cè)試環(huán)境支持測(cè)試用例的執(zhí)行。
3 FPGA測(cè)試技術(shù)框架
3.1 測(cè)試級(jí)別

    把抽象的實(shí)體結(jié)合成單個(gè)或統(tǒng)一實(shí)體的過程稱為綜合,F(xiàn)PGA系統(tǒng)的每一步開發(fā)過程都可以稱為一個(gè)綜合環(huán)節(jié),即將自然語言表示經(jīng)過自然語言綜合轉(zhuǎn)換為HDL算法表示,再通過行為綜合轉(zhuǎn)換在寄存器傳輸(RTL)級(jí),進(jìn)一步通過邏輯綜合轉(zhuǎn)換為邏輯門的表示,最終通過結(jié)構(gòu)綜合轉(zhuǎn)換為版圖表示。對(duì)于每一個(gè)綜合環(huán)節(jié),都對(duì)應(yīng)響應(yīng)的測(cè)試級(jí)別,F(xiàn)PGA測(cè)試的“V”模型如圖1所示。

    與軟件測(cè)試一樣,在FPGA的開發(fā)階段,測(cè)試就扮演著驗(yàn)證和確認(rèn)的角色。但不同的是,F(xiàn)PGA的每一個(gè)綜合環(huán)節(jié)的輸出結(jié)果都是一種對(duì)設(shè)計(jì)的形式化表示方法,不但可以通過靜態(tài)的方法檢查驗(yàn)證,而且有強(qiáng)大的仿真工具能夠支持在開發(fā)階段對(duì)各個(gè)綜合環(huán)節(jié)進(jìn)行動(dòng)態(tài)仿真驗(yàn)證,這樣更有利于盡早發(fā)現(xiàn)缺陷,減少缺陷修改的成本。
    而在測(cè)試階段,在真實(shí)環(huán)境下,自底向上依次進(jìn)行門級(jí)、單元級(jí)、元件級(jí)和系統(tǒng)級(jí)測(cè)試,以分別對(duì)門級(jí)模型、RTL模型、行為模型和系統(tǒng)需求進(jìn)行驗(yàn)證。
    (1)門級(jí)測(cè)試:驗(yàn)證基本邏輯門的正確性。
    (2)單元測(cè)試:FPGA的單元包括并行代碼塊,以及順序代碼中進(jìn)程、函數(shù)和過程。在這一級(jí)別的測(cè)試中,對(duì)RTL模型規(guī)定的各單元功能、邏輯、接口等逐項(xiàng)進(jìn)行測(cè)試。
    (3)元件測(cè)試:在FPGA開發(fā)中,將具有一定功能和接口的電路封裝成的可復(fù)用單元稱為元件(component),通過對(duì)元件的例化和連接構(gòu)成具有更復(fù)雜功能的元件,直到構(gòu)成整個(gè)系統(tǒng)。在元件測(cè)試中,通過元件的輸入輸出接口,對(duì)元件的行為進(jìn)行驗(yàn)證。元件測(cè)試包括對(duì)元件集成的測(cè)試,從對(duì)最底層元件測(cè)試開始,是一個(gè)自底向上逐層集成的過程。
    (4)系統(tǒng)測(cè)試:針對(duì)完整的FPGA系統(tǒng)的測(cè)試,驗(yàn)證FPGA系統(tǒng)對(duì)規(guī)定的功能、性能等需求的滿足性。
    在FPGA系統(tǒng)開發(fā)過程中,邏輯綜合和結(jié)構(gòu)綜合過程基本通過綜合工具由計(jì)算機(jī)自動(dòng)完成,開發(fā)者主要是依據(jù)仿真結(jié)果進(jìn)行修改與優(yōu)化;而在自然語言綜合和行為綜合中,需要大量的人工介入,是缺陷引入的主要環(huán)節(jié),也是FPGA測(cè)試的重點(diǎn)。
3.2 測(cè)試類型
    與軟件測(cè)試相同,F(xiàn)PGA測(cè)試可分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。靜態(tài)測(cè)試包括文檔審查、代碼審查、靜態(tài)分析、代碼走查等類型。在代碼審查中,除了進(jìn)行軟件測(cè)試的相關(guān)檢查項(xiàng)外,還包括檢查代碼運(yùn)行時(shí)序的正確性、代碼的魯棒性和代碼的可綜合性。而在代碼走查中,需要沿程序的時(shí)序和信號(hào)流兩個(gè)相關(guān)維度,驗(yàn)證代碼的動(dòng)態(tài)執(zhí)行情況。
    動(dòng)態(tài)測(cè)試不但沿用軟件測(cè)試中一般采用的邏輯測(cè)試、功能測(cè)試、性能測(cè)試、接口測(cè)試、強(qiáng)度測(cè)試、余量測(cè)試、安全性測(cè)試、恢復(fù)性測(cè)試、邊界測(cè)試、數(shù)據(jù)處理測(cè)試等,還包含F(xiàn)PGA系統(tǒng)特有的下載與配置測(cè)試、魯棒性測(cè)試等。
    (1)下載與配置測(cè)試:測(cè)試系統(tǒng)是否能夠正確實(shí)現(xiàn)程序的下載和芯片的配置。一般需要進(jìn)行不同目標(biāo)芯片和編程方式的下載與配置測(cè)試,對(duì)可重構(gòu)FPGA系統(tǒng)重構(gòu)能力的測(cè)試。
    (2)魯棒性測(cè)試:驗(yàn)證系統(tǒng)能否避免干擾和沖突得到穩(wěn)定而可靠的輸出測(cè)試,一般需要測(cè)試輸出電平的穩(wěn)定性、輸出邏輯的確定性及系統(tǒng)抗電磁干擾的能力。
3.3 測(cè)試方法與測(cè)試環(huán)境
    白盒測(cè)試和黑盒測(cè)試是軟件測(cè)試中的兩大方法,在FPGA測(cè)試中同樣適用。除此之外,由于嵌入式邏輯分析儀的支持,使得灰盒測(cè)試在FPGA測(cè)試中具有很好的應(yīng)用前景。
    (1)白盒測(cè)試是結(jié)構(gòu)性測(cè)試方法,根據(jù)代碼的內(nèi)部特征設(shè)計(jì)、選擇測(cè)試用例。FPGA的白盒測(cè)試一般在仿真環(huán)境下進(jìn)行,可分為代碼仿真、門級(jí)仿真和時(shí)序仿真。代碼仿真不考慮硬件特性,輸出理想情況下源代碼執(zhí)行結(jié)果,具有直觀、速度快的特點(diǎn),可以在設(shè)計(jì)的最初階段盡早發(fā)現(xiàn)問題;門級(jí)仿真是針對(duì)代碼綜合后生成的門級(jí)網(wǎng)表或是實(shí)現(xiàn)后生成的門級(jí)模型進(jìn)行的仿真,可以檢驗(yàn)綜合或?qū)崿F(xiàn)后對(duì)系統(tǒng)或模塊功能的滿足性。時(shí)序在門級(jí)仿真的基礎(chǔ)上加入時(shí)延文件即時(shí)序仿真,時(shí)序仿真能夠比較真實(shí)地反映邏輯的時(shí)延與功能,但對(duì)于邏輯量大的系統(tǒng)耗時(shí)較長(zhǎng)。
    (2)黑盒測(cè)試是一種功能性測(cè)試方法,只測(cè)試產(chǎn)品對(duì)功能、性能等需求的滿足性,而不考慮產(chǎn)品的內(nèi)部結(jié)構(gòu)和處理過程。軟件測(cè)試中的測(cè)試方法和測(cè)試環(huán)境可以對(duì)FPGA中的組合邏輯進(jìn)行有效的測(cè)試。而對(duì)于時(shí)序邏輯,測(cè)試環(huán)境還包含了對(duì)動(dòng)態(tài)輸入、動(dòng)態(tài)數(shù)據(jù)采集的支持,以及對(duì)采集數(shù)據(jù)的比較分析。在測(cè)試用例的設(shè)計(jì)中,規(guī)定系統(tǒng)輸入、輸出隨時(shí)間變化的趨勢(shì),并對(duì)特殊的評(píng)價(jià)方法和通過準(zhǔn)則進(jìn)行定義。
    (3)目前主流的FPGA開發(fā)工具都提供了嵌入式邏輯分析儀工具,使得灰盒測(cè)試成為了可能。嵌入式邏輯分析儀的原理是在FPGA真實(shí)運(yùn)行環(huán)境內(nèi)部,利用冗余的芯片資源,將預(yù)制的系統(tǒng)內(nèi)部信號(hào)實(shí)時(shí)通過接口輸出。這樣就可以在軟件真實(shí)運(yùn)行中,監(jiān)視軟件內(nèi)部的信號(hào)、變量和狀態(tài),避免了由于輸入輸出域信息丟失以及容錯(cuò)環(huán)節(jié)造成的代碼缺陷無法暴露的問題,提高了FPGA代碼的測(cè)試性[7]。
4 應(yīng)用實(shí)例
    以軟件測(cè)試為基礎(chǔ)的FPGA測(cè)試技術(shù)已經(jīng)得到了成功的應(yīng)用。對(duì)某數(shù)字調(diào)制解調(diào)系統(tǒng)進(jìn)行了測(cè)試,該系統(tǒng)以Altera公司EP1C3T144芯片為宿主機(jī),采用VHDL語言編寫,實(shí)現(xiàn)了偏移四相相移鍵控(OQPSK)的調(diào)制、解調(diào)功能。
    測(cè)試項(xiàng)目組對(duì)該系統(tǒng)在元件級(jí)、系統(tǒng)級(jí)進(jìn)行了測(cè)試,包括靜態(tài)分析、代碼審查、邏輯測(cè)試、功能測(cè)試、性能測(cè)試、邊界測(cè)試、魯棒性測(cè)試、安全性測(cè)試等測(cè)試類型,其中:
    (1)靜態(tài)分析采用HDL Designer工具進(jìn)行了編碼規(guī)則檢查,共分析出違反編碼規(guī)則43處,其中2處存在代碼問題,得到了正確的修改,25處影響了代碼的可讀性和維護(hù)性,提出改進(jìn)建議,均進(jìn)行了相應(yīng)處理。
    (2)代碼審查發(fā)現(xiàn)代碼問題4處,均為代碼和設(shè)計(jì)文檔不一致所造成,全部修改正確,并提出一處影響邏輯門資源使用效率的改進(jìn)建議。
    (3)元件測(cè)試采用Altera Modelsim工具在仿真環(huán)境下進(jìn)行,共設(shè)計(jì)測(cè)試用例95個(gè),全部執(zhí)行通過。
    (4)系統(tǒng)測(cè)試環(huán)境由任意波形發(fā)生器Agilent 33250A、邏輯分析儀Agilent 16902B和示波器Agilent MS09404構(gòu)成動(dòng)態(tài)測(cè)試環(huán)境,如圖2所示,設(shè)計(jì)測(cè)試用例48個(gè),其中33個(gè)規(guī)定了輸入、輸出信號(hào)的動(dòng)態(tài)時(shí)序,測(cè)試用例全部執(zhí)行通過。

    經(jīng)過測(cè)試以及相應(yīng)的修改和回歸,該FPGA系統(tǒng)代碼質(zhì)量和可靠性得到了提高,系統(tǒng)功能、性能得到了驗(yàn)證。
    軟件測(cè)試技術(shù)在FPGA測(cè)試中的成功應(yīng)用,有效解決了FPGA系統(tǒng)的測(cè)試問題。通過測(cè)試,提高了硬件描述語言的編寫質(zhì)量和系統(tǒng)的可靠性,并對(duì)FPGA的電路行為進(jìn)行了有效的驗(yàn)證。動(dòng)態(tài)測(cè)試時(shí)序測(cè)試用例的自動(dòng)生成,以及系統(tǒng)輸出波形與預(yù)期的自動(dòng)比較和判斷,將成為未來進(jìn)一步研究的重點(diǎn)。隨著FPGA系統(tǒng)在各關(guān)鍵領(lǐng)域的進(jìn)一步普及,以軟件測(cè)試為基礎(chǔ)的FPGA測(cè)試將具有更廣闊的應(yīng)用前景。
參考文獻(xiàn)
[1] PAYAKAPAN T,LEE NI CHUNG,SHAHIN TOUTOUNCHI. A built-in self test for testing field programmable gate array(FPGAs) using partial reconfiguration[P].US,7302625,2007-11-27.
[2] DUTTON B F,STROUD C E.Built-in self-test of configurable logic blocks in virtex-5 FPGAs[C], Proc.IEEE Southeastern Symp.on System Theory,Tullahoma,2009:230-234.
[3] ASADI G.TAHOORI.M.B.Soft error rate estimation and  mitigation for SRAM- based FPGAs[C],ACM/SIGDA international Symposium on Field-Programmable Gate Arrays,Monterey,2005:149-160.
[4] MIN Y H.Why RTL ATPG[J].J Comp Sci&Technol,2002,17(2):113-117.
[5] BERTOLINO A.Software testing research:achievements,challenges,dreams[C],F(xiàn)uture of Software Engineering,Minneapolis,2007:85-103.
[6] AMENDOLA A M,BENSO A,CORNO F,et al.Fault behavior observation of a microprocessor system through a VHDL simulation-based fault injection experiment[C],Proceedings of the conference on European design automation,Geneva,1996:536-541.
[7] THANH BINH NGUYEN,CHANTAL ROBACH,MICHEL DELAUNAY.Testability analysis of reactive software[C]. IEEE International Workshop on Testability Assessment,2004,Washington:15-25.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 欧美一级日本一级韩国一级 | 久久精品免费全国观看国产 | 97国产影院 | xxxxx性欧美| 国产a精品 | 一级视频在线免费观看 | 老司机亚洲精品影院 | 欧美日韩无 | 精品欧美一区二区在线观看欧美熟 | 亚洲男人的天堂久久香蕉 | 欧美在线一 | 精品视频一区二区三三区四区 | 免费精品99久久国产综合精品 | 久久精品99 | 午夜成年人网站 | 一区二区三区免费看 | 美女网站色免费 | 国产精品免费看久久久 | 欧美日韩国产综合一区二区三区 | 午夜性片 | 日日摸天天摸狠狠摸视频 | 欧美大尺度aaa级毛片 | 欧美aaaa在线观看视频免费 | 国产日产久久高清欧美一区 | 性猛交毛片 | 喷潮白浆 | 日本激情视频在线观看 | 一级做a爰 | 成年美女黄网站色大 | 欧美观看一级毛片 | 一级做a爰全过程免费视频毛片 | 日本人一级毛片视频 | 九九精品在线观看 | 久久美女精品国产精品亚洲 | 国产精品李雅在线观看 | 在线观看亚洲免费视频 | 中文字幕在线播放视频 | 亚洲视频日韩 | 久久精品视频在线观看 | 九九99久麻豆精品视传媒 | 国产欧美久久久另类精品 |