verilog 中的数组位参数范围 - 下溢或 -1

array bit parameter range in verilog - underflow or -1

在这种情况下,参数 init 的索引范围应该是什么:

parameter zero = 0;

parameter bit[31:0] size = 32'b01;

parameter bit[((zero * size) - 1):0] init = 2'b11;

应该是[-1:0][4294967295:0],为什么?这种行为是标准化的还是取决于工具?

根据 LRM,数组声明中的范围是有符号整数表达式。它应该将 32 位无符号表达式转换为有符号整数。所以结果是-1。您可以通过显示 $left(init)

的结果来测试它

是否所有工具开发人员都阅读了 LRM 是另一个问题。