當前位置:首頁 > EDA > 電子設計自動化
[導讀]該方法應用TEXTIO和MATLAB來輔助仿真測試過程,使問題得到較好的解決。以電視圖像實時多目標捕獲單元的仿真測試為例。全面、細致地討論這種新方法。

摘要:在基于FPGA的復雜數(shù)字系統(tǒng)的仿真測試中,設計者常常面臨各種挑戰(zhàn)。以數(shù)字圖像處理系統(tǒng)的仿真為例。如果采用完備性仿真測試方法,那么測試矢量的數(shù)量將是非常巨大的;如果采用常規(guī)方法.不僅效率不高.而且可能無法達到仿真測試的目的。針對這個難題,提出一種進行仿真測試的新方法.該方法應用TEXTIO和MATLAB來輔助仿真測試過程,使問題得到較好的解決。以電視圖像實時多目標捕獲單元的仿真測試為例。全面、細致地討論這種新方法。
關 鍵 詞:TEXTIO;MATLAB;TestBench;仿真;測試激勵
中圖分類號:TN707 文獻標識碼:A 文章編號:。1006—6977(2006)01—0004—04

1 引言
    在對復雜數(shù)字系統(tǒng)進行仿真測試時,設計者常常面對測試向量數(shù)量龐大而難以實現(xiàn)的問題。以數(shù)字圖像處理系統(tǒng)的仿真測試為例,如果采用完備性測試方法.那么所需測試向量的數(shù)量將非常巨大,甚至無法實現(xiàn):而采用測試向量波形圖或者用HDL語言描述等常用方法.不僅仿真測試工作的效率低下,而且工作量巨大。在數(shù)字圖像處理系統(tǒng)中,一幀320x240的數(shù)字圖像所產(chǎn)生的測試向量數(shù)量達到320x240x2=153 600個。無論采用完備性測試方法還是向量波形圖或者.HDL語言描述的方法,由于測試向量的數(shù)量極其巨大,采用這些方法都難以進行仿真測試。

    針對這個難題,筆者提出一種進行仿真測試的新方法.該方法應用TEXTI0和:MATLAB來輔助仿真測試過程.使測試向量數(shù)量巨大、難以處理的難題得到很好的解決。以電視視頻系統(tǒng)中實時多目標捕獲單元的仿真測試為例.對這種新方法進行全面的討論。

