正如我从SystemVerilog 3.1a语言参考手册中知道的那样,“$bits系统函数返回作为比特流保存表达式所需的位数。”
任何链接到规范或文档揭示这一神秘将不胜感激。
发布于 2021-08-06 13:08:36
根据Verilog系统标准:
20.6.2表达式大小系统函数$bits系统函数返回作为比特流保存表达式所需的位数。返回类型是 Integer 6.11整数数据类型integer -- 4状态数据类型,32位有符号整数
发布于 2021-08-06 10:03:25
就位数而言,您可以使用如下代码在模拟器中进行测试
`define inspect(arg) \
$display(`"arg = %b = %d (%0d bits)`", arg, arg, $bits(arg));
module bit_width;
reg [4:0] x;
reg [4'd4:4'd0] y;
initial begin
`inspect($bits(x));
`inspect($bits(y));
end
endmodule
在Icarus Verilog中
$bits(x) = 00000000000000000000000000000101 = 5 (32 bits)
$bits(y) = 00000000000000000000000000000101 = 5 (32 bits)
这意味着两者都会给出32位,固定大小。
老实说,在阅读了你的问题之后,在测试之前,我希望$bits(y)
有4位。
https://stackoverflow.com/questions/68678939
复制相似问题