日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

verilog基础—规范化参数定义parameter

發布時間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 verilog基础—规范化参数定义parameter 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

采用parameter可以讓程序變得可維護性,所以在verlog中,盡量在有數據可能發生變動的地方,設置為parameter,以免以后又從頭開始更改。
parameter經常用于定義數據位寬,定義時間延遲,在模塊和實例引用時,可以通過參數傳遞,改變被引用的模塊。因此我們盡量把所有的可能變動的參數設置在頂層,一眼明了,方便日后維護。

端口參數與模塊內部參數


本module內有效的定義,可用于參數傳遞;
如果在模塊內部定義時無法進行參數傳遞,

參數傳遞

參數傳遞經常用于頂層的參數傳遞給子模塊,這樣我們只需要關注頂層實體的內容,把子模塊的內容當做一個黑箱子即可,這也是非常實用的。

可以看到參數傳遞和例化是非常繼續相似的,

頂層模塊名# (.子模塊參數( 頂層參數)) 子模塊名( 子端口1(頂層端口1) 子端口2(頂層端口2) 。 。 子端口n(頂層端口n));

眾說parameter、define、localparam的區別

`define: 作用 -> 常用于定義常量可以跨模塊、跨文件;范圍 -> 整個工程; parameter: 作用 -> 常用于模塊間參數傳遞;范圍 -> 本module內有效的定義; localparam 作用 -> 常用于狀態機的參數定義;范圍 -> 本module內有效的定義,不可用于參數傳遞;localparam cannot be used within the module port parameter list.

defparam

defparam這個單獨拿出來說一下,其實這個參數,個人覺得意義不大,因為你用parameter參數實例化就可以很好的解決問題,defparam用于重定義參數的數,可以通過
defparam 頂層.子模塊名1.子模塊名2=XXX
這樣的語法格式更改,從而實現專門針對某一個子模塊更改,這樣有助于例化了多個相同的子模塊,但我只更改一個子模塊的問題。!
我們來一起看看官方文檔IEEE verilog 2005
defparam的語法我們就去親自查閱官方語法!這樣才能有收貨。


這段說了,defparam適用于改變指定層次模塊下的參數,不影響其他模塊的參數。




這段話也再次說明了,即使是使用相同的子模塊實例化生成的模塊,也不會受影響,defparam只針對指定路徑下的參數更改。
/------------------------------------------------------------------------------------------------------------------------------------------------------/
defparam目前所有綜合工具都不支持綜合,所以僅僅用于仿真。

總結

以上是生活随笔為你收集整理的verilog基础—规范化参数定义parameter的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。