新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于軟件測試技術(shù)的FPGA測試研究

基于軟件測試技術(shù)的FPGA測試研究

作者: 時間:2011-08-01 來源:網(wǎng)絡(luò) 收藏

現(xiàn)場可編程門陣列()的出現(xiàn)大大壓縮了電子產(chǎn)品研發(fā)的周期和成本,由于器件具有高密度、低功耗、高速、高可靠性等優(yōu)點(diǎn),在航空、航天、通信、工業(yè)控制等方面得到了大量應(yīng)用。隨著應(yīng)用領(lǐng)域的擴(kuò)展以及重要性和復(fù)雜程度的提高,其可靠性問題變得越來越突出,因此對FPGA系統(tǒng)的需求變得尤為迫切。

目前FPGA技術(shù)的研究主要集中于對FPGA芯片資源的,通過編程覆蓋FPGA所有的邏輯資源[1,2]和連接資源[3],驗(yàn)證每個單元基本邏輯功能的正確性,而無法對電路的整體行為進(jìn)行有效的驗(yàn)證。硬件描述語言(HDL)是FPGA電路設(shè)計的主要實(shí)現(xiàn)方式,和一樣,HDL也是人腦思維的邏輯產(chǎn)物,同樣存在著不希望或不可接受的人為錯誤。隨著設(shè)計復(fù)雜程度的提高,由HDL引入的缺陷成為影響FPGA可靠運(yùn)行的關(guān)鍵因素,對FPGA電路行為的測試成為提高系統(tǒng)質(zhì)量和可靠性的重要環(huán)節(jié)。

MIN Y.H.提出了在FPGA系統(tǒng)中進(jìn)行高層測試的必要性[4]。高層測試即任何高于門級的測試,考慮的是高層描述,如HDL、狀態(tài)圖、功能塊圖等,通過高層測試發(fā)現(xiàn)設(shè)計中的缺陷,并在系統(tǒng)的開發(fā)階段充分考慮測試需求,指導(dǎo)系統(tǒng)設(shè)計。以此為基礎(chǔ),先后提出了一系列具體的實(shí)施方法,如層次化的測試方法、基于電路功能或結(jié)構(gòu)的測試方法、基于模擬的測試方法等。

1 研究背景

1.1 概述

在IEEE的工程標(biāo)準(zhǔn)術(shù)語中,軟件測試定義為使用人工和自動手段來運(yùn)行或測試某個系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或找出預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。

按照測試級別,軟件測試包括單元測試、部件測試、配置項(xiàng)測試、系統(tǒng)測試等;按照測試方法,軟件測試可分為動態(tài)測試和靜態(tài)測試,動態(tài)測試又可分為黑盒測試和白盒測試。靜態(tài)測試包括了代碼審查、靜態(tài)分析、代碼走查等測試類型;動態(tài)測試包括邏輯測試、功能測試、性能測試、接口測試等測試類型。白盒測試通常采用以邏輯覆蓋衡量的結(jié)構(gòu)性;黑盒測試通常采用包括功能分解、等價類劃分、邊界值分析等在內(nèi)的功能性測試技術(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ī)理。因此,將軟件測試的成熟技術(shù)用于FPGA測試,在理論和操作上均具有可行性。

但是,由于軟硬件系統(tǒng)本質(zhì)上的不同,F(xiàn)PGA和軟件系統(tǒng)在測試要求上存在一定的差異,表1從開發(fā)方式、代碼執(zhí)行順序、受硬件影響程度、執(zhí)行結(jié)果的隨機(jī)性以及應(yīng)用領(lǐng)域等方面,歸納了FPGA和軟件系統(tǒng)的不同之處。


2 FPGA特有測試要求

本文引用地址:http://2s4d.com/article/191084.htm

針對FPGA和軟件系統(tǒng)的差異,存在不同于軟件測試特有的測試要求,包括HDL代碼檢測要求、測試級別要求和時序測試用例設(shè)計要求等。

2.1 HDL代碼檢測要求

由于HDL代碼并行執(zhí)行并存在硬件環(huán)境的影響以及競爭、冒險等不確定結(jié)果,在白盒測試中具有不同于軟件測試的要求。一方面,不同于軟件的控制流和數(shù)據(jù)流,并行程序的時序和信號流是一對相互依存的信息,程序的邏輯狀態(tài)由二者共同確定。這就要求在測試中,既要依據(jù)信號流圖對組合邏輯進(jìn)行驗(yàn)證,還要依據(jù)時序圖分析時變信號的時序一致性。另一方面,硬件特征對運(yùn)行結(jié)果的影響也是代碼檢測中需要考慮的因素[6]。在編碼規(guī)范的制定上,應(yīng)當(dāng)充分考慮并行程序的特點(diǎn),正確處理與硬件資源之間的關(guān)系,避免競爭、冒險等不確定結(jié)果的產(chǎn)生。

2.2 測試級別的要求

與傳統(tǒng)自底向上的電子設(shè)計技術(shù)不同,F(xiàn)PGA采用與軟件開發(fā)相同的自頂向下的設(shè)計方法。一個項(xiàng)目的開發(fā)過程,從系統(tǒng)的分解、RTL模型的建立、門級模型的產(chǎn)生,到最終的可以物理布線實(shí)現(xiàn)的底層電路,是一個從高抽象級別到低抽象級別的開發(fā)周期。在開發(fā)過程中,需要在每一階段分別進(jìn)行行為仿真、功能仿真、門級時序仿真等仿真驗(yàn)證,而在測試階段需要自底向上依次從門級、元件功能級到系統(tǒng)行為級進(jìn)行測試。

2.3 時序測試用例設(shè)計要求

FPGA的并行運(yùn)算和高響應(yīng)速度的特性,使其在對高速時序邏輯的處理中得到廣泛應(yīng)用。因此對FPGA系統(tǒng)功能、性能的測試中,不能僅僅局限于對穩(wěn)態(tài)輸入輸出的驗(yàn)證,還需要驗(yàn)證系統(tǒng)對時序信號的響應(yīng)及輸出量隨時間變化正確性的判斷。因此在測試用例的設(shè)計中,需要對系統(tǒng)輸入、輸出的時間變化趨勢進(jìn)行規(guī)定,并提供動態(tài)輸出信號的判斷準(zhǔn)則,同時需要開發(fā)時序測試環(huán)境支持測試用例的執(zhí)行。

3 FPGA測試技術(shù)框架

3.1 測試級別

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


上一頁 1 2 下一頁

關(guān)鍵詞: FPGA 軟件 測試技術(shù) 測試

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