2 基于TEXTIO的VlII)L仿真
2.1 TEXTIO的功能

    TEXXTl0是VHDL標準庫STD中的程序包(Package),它提供了VHDL與磁盤文件直接訪問的橋梁。TEXTIO定義了3種類型:LINE類型、TEXT類型及SIDE類型。TEXTI0在程序包中定義了一些訪問文件的過程(Procedure)。

    TEXTIO提供的基本過程有:
    (1)procedure READLNE(文件變量,行變量),用于從指定文件讀取一行數(shù)據(jù)到行變量中;
    (2)procedure WRITELNE(文件變量,行變量),用于向指定文件寫入行變量所包含的數(shù)據(jù);
    (3)procedure READ(行變量,數(shù)據(jù)類型),用于從行變量中讀取相應數(shù)據(jù)類型的數(shù)據(jù).根據(jù)參數(shù)的數(shù)據(jù)類型及參數(shù)個數(shù)的不同.有多種重載方式,TEX-TIO提供了bit、bit、bit_vector、BOOLEAN、character、in-teger、real、string、time數(shù)據(jù)類型的重載;
    (4)mcedure WRITE(行變量,數(shù)據(jù)變量,寫入方式,位寬),該過程將數(shù)據(jù)寫入行變量。其中,寫入方式表示寫在行變量的左邊還是右邊,其值只能為left或right,位寬表示寫入數(shù)據(jù)時占的位寬。例如write(Oufljne,OutData,left,2/表示將變量OutData寫入LINE 變量OutLine的左邊,占2個字節(jié)。

2.2  仿真測試方案

    使用TEXTO和MNTLAB輔助TestBench進行復雜數(shù)字系統(tǒng)仿真的方案框圖如圖1所示。

2.3  仿真測試步驟
2.3.1  使用MATLAB生成測試激勵文件

    MATLAB是矩陣實驗室(Matrix Laboratory)的縮寫,是1984年MathWorks公司推出的軟件。經(jīng)過20多年的發(fā)展,MATLAB已成為通用科技計算、圖視交互系統(tǒng)和程序語言,廣泛應用于研究和解決各種具體工程問題。

    在復雜數(shù)字系統(tǒng)仿真中,用戶可以利用MAT-LAB的強大處理功能生成測試激勵文件。測試激勵文件的數(shù)據(jù)格式由設計者自行定義。測試激勵文件應包含輸入信號的測試激勵數(shù)據(jù).也可以包含輸出信號的期望輸出數(shù)據(jù).這些內(nèi)容常常以.ASCII碼表示。

2.3.2  編寫TestBench

    TestBench是測試平臺程序。TEXTI0的使用是通過TestBench來進行的,TestBench利用TEXTIO讀取測試激勵文件或寫入仿真結果輸出。進行復雜數(shù)字系統(tǒng)仿真時,用戶根據(jù)測試的目的和要求設計TestBench。

2.3.3  在Modelsim中進行仿真

    Modelsim是Model Technology(Mentor Graphics的子公司)的HDL(Hardware Description Language)仿真軟件??梢詫崿F(xiàn)VHDL、Verilog及VHDL一Ver-ilog混合設計的仿真。Modelsim為’TestBench提供一種良好的HDL仿真環(huán)境。

2.3.4  結果分析

    仿真結束后,仿真結果是否符合要求,用戶可以通過二種方法來判斷。一種是應用軟件自動判斷。即通過TestBench或其他軟件(如MATLAB)對仿真輸出結果和期望輸出結果進行對比,從而得到分析結果:另外一種是人工判斷.即設計者自行對仿真輸出結果和期望輸出結果進行對比,從而得到分析結果。

3  仿真測試實例
3.1  電視圖像實時目標捕獲單元功能

    電視圖像實時目標捕獲單元(以下簡稱待測單元)具有對電視圖像中的目標圖像進行實時捕獲的功能。本例將用TEXllO和MATLAB輔助Test-Bench對待測單元進行仿真測試。

3.2  需要產(chǎn)生的測試信號及波形

    待測單元輸入信號的時序如圖2所示。其中,clk、vsy、hsy和ccd分別代表像素時鐘、數(shù)字化后的場同步、行同步和二值圖像信號。


    用戶設計的測試激勵信號即測試激勵文件中輸入信號的激勵數(shù)據(jù),應符合圖2所示時序的要求。

3.3  測試信號的產(chǎn)生

    在MATLAB的開發(fā)環(huán)境中.通過編程可以生成測試激勵文件。
    以下是生成測試激勵程序的核心代碼:
    image=imread(‘pic.bmp’);        %讀取圖像文件
    [YN,XN]=size(image);              %得到圖像大小
    FZ=20;                             %晶體振蕩器頻率(MHz)
    %定義常數(shù)                          %對應于圖2所示的時序
    POSTIME=52.2;                     %行正程時間(μ8)
    NEGTIME=11.8;                     %行逆程時間(μs)
    HORTIME=64;                        %行正逆程總時間
    VSYTIME=1615;                      %場信號時間(μB)
    PPDOT=POSTIME*FZ/XN;              %行正程時間*晶體振
    蕩器頻率,圖像X方向分辨率
    ……

    fid=fopen(‘TestVectors.inp’,‘W’) ;%指定測試激勵文件的文件名稱
    for j=1:1:YN;
    yy_j;xx=0;
    for i=l:1:HORTIME*FZ;
    %產(chǎn)生行同步激勵
    if(i<(HFNTIME+HDLTIME)*FZ)(i>(HFNTIME+HDLTIME+HSYTIME)*FZ)
    hsy=l;
else
    hsy=0;
end;
%產(chǎn)生像素時鐘激勵
if  clk==1
    clk=0;
else
    clk=l;
end;
%產(chǎn)生CCD激勵
if i>NEGTIME*FZ
    xx=round((i-NEGTIME*FZ)/PPDOT+0.45):
    ccd=round(image(yy,xx));
else
    ccd=0;
end;
    %將激勵寫入測試激勵文件
    fprintf md.‘%d%d%d%d%d%d、Il’,clk,ccd,hsy,vsy);
    end;
