我需要定义依赖于其他一些输入的参数值。我尝试了以下方法,但它不起作用。还有其他替代方法吗?
module (...)
...
input sel ;
..
case (sel)
0: parameter data1 =5;
1: parameter data1 =5;
endcase
...
谢谢
我需要定义依赖于其他一些输入的参数值。我尝试了以下方法,但它不起作用。还有其他替代方法吗?
module (...)
...
input sel ;
..
case (sel)
0: parameter data1 =5;
1: parameter data1 =5;
endcase
...
谢谢
参数是常量,因此不能在运行时更改,并且不适用于动态结构。
如果您需要根据输入设置值,这些值在执行期间会发生变化,您只需要定义正确宽度的线或寄存器。
或者,对于常量,您可以在向下传递值的地方使用分层参数,但它们必须全部基于参数或常量。
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