Verilog 模塊有兩種編輯方法:原理圖輸入和 verilog 代碼輸入方式。原理圖輸入的方式
勝在結構清晰,而代碼輸入方式則更便于移植和仿真。(一般我們都用 Modelsim進行仿真, 目前還無法對原理圖輸入的方法進行仿真。不過可以把原理圖轉換成 verilogHDL文件再進 行仿真,方法是菜單欄 File-->Creat/Updata-->CreatHDLdesignfilesformcurrentfile)
三,Parameter 參數傳遞
Verilog 中可以用 parameter 定義一個標識符代表一個常量,有助于提高程序的可讀 性,同時也方便了模塊例化的可維護性和可擴展性,簡單舉例:可以對總線的位寬進行 parameter 的定義,這樣就可以很方便地修改總線容量。由于它是 verilog 所特有的參數傳遞 方法,我們在這里詳細說明一下,Parameter語法格式如下:
parameter 參數名 1 = 表達式, 參數名 2 = 表達式, ....... 參數名 n = 表達式;
(這里建議參數名使用大寫字母,方便和變量區分開,而表達式必須是常量表達式。)
舉例
module Box( X,Y);
parameter LENTH = 100, WIDTH = 50, HIGH = 25;
...... endmodule
以下是在 verilog 文件中例化模塊時傳遞參數常用的兩種方法:
1、module_name #( parameter1, parameter2) inst_name( port_map);
例如例化上面模塊 Box #(80,40,20) box_1( X1, Y1) ;
Box_1 中實際引用的 LENTH , WIDTH, HIGH 分別為 80,40,20。
2、defparam
defparam heirarchy_path.parameter_name = value;
還是用上面的例子:
module Top( X,Y);
Box box_2( X2,Y2);
endmodule
module Annotate;
defparam
Top.box_2. LENTH =80; Top.box_2. WIDTH =40; Top.box_2. HIGH =20;
endmodule
Box_2 中實際引用的 LENTH , WIDTH, HIGH 分別為 80,40,20。
在原理圖文件中傳遞參數的方法比較簡單,例化的 Box 模塊如下圖,參數以表格的方 式在例化的 block/symbol 旁邊出現,我們只需要修改表格中的值就可以了。