end;
    產(chǎn)生的測試激勵文件名稱為TestVectors.inp,激勵內(nèi)容以ASCII碼表示,信號之間用空格隔開,且一行代表一次激勵。下面是測試激勵文件中的一段內(nèi)容,激勵包含clk,ccd,hsy,vsy 4個信號:
    0 0 1 1—clk=0 eed=0 hsy=l vsy=l
    1 0 1 1—clk=l ccd=0 hsy=l vsy=1
    …

    0 0 0 1——clk=O ccd=0 hsy=0 vsy=1
    …    

    進行仿真時。TestBeneh應用TEXTIO通過逐行讀取測試激勵文件得到待測單元輸入信號的激勵。

3.4  編寫TestBench

    TestBench調(diào)用TEXTIO讀取測試激勵文件得到激勵,然后將這些激勵分別驅動到待測單元的輸入端口。同時,TestBench讀取待測單元的輸出結果,調(diào)用TEXTIO將仿真輸出結果寫入文件名稱為Re-sult.out的仿真結果輸出文件。

    以下是TestBeneh的核心代碼:
    testprocess:process
    file vector_file:text open read_mode is“TestVectors.
    inp”:一指定測試激勵文件
    file output_file:text open write_mode is“Reset.out”:
    一指定仿真結果輸出文件
    variable invecs,outvecs:line;
    variable good:boolean;
    variable eh:eharacter;
    ……

    while not endfile(veetor_file)loop
    readline(veetor_file.invecs);一讀出測試激勵文件一行內(nèi)容.得到激勵
    read(invees,vclk,good); 一一讀取一個值給信號vclk
    read(invees,ch); 一一讀取空格
    ……

    read(invees,wBy,good); 一讀取一個值給信號vvsy
    read(invecs,ch); 一讀取空格
    ……

    clk<=vclk;一驅動待測單元的輸入信號clk
    ccd<=vced;一驅動待測單元的輸入信號ccd
    hsy<=vhsy;一驅動待測單元的輸入信號hsy
    vsy<=wsy;一驅動待測單元的輸入信號vsy
    ……

    caseiis
    when 0=>out_string:=“frame_Yup0:”:一將目標0左上角Y坐標寫入仿真結果
    when 1=>out_string=“frame_Ydn0:”:一將目標0右下角Y坐標寫入仿真結果
    when 14=>out_strlng:=“frame_Xli3:”:一將目標3左上角X坐標寫入仿真結果
    when 15=>out_string:=“frame_Xrt3:”:一將目標3右下角X坐標寫入仿真結果
    when other8=>null;
    end case;
    write(outvees,string’(out_string));
    ……

3.5 Modelsim中顯示的測試波形及測試結果
   
在Modelsim提供的HDL仿真環(huán)境中,運行TestBeneh進行仿真測試,得到測試向量波形(如圖3所示)、仿真波形(如圖4所示)和仿真輸出結果文件ResuIt.out。對仿真輸出結果進行分析表明,仿真輸出的目標位置與輸入電視圖像中的目標位置完全一致。

    本例的結果分析是通過人工對比進行的。還可以將仿真預期輸出結果保存在測試激勵文件或其他文件中.TestBench調(diào)用TEXTIO讀取仿真預期輸出結果.并和仿真實際輸出結果進行對比,然后自動判斷結果是否正確。在某些場合下,例如對VHDL編寫的處理器進行仿真調(diào)試時,用戶可以將包括指令類型、源地址、目標地址在內(nèi)的指令保存成文本文件。TestBench調(diào)用TEXTIO讀取這些指令。同時.TestBeneh調(diào)用TEXTIO將結果及中間變量保存成文本文件,以便設計者事后分析和查找問題的原因。

4  結束語
    TEXTIO程序包使VHDL的仿真功能得到拓展。MATLAB是研究和解決工程問題的有力工具。在基于FPGA的復雜數(shù)字系統(tǒng)的仿真測試中,靈活應用TEXTIO和MATLAB等工具包能很好地解決仿真測試中面臨的測試向量龐大和難以處理的問題。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