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

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

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

3天內不再提示

Verilog例化說明

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 2024-12-17 11:29 ? 次閱讀

Verilog例化說明

1.什么是模塊例化?為什么要例化?

模塊例化可以理解成模塊調用。對于一個FPGA工程,通常是由一個頂層模塊與多個功能子模塊組成,為了實現頂層模塊與子模塊的連接,需要進行模塊間的例化(或說是調用)。在一個FPGA項目工程中,其輸入、輸出端口命名通常在設計前期就已確定下來,但會存在一些中間變量,一個工程可能會讓不同的工程師在不同的時間段內共同完成,不同的人對于這些變量的命名會有所不同,故例化很有必要。

2.實例說明例化方法

實例:靜態數碼管顯示
根據功能將 FPGA 頂層例化了以下兩個功能子模塊:計時模(time_count)和數碼管靜態顯示模塊(seg_led_static),如下圖所示:

285ac5fa-b85e-11ef-93f3-92fbcf53809c.png


1.計時模塊(僅顯示端口及參數

module time_count(
inputclk ,                       // 時鐘信號
inputrst_n ,                     // 復位信號

output reg  flag                        // 一個時鐘周期的脈沖信號
);

//parameter define
parameter MAX_NUM = 25000_000;         // 計數器最大計數值
......(省略功能代碼)

endmodule

2.數碼管靜態顯示模塊(僅顯示端口及參數)

module seg_led_static ( 
input  clk ,                // 時鐘信號
input  rst_n ,              // 復位信號(低有效)
input  add_flag,            // 數碼管變化的通知信號

output reg [5:0] sel ,                // 數碼管位選
output reg [7:0] seg_led              // 數碼管段選
 );
......(省略功能代碼)
 
 endmodule

3.頂層模塊(著重看下面“例化計時模塊”、“例化數碼管靜態顯示模塊”)

module seg_led_static_top (
input  sys_clk ,              // 系統時鐘
input  sys_rst_n,             // 系統復位信號(低有效)

output [5:0] sel ,                  // 數碼管位選
output [7:0] seg_led                // 數碼管段選
 );
 
 //parameter define
 parameter TIME_SHOW = 25'd25000_000;   // 數碼管變化的時間間隔0.5s
 
 //wire define
 wire add_flag;                         // 數碼管變化的通知信號

 //例化計時模塊
time_count #(                           //參數例化使用’#‘
.MAX_NUM (TIME_SHOW)
) u_time_count(
.clk (sys_clk ),
 .rst_n (sys_rst_n),
 .flag (add_flag )
 );

//例化數碼管靜態顯示模塊
seg_led_static u_seg_led_static (
.clk (sys_clk ),
 .rst_n (sys_rst_n),

 .add_flag (add_flag ),
 .sel (sel ),
.seg_led (seg_led )
 );

endmodule

上面給出了頂層模塊的完整代碼,子模塊只有模塊的端口和參數定義的代碼。這是因為頂層模塊對子模塊做例化時,只需要知道子模塊的端口信號名,而不用關心子模塊內部具體是如何實現的。

如果子模塊內部使用parameter 定義了一些參數,Verilog 也支持對參數的例化(也叫參數的傳遞),即頂層模塊可以通過例化參數來修改子模塊內定義的參數。

下圖為模塊例化。

289d8a84-b85e-11ef-93f3-92fbcf53809c.png


上圖右側是例化的數碼管靜態顯示模塊,子模塊名是指被例化模塊的模塊名,而例化模塊名相當于標識,當例化多個相同模塊時,可以通過例化名來識別哪一個例化,我們一般命名為“u_”+“子模塊名”。信號列表中“.”之后的信號是數碼管靜態顯示模塊定義的端口信號,括號內的信號則是頂層模塊聲明的信號,這樣就將頂層模塊的信號與子模塊的信號一一對應起來,同時需要注意信號的位寬要保持一致。

接下來再來介紹一下參數的例化,參數的例化是在模塊例化的基礎上,增加了對參數的信號定義。

下圖為參數例化:

28c82c6c-b85e-11ef-93f3-92fbcf53809c.png

在對參數進行例化時,在模塊名的后面加上“#”,表示后面跟著的是參數列表。計時模塊定義的MAX_NUM 和頂層模塊的 TIME_SHOW 都是等于25000_000,當在頂層模塊定義 TIME_SHOW=12500_000時,那么子模塊的 MAX_NUM 的值實際上是也等于 12500_000。當然即使子模塊包含參數,在做模塊的例化時也可以不添加對參數的例化,這樣的話,子模塊的參數值等于該模塊內部實際定義的值。

值得一提的是,Verilog 語法中的localparam 代表的意思同樣是參數定義,用法和 parameter 基本一致,區別在于 parameter 定義的參數可以做例化,而 localparam 定義的參數是指本地參數,上層模塊不可以對localparam 定義的參數做例化。

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

    關注

    28

    文章

    1351

    瀏覽量

    110095
  • 數碼管顯示
    +關注

    關注

    0

    文章

    63

    瀏覽量

    13821
  • 顯示模塊
    +關注

    關注

    1

    文章

    50

    瀏覽量

    23568

