色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

Verilog中跨模塊調用的兩種不同方式的優缺點討論

冬至子 ? 來源:Bug記錄 ? 作者:woodfan ? 2023-06-20 15:23 ? 次閱讀

在TB當中,直接對DUT(Design under Test)的信號進行讀寫是很常見的操作。以一個簡單的計數器例子為例:

定義一個模塊名為a(取名比較隨意),功能是帶使能和異步復位的計數器,描述如下:

reg [31:0] cnt_r;

assign count = cnt_r;

always @ (posedge clk or posedge rst)
begin
if (rst)
cnt_r <= 'd0;
else if (en)
cnt_r <= count + 32'd1;
end

同時定義一個模塊名為b,功能是帶使能、置位和異步復位的計數器,描述如下:

reg [31:0] cnt_r;

assign count = cnt_r;

always @ (posedge clk or posedge rst)
begin
if (rst)
cnt_r <= 'd0;
else if (set)
cnt_r <= load_val;
else if (en)
cnt_r <= count + 32'd1;
end

同時創建一個wrapper將模塊b例化,并在TB中完成簡單的測試工作:

`include "macros.v"

module tb;

reg clk ;
reg rst ;
reg en ;
reg set ;

wire [31:0] a_cnt;
wire [31:0] b_cnt;
wire [31:0] b_cnt1;

initial begin
clk = 0;
rst = 1;
en = 0;
set = 0;
#100
rst = 0;
#100
en = 1;
#100
set = 1;
#20
set = 0;
#100
$finish;
end

always #10 clk = ~clk;

initial
forever begin
#20
$display("Time: %t A_CNT: %d B_CNT:%d", $time, `A_MODULE_INST.count, `B_MODULE_NAME.count);
end

a a_inst(
.clk(clk) ,
.rst(rst) ,
.en (en) ,

.count (a_cnt)
);

b_wrapper b_inst(
.clk(clk) ,
.rst(rst) ,

.set(set) ,
.load_val(32'd20),
.en(en) ,

.count (b_cnt)
);

`ifdef B_MULT
b_wrapper b_inst_1(
.clk(clk) ,
.rst(rst) ,

.set(set) ,
.load_val(32'd40),
.en(en) ,

.count (b_cnt1)
);

`endif

endmodule

a和b模塊的XMR調用通過宏定義控制,在tb的display函數中使用。宏定義內容如下:

`define A_MODULE_INST tb.a_inst

`define B_MODULE_NAME b

//`define B_MULT

所以整體的層次結構如下:

  • tb
    • a_inst (module a)
    • b_inst (module b_wrapper)
      • b_inst (module b)
    • b_inst_1 (module b_wrapper if define B_MULT)
      • b_inst (module b)

Hierarchical Reference

可以看到,a模塊的XMR方式是從頂層的tb開始,根據Instance name找到的例化的a模塊;這種根據結構和Instance Name跨模塊調用的方式叫做Hierarchical Reference, 這也是最常見的方式。

優缺點如下:

1.在Verilog的一個module中,Instance Name是唯一的,所以該種方式指向性很明確,支持精細化地控制同一個module例化的不同模塊信號。

2.但如果層次結構發生變化,或者Instance Name改變,會爆出Cross Module Reference Error。

Upwards Name Referencing

b模塊的XMR方式則是直接定義了b模塊的模塊名,然后verilog開始從定義的頂層開始查找,沒找到就進入下一層繼續尋找,直到找到唯一的那個模塊名匹配的為止:

它的優缺點與Hierarchical Reference正好相反:

1.不用擔心層次結構和Instance Name的變化會影響跨模塊調用。

2.使用該方式需要保證唯一性,不然也會爆出Cross Module Reference Error。

實驗結果如下:

在未定義B_MULT時:

圖片

定義B_MULT時:

圖片

總結:

Hierarchical Reference方式嚴謹但無靈活性,操作上可實現精細化控制,支持多模塊;Upwards Name Referencing方式靈活,但只支持單模塊,應用場景限制高。

所以,這也是Hierarchical Reference應用廣泛的原因吧,如果不是最近犯錯,我可能都不會注意到另一種XMR方式。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計數器
    +關注

    關注

    32

    文章

    2256

    瀏覽量

    94669
  • Verilog語言
    +關注

    關注

    0

    文章

    113

    瀏覽量

    8273
  • DUT
    DUT
    +關注

    關注

    0

    文章

    189

    瀏覽量

    12409
收藏 人收藏

    評論

    相關推薦

    求各路大神幫忙解答一下三極管恒流源 驅動方式優缺點

    (3.6)/R182.用電阻與R17分壓后給NPN偏置電壓導通后,在進行算射極電流.這兩種有什么優缺點?討論下···
    發表于 11-01 09:16

    請問C6748下的兩種DSP開發方式有什么區別

    各位開發者: 大家好。我使用的DSP開發板為TMDXLCDK6748,看了TI公司提供的資料,在開發板上開發程序主要有兩種方式:一是裸機開發,需要安裝StarterWare,另一
    發表于 01-14 14:12

    請問小車轉向兩種方式有什么優缺點?

    我知道的小車轉向常見的有兩種方式,一是通過舵機控制轉向,另一是通過控制個輪子的轉速,通過轉速差實現轉向,這
    發表于 05-21 02:37

    Net模塊的通信傳輸協議有何優缺點

    Net模塊在nodemcuNet模塊主要是用于個或多個開發板之間,開發板與電腦、手機之間的通信。實現它們之間的信息傳遞。Net模塊中有
    發表于 03-01 07:23

    DC-DC和LDO兩種供電模式有什么優缺點?

    給單片機供電的電路經常見到DC-DC 和 LDO 兩種供電方式,這個選型上有什么規律嗎,各有什么樣的優缺點
    發表于 11-01 06:43

    兩種左右手傳輸線實現方式的研究現狀進行了深入分析以及優缺點對比

    左右手傳輸線的理論和應用研究已在微波技術領域深入展開,特別是在天饋線系統的應用研究已成為熱點。本文根據左右手傳輸線的寬帶移相特性,總結了近年來國內外關于基于左右手傳輸線的微波移相器的最新研究成果,對兩種實現方式的研究現狀進行了
    的頭像 發表于 02-01 16:37 ?5679次閱讀
    對<b class='flag-5'>兩種</b>左右手傳輸線實現<b class='flag-5'>方式</b>的研究現狀進行了深入分析以及<b class='flag-5'>優缺點</b>對比

    探討VHDL和Verilog模塊互相調用的問題

    1、 關于如何在VHDL模塊調用一個Verilog模塊 在VHDL模塊聲明一個要與調用
    的頭像 發表于 04-30 14:06 ?1.1w次閱讀
    探討VHDL和<b class='flag-5'>Verilog</b><b class='flag-5'>模塊</b>互相<b class='flag-5'>調用</b>的問題

    淺析標準的Verilog對語句有兩種分組方式

    標準的Verilog對語句有兩種分組方式——使用begin…end或fork…join,begin…end的語句以順序方式執行,而fork
    的頭像 發表于 09-14 11:02 ?895次閱讀
    淺析標準的<b class='flag-5'>Verilog</b>對語句有<b class='flag-5'>兩種</b>分組<b class='flag-5'>方式</b>

    在MATLAB/simulink建模時的兩種不同實現方式

    導讀:本期文章主要介紹在MATLAB/simulink建模時的兩種不同實現方式,一是直接用現成的文件庫
    的頭像 發表于 09-15 10:07 ?1909次閱讀

    MATLAB/simulink兩種實現建模方式的優勢

    導讀:本期文章主要介紹在MATLAB/simulink建模時的兩種不同實現方式,一是直接用現成的文件庫
    的頭像 發表于 09-15 10:10 ?5086次閱讀

    Verilog模塊調用兩種同方式優缺點討論

    在寫Verilog TestBench,為了更方便更抽象地對底層模塊內部的信號進行控制,經常會使用到模塊調用
    的頭像 發表于 06-06 16:00 ?4994次閱讀
    <b class='flag-5'>Verilog</b><b class='flag-5'>中</b><b class='flag-5'>跨</b><b class='flag-5'>模塊</b><b class='flag-5'>調用</b>的<b class='flag-5'>兩種</b>不<b class='flag-5'>同方式</b>的<b class='flag-5'>優缺點</b><b class='flag-5'>討論</b>

    兩種用于汽車PCB組件的連接器端子組件的優缺點

    摘 要:本文介紹兩種用于汽車PCB組件的可塑性端子即針眼(EON)形可塑性端子和獨木舟形可塑性端子(CCT)設計式樣,并簡單地介紹這兩種連接器端子組件的優缺點。
    的頭像 發表于 11-05 11:39 ?1086次閱讀
    <b class='flag-5'>兩種</b>用于汽車PCB組件的連接器端子組件的<b class='flag-5'>優缺點</b>

    電動機調速方式優缺點

    電動機調速方式優缺點? 電動機調速是指根據負載的要求調整電動機轉速的過程,可分為機械調速和電子調速兩種方式。機械調速主要使用機械裝置來調整電動機的速度,而電子調速則利用電子器件對電動
    的頭像 發表于 01-04 11:26 ?1425次閱讀

    verilog調用模塊端口對應方式

    Verilog是一硬件描述語言(HDL),廣泛應用于數字電路設計和硬件驗證。在Verilog,模塊是構建電路的基本單元,而
    的頭像 發表于 02-23 10:20 ?1818次閱讀

    控制器有哪兩種實現方式?各有何優缺點?

    介紹這兩種實現方式優缺點。 硬件控制器 硬件控制器是一使用專用硬件電路來實現控制功能的控制器。它通常由一組邏輯電路、寄存器、計數器等組成,用于實現特定的控制邏輯。 優點: 性能高
    的頭像 發表于 06-30 10:33 ?1335次閱讀
    主站蜘蛛池模板: 亚洲视频欧美视频| 精品国产在线国语视频| 国产女人喷潮视频免费| 无套日出白浆在线播放| 韩国无遮羞禁动漫在线观看96| 翁公吮她的花蒂和奶水| 国产在线精品视频二区| 中文字幕1| 日韩AV成人无码久久精品老人| 国产产一区二区三区久久毛片国语| 亚洲国产成人久久精品影视| 精品国产在线国语视频| 97国产精品人妻无码免费| 日韩亚洲国产欧美免费观看| 韩国伦理片2018在线播放免费观看 | 青青草国产偷拍在线av| 国产精品久久久久久久人热 | 国产精品99久久久久久AV| 一本大道香蕉中文在线视频观看| 毛片无码免费无码播放| 东京热 百度影音| 一个人HD在线观看免费高清视频| 欧美精品AV精品一区视频| 国产日韩精品SUV| 92国产精品午夜免费福利视频| 色戒无删减流畅完整版| 久久综合伊人 magnet| 国产精品成人免费| 69式国产真人免费视频| 无遮18禁在线永久免费观看挡| 麻豆精选2021| 国产呦精品一区二区三区网站| 99热这里有精品| 野花韩国高清完整版在线| 日韩黄色软件| 蜜柚视频网在线观看免费| 国产亚洲日韩在线播放不卡| 操他射他影院| 511麻豆视传媒精品AV| 亚洲免费片| 天堂在线亚洲精品专区|