[英]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是另一个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.