我想参数化localparam参数。
我的模块定义:
module native #(
parameter SIM_ONLY = 0,
parameter FREQ = 500
)(
...
);我有很多使用相同localparam parameter A的实例化。
if (FREQ == 550) begin
localparam A = 987;
end else begin
localparam A = 122;
end
AA #(
.A_VALUE (A),
) AA_inst (
...
);但这在规范中是不允许的,有不同的正确方法吗?
/!\ A值是一个神奇的数字,不能从FREQ中计算。
我试过:
if (FREQ == 550) begin
shortreal A = 987;
end else begin
shortreal A = 122;
end但我得到了The expression for a parameter actual associated with the parameter name... must be constant.
发布于 2019-11-26 00:24:24
使用条件运算符?:
localparam A = (FREQ==550) 987 : 122;还可以将更复杂的表达式放入常量函数中。
localparam A = some_function(FREQ);
function int some_function(int F);
case(F)
550: return 987;
123: return 456;
default: return 122;
endcase
endfunctionhttps://stackoverflow.com/questions/59041917
复制相似问题