Verilog如何從外部更改模塊內參數

例若有一個模塊spa

1 module x(a,b,c); 2    input a,b; 3    output c; 4    parameter t=4'd0, h=9'd3; 5  
6   ...... 7  
8 endmodule

 

兩種解決方法:code

  • 一、使用帶有參數值的模塊實例語句
1 module x_top(d,e,f,g); 2   input d,e,f; 3   output g; 4 
 5   x #(1,4) xx( 6       .a(a), 7       .b(b), 8       .c(c) 9       ); 10 endmodule

 

  • 二、使用參數重定義語句deparam

 

1 module x_top(d,e,f,g); 2   input d,e,f; 3   output g; 4 
 5   deparam   xx.t = 4'd1, xx.h = 9'd4; 6 
 7   x  xx( 8       .a(a), 9       .b(b), 10       .c(c) 11       ); 12 
13 endmodule

 

 

注意:對於下面這個模塊blog

module exam_prj 2     #(parameter WIDTH=8)     //parameter 1 3     //端口內的參數只能在這使用 
4 ( 5         input [WIDTH-1:0] dataa,//[WIDTH-1:0]
6         input [WIDTH-1:0] datab, 7 
8         output reg [WIDTH:0] result 9 ); parameter Conuter_Top = 4'd9;//用於代碼部分的參數 parameter 2
//代碼部分省略
endmodule

這裏出現的兩個參數 parameter,第一個表示只在端口設置時使用,第二個是對於模塊內部的使用。input

 

2018-04-18  17:26:34class

相關文章
相關標籤/搜索