确定Verilog代码中的二进制数是否为2的幂

时间:2019-09-30 13:28:33

标签: verilog fpga one-hot-encoding

我正在尝试确定二进制数是否为2的幂(换句话说,它是否为一热编码)。

我找到了一个method,但这是整数。

任何人都可以帮助在verilog中使用二进制数转换使用方法吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

您的代码没有任何问题-这是您使用的工具的局限性。
Verilator需要带有输入和输出的代码,以便可以激发它并显示结果。
它还不喜欢对多位操作数执行逻辑运算符。

module is_power_of_two(output reg f);

reg [7:0];
initial begin
   #1 v = 8'b11110000;
   #1;
end

always @(*) f = v != 0 && !((v & v - 1) != 0);

endmodule