原文標題:Verilog例化說明

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Verilog HDL和VHDL區別

    Verilog和VHDL之間的區別將在本文中通過示例進行詳細說明。對優點和缺點的Verilog和VHDL進行了討論。
    的頭像 發表于 12-20 09:03 ?3754次閱讀
    <b class='flag-5'>例</b>說<b class='flag-5'>Verilog</b> HDL和VHDL區別

    模塊

    能不能分享個Verilog模塊的教程?
    發表于 01-02 00:43

    Verilog HDL語言100詳解

    Verilog HDL語言100詳解希望對大家有所幫助
    發表于 09-01 15:58

    說FPGA連載62:電子點菜單之FIFO說明

    `說FPGA連載62:電子點菜單之FIFO說明特權同學,版權所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1c0nf6Qc ddr_avl_br
    發表于 12-26 17:22

    verilog中調用VHDL模塊

    模塊的化形式就可以了。下面舉個簡單的例子來說明如何在verilog模塊中VHDL模塊。 2選1多路復用器的VHDL描述:entity
    發表于 07-03 12:58

    verilog中調用VHDL模塊

    模塊的化形式就可以了。下面舉個簡單的例子來說明如何在verilog模塊中VHDL模塊。 2選1多路復用器的VHDL描述:entity
    發表于 07-09 01:14

    如何利用python自動生成verilog模塊模板?

    如何利用python自動生成verilog模塊模板?
    發表于 06-21 06:06

    Verilog HDL程序設計-135

    verilog HDL基礎程序135,適合初學者。
    發表于 11-06 09:49 ?23次下載

    Verilog教程之Verilog的命令格式資料說明

    本文檔的主要內容詳細介紹的是Verilog HDL教程之Verilog HDL的命令格式資料說明
    發表于 01-09 08:00 ?31次下載
    <b class='flag-5'>Verilog</b>教程之<b class='flag-5'>Verilog</b>的命令格式資料<b class='flag-5'>說明</b>

    FPGA視頻教程之Verilog基礎的詳細資料說明

    本文檔的主要內容詳細介紹的是FPGA視頻教程之Verilog基礎的詳細資料說明包括了:1.Verilog HDL簡介,2.Verilog HDL模型的基本結構,3.
    發表于 03-21 15:02 ?37次下載
    FPGA視頻教程之<b class='flag-5'>Verilog</b>基礎的詳細資料<b class='flag-5'>說明</b>

    實現Verilog HDL模塊程序設計的詳細資料說明

    HDL和VHDL的使用比率大概是80%和20%,在中國,大多數電子行業企業都采用Verilog。而模塊的設計讓Verilog HDL語言具有思路清晰、邏輯關系明確、可讀性強等特點,模塊
    發表于 03-25 08:00 ?4次下載
    實現<b class='flag-5'>Verilog</b> HDL模塊<b class='flag-5'>化</b>程序設計的詳細資料<b class='flag-5'>說明</b>

    Verilog HDL教程135免費下載

    本文檔的主要內容詳細介紹的是Verilog HDL教程135免費下載。
    發表于 01-21 16:30 ?72次下載
    <b class='flag-5'>Verilog</b> HDL教程135<b class='flag-5'>例</b>免費下載

    Verilog快速掌握之模塊資源下載

    FPGA邏輯設計中通常是一個大的模塊中包含了一個或多個功能子模塊,verilog通過模塊調用或稱為模塊實例的方式來實現這些子模塊與高層模塊的連接,有利于簡化每一個模塊的代碼,易于維護和修改。
    發表于 04-30 09:30 ?25次下載

    在SpinalHDL中如何優雅地端口?

    在編寫Verilog代碼時最痛苦的事情便是模塊時端口的連接,這時候的你我便成了連線工程師,本節就在SpinalHDL中如何像軟件調用方法那樣優雅地
    的頭像 發表于 06-16 17:19 ?1950次閱讀

    FPGA學習-Verilog說明

    Verilog 說明 1.什么是模塊?為什么要
    的頭像 發表于 12-12 09:50 ?4156次閱讀
    主站蜘蛛池模板: 国产精品夜夜春夜夜| 中文字幕一区二区三区不卡| 亚洲高清中文字幕一区二区三区| 亚洲六月丁香六月婷婷花| 免费手机黄色网址| 天天干夜夜怕| 污视频18高清在线观看| 拍拍拍美女黄色1000视频| 夜夜春夜夜夜夜猛噜噜噜噜噜| 88av在线视频| 婷婷六月天激情| xxxx欧美69免费| 国产老肥熟xxxx| 日本特级淫片免费| 天天夜夜爽| 欧美 亚洲 一区| 久久综合欧美| 国产视频分类| 天天噜噜色| 亚洲午夜免费视频| 亚洲视频在线不卡| 免费看你懂的| 国产在线观看福利| 推倒都市极品贵妇| 又黄又爽又猛午夜性色播在线播放 | 日本在线不卡视频| 美女黄色在线看| 狠狠干天天干| 上一篇26p国模| 手机看片国产精品| 最好看的2019中文字幕免费高清 | 国卡一卡二卡三免费网站| 国产性videosgratis| 五月激情啪啪| 欧美色一级| 国内黄色精品| 色色色色色色色色色色色色色色| 天天干天天色天天| 亚洲你懂得| 天天爽爽| 亚洲成a人片在线观看中|