【发布时间】:2016-08-31 16:00:23
【问题描述】:
有没有办法根据参数来操作变量实例化?
例如,如果我在此处仅输入 bit [WIDTH-1:0] a; 并设置 DEPTH == 1,则 WIDTH 将为 0,bit [-1:0] a; 没有意义。
当我在下面的示例中对其进行编码时,我在第二个 $display 上收到错误:“未声明的标识符:a”。有没有办法在 Verilog/SV 中实现这一点,还是我的代码中有错误?
module test #(
parameter DEPTH = 2,
parameter WIDTH = $clog2(DEPTH)
)();
generate
if (WIDTH == 0) begin
bit a;
end else begin
bit [WIDTH-1:0] a;
end
endgenerate
initial begin
$display("WIDTH: %d", WIDTH);
$display("Bit width of a: %d", $bits(a));
end
endmodule: test
【问题讨论】:
标签: verilog system-verilog hdl