在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

Verilog中跨模塊調(diào)用的兩種不同方式的優(yōu)缺點(diǎn)討論

冬至子 ? 來源:Bug記錄 ? 作者:woodfan ? 2023-06-20 15:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在TB當(dāng)中,直接對(duì)DUT(Design under Test)的信號(hào)進(jìn)行讀寫是很常見的操作。以一個(gè)簡(jiǎn)單的計(jì)數(shù)器例子為例:

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

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

同時(shí)定義一個(gè)模塊名為b,功能是帶使能、置位和異步復(fù)位的計(jì)數(shù)器,描述如下:

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

同時(shí)創(chuàng)建一個(gè)wrapper將模塊b例化,并在TB中完成簡(jiǎn)單的測(cè)試工作:

`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調(diào)用通過宏定義控制,在tb的display函數(shù)中使用。宏定義內(nèi)容如下:

`define A_MODULE_INST tb.a_inst

`define B_MODULE_NAME b

//`define B_MULT

所以整體的層次結(jié)構(gòu)如下:

  • 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開始,根據(jù)Instance name找到的例化的a模塊;這種根據(jù)結(jié)構(gòu)和Instance Name跨模塊調(diào)用的方式叫做Hierarchical Reference, 這也是最常見的方式。

優(yōu)缺點(diǎn)如下:

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

2.但如果層次結(jié)構(gòu)發(fā)生變化,或者Instance Name改變,會(huì)爆出Cross Module Reference Error。

Upwards Name Referencing

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

它的優(yōu)缺點(diǎn)與Hierarchical Reference正好相反:

1.不用擔(dān)心層次結(jié)構(gòu)和Instance Name的變化會(huì)影響跨模塊調(diào)用。

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

實(shí)驗(yàn)結(jié)果如下:

在未定義B_MULT時(shí):

圖片

定義B_MULT時(shí):

圖片

總結(jié):

