我是Verilog的新手,我正在迈出FPGA“编程”的第一步。 我有一个类似的参数化模块定义:
module foobar #( parameter BITS = 4 ) (...); reg[BITS - 1:0] counter = 0; ... if (counter == |) begin ... end ... endmodule
并且希望在进行测试 | 是否的所有位 counter 已设置(或未设置)。如何做到这一点?在没有参数化的情况下,通过指定(例如。 4'b1111 (或 4'b0000 )。
|
counter
4'b1111
4'b0000
使用复制的串联运算符。检查是否设置了所有位:
if (counter == {BITS{1'b1}}) begin
检查是否清除了所有位:
if (counter == {BITS{1'b0}}) begin
或者,在启用SystemVerilog功能的情况下:
if (counter == '1) begin // All set if (counter == '0) begin // All cleared