verilog基础—规范化参数定义parameter
引言
采用parameter可以讓程序變得可維護性,所以在verlog中,盡量在有數(shù)據(jù)可能發(fā)生變動的地方,設(shè)置為parameter,以免以后又從頭開始更改。
parameter經(jīng)常用于定義數(shù)據(jù)位寬,定義時間延遲,在模塊和實例引用時,可以通過參數(shù)傳遞,改變被引用的模塊。因此我們盡量把所有的可能變動的參數(shù)設(shè)置在頂層,一眼明了,方便日后維護。
端口參數(shù)與模塊內(nèi)部參數(shù)
本module內(nèi)有效的定義,可用于參數(shù)傳遞;
如果在模塊內(nèi)部定義時無法進行參數(shù)傳遞,
參數(shù)傳遞
參數(shù)傳遞經(jīng)常用于頂層的參數(shù)傳遞給子模塊,這樣我們只需要關(guān)注頂層實體的內(nèi)容,把子模塊的內(nèi)容當(dāng)做一個黑箱子即可,這也是非常實用的。
可以看到參數(shù)傳遞和例化是非常繼續(xù)相似的,
眾說parameter、define、localparam的區(qū)別
`define: 作用 -> 常用于定義常量可以跨模塊、跨文件;范圍 -> 整個工程; parameter: 作用 -> 常用于模塊間參數(shù)傳遞;范圍 -> 本module內(nèi)有效的定義; localparam 作用 -> 常用于狀態(tài)機的參數(shù)定義;范圍 -> 本module內(nèi)有效的定義,不可用于參數(shù)傳遞;localparam cannot be used within the module port parameter list.defparam
defparam這個單獨拿出來說一下,其實這個參數(shù),個人覺得意義不大,因為你用parameter參數(shù)實例化就可以很好的解決問題,defparam用于重定義參數(shù)的數(shù),可以通過
defparam 頂層.子模塊名1.子模塊名2=XXX
這樣的語法格式更改,從而實現(xiàn)專門針對某一個子模塊更改,這樣有助于例化了多個相同的子模塊,但我只更改一個子模塊的問題。!
我們來一起看看官方文檔IEEE verilog 2005
defparam的語法我們就去親自查閱官方語法!這樣才能有收貨。
這段說了,defparam適用于改變指定層次模塊下的參數(shù),不影響其他模塊的參數(shù)。
這段話也再次說明了,即使是使用相同的子模塊實例化生成的模塊,也不會受影響,defparam只針對指定路徑下的參數(shù)更改。
/------------------------------------------------------------------------------------------------------------------------------------------------------/
defparam目前所有綜合工具都不支持綜合,所以僅僅用于仿真。
總結(jié)
以上是生活随笔為你收集整理的verilog基础—规范化参数定义parameter的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: verilog基础-状态机之FPGA独立
- 下一篇: verilog基础--sign表达式