Hierarchical Reference方式嚴(yán)謹(jǐn)?shù)珶o靈活性,操作上可實(shí)現(xiàn)精細(xì)化控制,支持多模塊;Upwards Name Referencing方式靈活,但只支持單模塊,應(yīng)用場(chǎng)景限制高。

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

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

    關(guān)注

    32

    文章

    2291

    瀏覽量

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

    關(guān)注

    0

    文章

    113

    瀏覽量

    8531
  • DUT
    DUT
    +關(guān)注

    關(guān)注

    0

    文章

    190

    瀏覽量

    12919
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    verilog模塊調(diào)用、任務(wù)和函數(shù)

    在做模塊劃分時(shí),通常會(huì)出現(xiàn)這種情形,某個(gè)大的模塊包含了一個(gè)或多個(gè)功能子模塊verilog是通過模塊
    的頭像 發(fā)表于 05-03 10:29 ?616次閱讀
    <b class='flag-5'>verilog</b><b class='flag-5'>模塊</b>的<b class='flag-5'>調(diào)用</b>、任務(wù)和函數(shù)

    請(qǐng)問C6748下的兩種DSP開發(fā)方式有什么區(qū)別

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

    請(qǐng)問小車轉(zhuǎn)向兩種方式有什么優(yōu)缺點(diǎn)

    我知道的小車轉(zhuǎn)向常見的有兩種方式,一是通過舵機(jī)控制轉(zhuǎn)向,另一是通過控制個(gè)輪子的轉(zhuǎn)速,通過轉(zhuǎn)速差實(shí)現(xiàn)轉(zhuǎn)向,這
    發(fā)表于 05-21 02:37

    Net模塊的通信傳輸協(xié)議有何優(yōu)缺點(diǎn)

    Net模塊在nodemcuNet模塊主要是用于個(gè)或多個(gè)開發(fā)板之間,開發(fā)板與電腦、手機(jī)之間的通信。實(shí)現(xiàn)它們之間的信息傳遞。Net模塊中有
    發(fā)表于 03-01 07:23

    DC-DC和LDO兩種供電模式有什么優(yōu)缺點(diǎn)

    給單片機(jī)供電的電路經(jīng)常見到DC-DC 和 LDO 兩種供電方式,這個(gè)選型上有什么規(guī)律嗎,各有什么樣的優(yōu)缺點(diǎn)
    發(fā)表于 11-01 06:43

    對(duì)兩種左右手傳輸線實(shí)現(xiàn)方式的研究現(xiàn)狀進(jìn)行了深入分析以及優(yōu)缺點(diǎn)對(duì)比

    左右手傳輸線的理論和應(yīng)用研究已在微波技術(shù)領(lǐng)域深入展開,特別是在天饋線系統(tǒng)的應(yīng)用研究已成為熱點(diǎn)。本文根據(jù)左右手傳輸線的寬帶移相特性,總結(jié)了近年來國(guó)內(nèi)外關(guān)于基于左右手傳輸線的微波移相器的最新研究成果,對(duì)兩種實(shí)現(xiàn)方式的研究現(xiàn)狀進(jìn)行了
    的頭像 發(fā)表于 02-01 16:37 ?6064次閱讀
    對(duì)<b class='flag-5'>兩種</b>左右手傳輸線實(shí)現(xiàn)<b class='flag-5'>方式</b>的研究現(xiàn)狀進(jìn)行了深入分析以及<b class='flag-5'>優(yōu)缺點(diǎn)</b>對(duì)比

    探討VHDL和Verilog模塊互相調(diào)用的問題

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

    淺析標(biāo)準(zhǔn)的Verilog對(duì)語句有兩種分組方式

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

    在MATLAB/simulink建模時(shí)的兩種不同實(shí)現(xiàn)方式

    導(dǎo)讀:本期文章主要介紹在MATLAB/simulink建模時(shí)的兩種不同實(shí)現(xiàn)方式,一是直接用現(xiàn)成的文件庫
    的頭像 發(fā)表于 09-15 10:07 ?2311次閱讀

    MATLAB/simulink兩種實(shí)現(xiàn)建模方式的優(yōu)勢(shì)

    導(dǎo)讀:本期文章主要介紹在MATLAB/simulink建模時(shí)的兩種不同實(shí)現(xiàn)方式,一是直接用現(xiàn)成的文件庫
    的頭像 發(fā)表于 09-15 10:10 ?5731次閱讀

    Verilog模塊調(diào)用兩種同方式優(yōu)缺點(diǎn)討論

    在寫Verilog TestBench,為了更方便更抽象地對(duì)底層模塊內(nèi)部的信號(hào)進(jìn)行控制,經(jīng)常會(huì)使用到模塊調(diào)用
    的頭像 發(fā)表于 06-06 16:00 ?5490次閱讀
    <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'>調(diào)用</b>的<b class='flag-5'>兩種</b>不<b class='flag-5'>同方式</b>的<b class='flag-5'>優(yōu)缺點(diǎn)</b><b class='flag-5'>討論</b>

    兩種用于汽車PCB組件的連接器端子組件的優(yōu)缺點(diǎn)

    摘 要:本文介紹兩種用于汽車PCB組件的可塑性端子即針眼(EON)形可塑性端子和獨(dú)木舟形可塑性端子(CCT)設(shè)計(jì)式樣,并簡(jiǎn)單地介紹這兩種連接器端子組件的優(yōu)缺點(diǎn)
    的頭像 發(fā)表于 11-05 11:39 ?1543次閱讀
    <b class='flag-5'>兩種</b>用于汽車PCB組件的連接器端子組件的<b class='flag-5'>優(yōu)缺點(diǎn)</b>

    電動(dòng)機(jī)調(diào)速方式優(yōu)缺點(diǎn)

    電動(dòng)機(jī)調(diào)速方式優(yōu)缺點(diǎn)? 電動(dòng)機(jī)調(diào)速是指根據(jù)負(fù)載的要求調(diào)整電動(dòng)機(jī)轉(zhuǎn)速的過程,可分為機(jī)械調(diào)速和電子調(diào)速兩種方式。機(jī)械調(diào)速主要使用機(jī)械裝置來調(diào)整電動(dòng)機(jī)的速度,而電子調(diào)速則利用電子器件對(duì)電動(dòng)
    的頭像 發(fā)表于 01-04 11:26 ?2095次閱讀

    verilog調(diào)用模塊端口對(duì)應(yīng)方式

    Verilog是一硬件描述語言(HDL),廣泛應(yīng)用于數(shù)字電路設(shè)計(jì)和硬件驗(yàn)證。在Verilog模塊是構(gòu)建電路的基本單元,而
    的頭像 發(fā)表于 02-23 10:20 ?2459次閱讀

    控制器有哪兩種實(shí)現(xiàn)方式?各有何優(yōu)缺點(diǎn)?

    介紹這兩種實(shí)現(xiàn)方式優(yōu)缺點(diǎn)。 硬件控制器 硬件控制器是一使用專用硬件電路來實(shí)現(xiàn)控制功能的控制器。它通常由一組邏輯電路、寄存器、計(jì)數(shù)器等組成,用于實(shí)現(xiàn)特定的控制邏輯。 優(yōu)點(diǎn): 性能高
    的頭像 發(fā)表于 06-30 10:33 ?2262次閱讀
    主站蜘蛛池模板: 午夜宅男在线视频 | 日本一区三区二区三区四区 | 日本不卡免费一区 | 久久国产乱子伦精品免费一 | 欧美黄免在线播放 | 一级中文字幕乱码免费 | 五月婷婷中文字幕 | 天堂资源在线8 | 四虎影视入口 | 天天爱天天做天天爽天天躁 | 午夜剧场黄 | 九九99久久精品影视 | 天天摸夜夜摸夜夜狠狠摸 | 天堂成人在线 | 激情视频综合网 | 国产情侣出租屋露脸实拍 | 欧美激情xxxx性bbbb | avtt天堂网 手机资源 | 狠狠色丁香久久婷婷综合丁香 | gogo亚洲肉体艺术100 | 春宵福利网站 | 五月.com| 天天综合天天看夜夜添狠狠玩 | 色噜噜成人综合网站 | 国模大尺度在线 | 老师办公室高h文小说 | 天天操精品 | 日本在线看小视频网址 | 国产 日韩 欧美 高清 | 国产视频三区 | 很黄很暴力 很污秽的小说 很黄很黄叫声床戏免费视频 | 一久久 | 永久视频在线观看 | 在线观看亚洲一区二区 | 日韩在线视频一区 | 天天操天天插天天干 | 在线观看国产久青草 | 欧美日韩视频综合一区无弹窗 | 国产一区二区三区 韩国女主播 | 奇米影色777四色在线首页 | 成人欧美一区二区三区 |