精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用display提高debug效率呢?

sanyue7758 ? 來源:IC的世界 ? 2023-08-27 17:25 ? 次閱讀

1、display的使用

verilog中雖然沒有system verilog的assertion,但是我們依舊可以使用display打印檢查各類錯誤,在RTL級的仿真中能夠快速定位問題。

例如:

檢查不合理的配置,不合理的配置組合;

檢查不合理的輸入數(shù)據(jù)類型,例如vld/sop/eop 組合缺少了sop或者eop;

案例:

如下案例中,如果復(fù)位釋放且cfg_mode_in為INVLD_CFG狀態(tài),則打印ERROR。%0t表示的是以當前時間格式顯示,即仿真中的時間。%0t中的0指的是以數(shù)值的真實位寬顯示,不會額外再補充0。%m 顯示當前模塊層級,即下圖中的display_exp_top.u_display_exp。$write在屏幕顯示時是不換行的,$display自帶換行符,顯示后換行。

Verilog代碼

`timescale 1ns/1ps`define INVLD_CFG 2'b0module display_exp (   input                                               clk                                  ,   //   input                                               rst_n                                ,   //   input       [1:0]                                   cfg_mode_in                              //);  reg   [1:0]  cfg_mode ;  always@(posedge clk or negedge rst_n)if(~rst_n)          cfg_mode <= 1'b0;else          cfg_mode <= cfg_mode_in; `ifdef WAR_ERR_PRINT  always@(posedge clk or negedge rst_n)     if((rst_n==1)&&(cfg_mode_in==`INVLD_CFG))       begin          $write("%0t ps: %m : ERROR : ",    $time) ;          $display("cfg_mode not be INVLD CFG when rst_n is release") ;      end `endifendmodule

Testbench

module display_exp_top();


reg clk;
reg rst_n;
reg [1:0] cfg_mode_in ;




initial begin
clk = 0;
forever #1 clk = ~clk;
end


initial begin
rst_n = 1'b0;
   #2.5 rst_n = 1;
end




display_exp  u_display_exp(
.clk(clk),
.rst_n(rst_n),
.cfg_mode_in(cfg_mode_in)
);


initial begin
cfg_mode_in = 2'b0 ;
   #10
cfg_mode_in = 2'b1 ;
   #10
cfg_mode_in = 2'b10 ;
   #10
cfg_mode_in = 2'b11 ;
end




endmodule

2、打印效果

25e40cba-4360-11ee-a2ef-92fbcf53809c.png25f8ea68-4360-11ee-a2ef-92fbcf53809c.png

3、注意事項

$write和$display是不可綜合的語句,因此在設(shè)計中,我們通常使用宏定義來生效打印語句。案例中就采用了`ifdef WAR_ERR_PRINT和`endif。在RTL仿真中,可以生效WAR_ERR_PRINT,而在綜合時不能生效WAR_ERR_PRINT。

4、打印的優(yōu)缺點

采用$display的優(yōu)勢在于它不會占用硬件資源,因此設(shè)計人員可以添加任意多的檢測語句,方便快速定位問題。缺點就是不可綜合,在網(wǎng)表中以及芯片中不存在此檢測手段,無法像中斷,統(tǒng)計計數(shù)那樣去debug問題。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片設(shè)計
    +關(guān)注

    關(guān)注

    15

    文章

    1004

    瀏覽量

    54815
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1016

    瀏覽量

    83646
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    385

    瀏覽量

    59710
  • Verilog語言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8219

原文標題:Verilog :使用display 提高debug效率

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    提高LED驅(qū)動電源效率的八種技巧

    大家都知道提高LED驅(qū)動電源效率最常見的就是優(yōu)化電子變壓器參數(shù)設(shè)計,減少振鈴帶來的渦流損耗。但是除了這樣還有沒有相關(guān)的技巧?現(xiàn)在跟大家分享提高LED驅(qū)動電源
    發(fā)表于 09-22 16:21 ?4268次閱讀

    提高待機效率的方法

    提高待機效率的方法  根據(jù)損耗分析可知,切斷啟動電阻,降低開關(guān)頻率,減小開關(guān)次數(shù)可減小待機損耗,提高待機效率。具體的方法有:降低時鐘頻率;由高頻工作模式切換至低頻工作模式,如準諧振模式
    發(fā)表于 06-10 10:21

    如何提高STM32的學(xué)習(xí)效率

    如何提高STM32的學(xué)習(xí)效率
    發(fā)表于 11-08 17:23

    怎么提高labview的運行效率

    怎么提高labview的運行效率?那位給出點建議
    發(fā)表于 02-25 10:09

    無線充電怎么提高效率,急需

    無線充電怎么提高效率,急需
    發(fā)表于 10-19 10:43

    怎樣做才能提高電路板的維修效率?

    怎樣做才能提高電路板維修效率?有哪些原則需要去遵循?
    發(fā)表于 04-23 06:40

    如何提高線性穩(wěn)壓器的效率

    開關(guān)電源基礎(chǔ)線性穩(wěn)壓器等效電路如果輸入是39V,輸出是13V,那么效率為33.3%,過低的效率導(dǎo)致能量的浪費。如何提高線性穩(wěn)壓器的效率?這
    發(fā)表于 10-29 09:11

    怎么通過修改電源選項提高cpu使用效率

    怎么通過修改電源選項提高cpu使用效率~首先,確定你的系統(tǒng)是win10,1804版本以上。其次,管理員身份打開windows powershell,輸入powercfg
    發(fā)表于 12-27 06:53

    怎么才能提高開關(guān)電源的效率

    我公司要做個5.25V,5.5A,輸入174-500VAC ,效率為80%的開關(guān)電源;我用EFD25磁芯,匝比為112/3/14,頻率為65KHZ,做出來的效率僅有65%,請教各位大俠,怎么調(diào)才能提高電源的
    發(fā)表于 08-01 10:58

    如何提高led發(fā)光效率

    過去十多年來,通過在材料和器件設(shè)計方面的改進,使得LED的發(fā)光效率獲得了極大提高。在2000年,外量子效率為25%,而如今對藍光GaN基LED最好的外量子效率已超過70%。圖2.9給出
    的頭像 發(fā)表于 01-29 14:30 ?1.2w次閱讀

    如何提高伺服液壓機的作業(yè)效率

    如何提高伺服液壓機的作業(yè)效率? 伺服液壓機的生產(chǎn)使用過程中,除了留意操作時的規(guī)范和守時的修理和養(yǎng)護,咱們還要想辦法提高伺服液壓機的作業(yè)效率
    發(fā)表于 07-12 10:42 ?644次閱讀

    有沒有辦法像debug RTL代碼一樣將UVM中變量拉到波形上看

    我們常用的debug UVM的方法是通過打印log實現(xiàn)。有沒有辦法像 debug RTL代碼一樣將 UVM 中變量拉到波形上看?答案是有的,下面讓我們看看是怎么做到的。
    的頭像 發(fā)表于 06-29 15:14 ?1461次閱讀
    有沒有辦法像<b class='flag-5'>debug</b> RTL代碼一樣將UVM中變量拉到波形上看<b class='flag-5'>呢</b>?

    怎樣提高開關(guān)電源效率

    最為關(guān)心的因素之一,它能夠在提供輸出電能的同時減少損失,延長設(shè)備的壽命,為用戶節(jié)約成本。那么如何提高開關(guān)電源的效率?本文將從開關(guān)電源的結(jié)構(gòu)、工作原理、影響效率因素的分析,系統(tǒng)闡述如何
    的頭像 發(fā)表于 08-27 16:05 ?2531次閱讀

    焊縫跟蹤系統(tǒng)如何提高生產(chǎn)效率

      焊縫跟蹤系統(tǒng)是一種智能化的焊接輔助設(shè)備,可以自動識別和跟蹤焊縫,調(diào)整焊接路徑和參數(shù),從而提高焊接質(zhì)量和效率。那么,焊縫跟蹤系統(tǒng)是如何提高生產(chǎn)效率
    的頭像 發(fā)表于 09-06 14:36 ?428次閱讀

    為什么我的項目Debug運行沒問題,編譯成Release包就報錯?

    ,以提高應(yīng)用性能和減少最終包的大小。相比之下,Debug模式優(yōu)化級別較低,側(cè)重于縮短編譯時間和提高調(diào)試效率,
    的頭像 發(fā)表于 06-12 11:18 ?818次閱讀
    為什么我的項目<b class='flag-5'>Debug</b>運行沒問題,編譯成Release包就報錯?