1. 程式人生 > >verilog HDL-引數型資料對像 與‘define

verilog HDL-引數型資料對像 與‘define

引數新資料物件是用來定義常量的,它可以提升verilog hdl程式碼的可讀性和維護性。

verilog hdl支援引數有兩種,普通引數和區域性引數。普通引數在模組例化時可以從新賦值,區域性引數在模組例化時不能從新賦值。引數值更改可以通過defparam語句實現。

Verilog中可以用關鍵字parameter定義常數,其作用範圍是一個module的內部。引數代表的是常數,不可以被賦值,即不能成為左值,但是每個引數值可以在module例項化的編譯階段被重新賦值或保持原始的賦值。通過模組例項化呼叫引數賦值或使用defparam語句可以改變引數值,這個過程叫做改寫(覆蓋)引數。


Verilog中也允許使用關鍵字localparam定義常數,其作用範圍同parameter相同,都是module的內部,但是與parameter不同之處在於它定義的常量不能被修改。最常用的地方就是用於定義狀態機的狀態編碼。


`define屬於Verilog提供的編譯指令,用於文字巨集定義,其使用的一般形式是[`define 識別符號(巨集名) 字串(巨集內容)],其作用範圍可以跨模組。在編譯階段,當編譯器遇到`<巨集名>時,使用預定義的巨集文字進行替換。在使用預定義的常數或文字巨集時,要注意在巨集名前加上“`”,這個符號是鍵盤左上角Esc鍵正下方的那個鍵。注意:巨集定義不是Verilog語句,其後不需要分號“;”結尾;巨集定義要在一行內進行。