日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁(yè)編程開(kāi)發(fā)其它知識(shí) → verilog HDL的系統(tǒng)任務(wù)及testbench寫(xiě)法

      verilog HDL的系統(tǒng)任務(wù)及testbench寫(xiě)法

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站整理時(shí)間:2010/7/14 15:34:33字體大。A-A+

      作者:佚名點(diǎn)擊:1231次評(píng)論:0次標(biāo)簽: 模塊

      • 類型:遠(yuǎn)程監(jiān)控大小:671KB語(yǔ)言:中文 評(píng)分:2.7
      • 標(biāo)簽:
      立即下載

      通用的HDL包括VHDL和verilog HDL
      HDL既可以用來(lái)design也可以用來(lái)test/confirm
      用HDL寫(xiě)出來(lái)的測(cè)試文件稱為test bench
      被測(cè)試的模塊成為device under test,簡(jiǎn)稱DUT,既可以是behavioral級(jí)描述也可以是RTL級(jí)或gate級(jí)描述
      verilog simulator是verilog語(yǔ)言的仿真器,waveform viewer是波形觀測(cè)器
      test bench中應(yīng)該例化DUT,對(duì)應(yīng)端口名稱可以不同
      testbench中使用兩種信號(hào)類型: wire reg,test中用法與design時(shí)一樣
      wire類型不能在always或initial塊中使用
      reg類型只能在always或initial塊中使用
      initial和always是順序控制模塊,但它們之間是在仿真開(kāi)始時(shí)并行執(zhí)行的
      initial和always塊中可以插入begin end或fork join來(lái)安排執(zhí)行順序
      tesbench開(kāi)始需要給所有信號(hào)設(shè)置初值,一般是一個(gè)initial塊
      默認(rèn)的wire類型是Z 默認(rèn)的reg類型是X
      `timescale設(shè)置了時(shí)間步長(zhǎng)和時(shí)間精度
      測(cè)試文件中兩項(xiàng)重要的元素是clocks和resets
      $display和$monitor格式相同,但?不同
      task只能在initial或者always中被調(diào)用,用于將重復(fù)出現(xiàn)的操作打包出來(lái)單獨(dú)存放
      后仿真時(shí)需要庫(kù)和SDF文件

      所有系統(tǒng)任務(wù)都以$開(kāi)頭,都只能在initial或always模塊里(在initial塊中只執(zhí)行一次,在always里滿足條件將不斷執(zhí)行)

      顯示、探測(cè)、監(jiān)控任務(wù)
      %h%H %d%D %b%B %O %o %C%c %S%s %T%t %M%m
      以上都以表達(dá)式的最大可能值所占用的位數(shù)來(lái)顯示表達(dá)式當(dāng)前值
      %0h%0H %0d%0D %0b%0B %0O %0o
      以上都以表達(dá)式的當(dāng)前值最小占用的位數(shù)來(lái)顯示表達(dá)式當(dāng)前值
      輸出時(shí),如果所有位均為不定值,則輸出結(jié)果為小寫(xiě)的x;所有位均為高阻則輸出結(jié)果為小寫(xiě)的z
      輸出時(shí),如果部分位為高阻值,則輸出結(jié)果為大寫(xiě)的X;部分位為高阻則輸出結(jié)果為大寫(xiě)的Z

      $display $displayb $displayo $displayh
      格式: $display("simulation time is %t",$time);
      $write $writeb $writeo $writeh
      格式: $write("simulation time is %t",$time);
      $display $write這兩個(gè)任務(wù)的作用基本相同,唯一的區(qū)別就是$display任務(wù)執(zhí)行完以后自動(dòng)添加一個(gè)換行符n,而$write不自動(dòng)添加
      $display("a=%d");和$write("a=%dn");作用相同
      用于在滿足某個(gè)條件(如時(shí)鐘邊沿來(lái)時(shí))是輸出仿真數(shù)據(jù)
      $strobe $strobeb $strobeh $strobeo
      格式: $strobe("the flip-flop value is %b at time %t",q,$time);
      用于在指定的時(shí)刻之后輸出顯示仿真數(shù)據(jù)
      $strobe和$display不同之處在于 $display是遇到該時(shí)刻時(shí)執(zhí)行,$strobe是當(dāng)前時(shí)刻結(jié)束(下一時(shí)刻開(kāi)始)時(shí)執(zhí)行

      以上任務(wù)通常都在always塊中執(zhí)行
      $monitor $monitorb $monitorh $monitoro
      格式: $monitor("at %t, d=%d,clk=%d",$time,d,clk);
      連續(xù)監(jiān)控指定的參數(shù),只要參數(shù)表中的參數(shù)值發(fā)生變化,就在當(dāng)前仿真時(shí)刻結(jié)束時(shí)顯示
      $monitoron開(kāi)啟所有的$monitor任務(wù) $monitoroff關(guān)閉所有的$monitor任務(wù)
      在多模塊測(cè)試時(shí)$monitoron 和$monitoroff用于使能和關(guān)閉本模塊的監(jiān)視功能
      $display $write $strobe 多用于always模塊,$monitor用于initial模塊
      always(a or b or c)$display("....");效果與 initial $monitor("...");一樣

      文件的打開(kāi)與關(guān)閉:
      $fopen打開(kāi)一個(gè)文件(以整數(shù)文件指針?lè)绞? 格式:integer file_pointer=$fopen(file_name)
      $fclose關(guān)閉一個(gè)文件(以整數(shù)文件指針?lè)绞? 格式: $fclose(file_pointer)

      將信息輸出到文件:
      顯示任務(wù) 寫(xiě)入任務(wù) 探測(cè)任務(wù) 監(jiān)控任務(wù)都有用于向文件輸出信息的相應(yīng)命令,即
      $fdisplay $fdisplayb $fdisplayh $fdisplayo
      $fwrite $fwriteb $fwriteh $fwriteo
      $fstrobe $fstrobeb $fstrobeh $fstrobeo

      $fmonitor $fmonitorb $fmonitorh $fmonitoro
      與相應(yīng)的無(wú)文件輸出命令相比,只是多了打開(kāi)文件、寫(xiě)入文件、關(guān)閉文件三個(gè)步驟

      從文件中讀數(shù)據(jù):
      $readmemb 讀取二進(jìn)制文件
      $readmemh 讀取十六進(jìn)制文件
      格式:
      $readmemb("<數(shù)據(jù)文件名>",<存儲(chǔ)器名>);
      $readmemb("<數(shù)據(jù)文件名>",<存儲(chǔ)器名>,<起始地址>);
      $readmemb("<數(shù)據(jù)文件名>",<存儲(chǔ)器名>,<起始地址>,<結(jié)束地址>);


      仿真控制任務(wù):
      $stop
      格式: 在initial中 #500 $stop
      $finish
      格式: 在initial中 #500 $finish
      $stop暫停仿真后返回軟件操作主窗口,將控制權(quán)交給user
      $finish終止仿真后關(guān)閉軟件操作主窗口

      時(shí)間顯示格式:
      $time 返回64位整型時(shí)間
      $stime 返回32位整型時(shí)間
      $realtime 返回實(shí)型時(shí)間
      $time 任何時(shí)間以`timescale定義的時(shí)間單位為單位
      $realtime 任何時(shí)間以`timescale定義的時(shí)間單位+時(shí)間精度為單位

      隨機(jī)函數(shù):
      $random(seed)
      seed必須是reg或者integer寄存器類型,返回的隨機(jī)數(shù)是32位有符號(hào)數(shù)
      $random%60 產(chǎn)生的是-59~59之間的隨機(jī)數(shù)
      {$random}%60產(chǎn)生的是0~59之間的隨機(jī)數(shù)
      可以讓出現(xiàn)時(shí)間隨機(jī) 也可以讓某些位隨機(jī)出現(xiàn)1或0

      層次命令: 模塊標(biāo)示符 任務(wù)標(biāo)示符 函數(shù)標(biāo)示符 程序塊標(biāo)識(shí)符,通過(guò)層次命令可以訪問(wèn)到任何變量
      其他模塊中共享task和function的方法: 1.使用層次路徑名 2.使用頭文件.h來(lái)包含需要共享的funtion和task

      VCD文件(value change dump文件)是常用的波形記錄文件,與波形的作用等同,是一個(gè)ASCII文件
      $dumpon $dumpoff 在一個(gè)initial塊中控制dump的開(kāi)始和結(jié)束
      $dumpvars $dumpfile 分別在initial中指定VCD文件名(*.dump)和變量
      dump系統(tǒng)任務(wù)基本都在initial模塊中使用

      測(cè)試模塊的構(gòu)成部分:
      測(cè)試模塊命名: modulename_tb
      輸入輸出信號(hào)(與veilog電路描述文件中的端口屬性相反)
      initial或always塊來(lái)產(chǎn)生激勵(lì)信號(hào)
      initial或always塊中加入系統(tǒng)任務(wù)
      模塊實(shí)例化
      測(cè)試中常用的波形有兩類:
      initial塊及塊內(nèi)延遲來(lái)產(chǎn)生特定序列
      always塊及內(nèi)內(nèi)延遲來(lái)產(chǎn)生周期性序列
      常用always塊來(lái)描述時(shí)鐘,always產(chǎn)生時(shí)鐘的兩種方法;

      常用一個(gè)initial設(shè)置初值;

      常用一個(gè)initial來(lái)設(shè)置仿真的啟?刂;
      initial中用forever(無(wú)數(shù)次)和repeat(有限次)產(chǎn)生循環(huán)信號(hào)
      技巧:(用assign及延遲可以產(chǎn)生相移時(shí)鐘、模塊調(diào)用方法可以產(chǎn)生多種規(guī)格的時(shí)鐘、讀入.vec文件中數(shù)據(jù)以及比較的寫(xiě)法)


      quartus的語(yǔ)法診錯(cuò)能力比modesim強(qiáng), modesim的輸入語(yǔ)法顯示比quartus好

      `include命令:
      一個(gè)`include命令只能指定一個(gè)被包含模塊
      意義是在包含文件里復(fù)制被包含模塊的代碼
      易于將一個(gè)模塊做成特定功能的塊,然后結(jié)構(gòu)化組織起來(lái)
      使用時(shí)由高層include低層模塊,所有模塊文件放在同一個(gè)文件夾內(nèi)

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過(guò)難過(guò)
        • 5 囧
        • 3 圍觀圍觀
        • 2 無(wú)聊無(wú)聊

        熱門(mén)評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)