下溢或 -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是另一个问题。

最新更新