我需要定义依赖于其他输入的参数值。我尝试了以下方式,但它不起作用。任何其他替代方法?
module (...)
...
input sel ;
..
case (sel)
0: parameter data1 =5;
1: parameter data1 =5;
endcase
...
由于
答案 0 :(得分:3)
参数是常量,因此不能在运行时更改,也不能用于动态结构。
如果您需要根据输入设置值,这些输入在执行期间会发生变化,您只需要定义正确宽度的导线或标识。
或者对于常量,您可以使用向下传递值的分层参数,但它们必须都基于参数或常量。
module top();
localparam DATA_WIDTH = 32;
middle #(
.DATA_WIDTH( DATA_WIDTH )
) middle_0();
endmodule
module middle #(
parameter DATA_WIDTH = -1
//DO NOT MODIFY
parameter DATA_OUT_WIDTH = DATA_WIDTH + 10;
)(
output [DATA_OUT_WIDTH-1:0] data_tx
);
endmodule
对于你的情况:
module (...)
...
input sel ;
..
reg [3:0] data1;
always @*
case (sel)
0: data1 =5;
1: data1 =5;
endcase
end
endmodule