Verilog 模塊有兩種編輯方法:原理圖輸入和 verilog 代碼輸入方式。原理圖輸入的方式
勝在結(jié)構(gòu)清晰,而代碼輸入方式則更便于移植和仿真。(一般我們都用 Modelsim進(jìn)行仿真, 目前還無(wú)法對(duì)原理圖輸入的方法進(jìn)行仿真。不過(guò)可以把原理圖轉(zhuǎn)換成 verilogHDL文件再進(jìn) 行仿真,方法是菜單欄 File-->Creat/Updata-->CreatHDLdesignfilesformcurrentfile)
三,Parameter 參數(shù)傳遞
Verilog 中可以用 parameter 定義一個(gè)標(biāo)識(shí)符代表一個(gè)常量,有助于提高程序的可讀 性,同時(shí)也方便了模塊例化的可維護(hù)性和可擴(kuò)展性,簡(jiǎn)單舉例:可以對(duì)總線的位寬進(jìn)行 parameter 的定義,這樣就可以很方便地修改總線容量。由于它是 verilog 所特有的參數(shù)傳遞 方法,我們?cè)谶@里詳細(xì)說(shuō)明一下,Parameter語(yǔ)法格式如下:
parameter 參數(shù)名 1 = 表達(dá)式, 參數(shù)名 2 = 表達(dá)式, ....... 參數(shù)名 n = 表達(dá)式;
(這里建議參數(shù)名使用大寫(xiě)字母,方便和變量區(qū)分開(kāi),而表達(dá)式必須是常量表達(dá)式。)
舉例
module Box( X,Y);
parameter LENTH = 100, WIDTH = 50, HIGH = 25;
...... endmodule
以下是在 verilog 文件中例化模塊時(shí)傳遞參數(shù)常用的兩種方法:
1、module_name #( parameter1, parameter2) inst_name( port_map);
例如例化上面模塊 Box #(80,40,20) box_1( X1, Y1) ;
Box_1 中實(shí)際引用的 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 中實(shí)際引用的 LENTH , WIDTH, HIGH 分別為 80,40,20。
在原理圖文件中傳遞參數(shù)的方法比較簡(jiǎn)單,例化的 Box 模塊如下圖,參數(shù)以表格的方 式在例化的 block/symbol 旁邊出現(xiàn),我們只需要修改表格中的值就可以了。