检查所有已设置/未设置的位

问题描述 投票:0回答:1

我是 Verilog 新手,正在迈出 FPGA“编程”的第一步。 我有一个与此类似的参数化模块定义:

module foobar #(
    parameter BITS = 4
) (...);

   reg[BITS - 1:0] counter = 0;
   ...
   if (counter == |) begin
      ...
   end
   ...
endmodule

并且想要测试

|
是否设置了(或未设置)
counter
的所有位。如何实现这一目标?如果没有参数化,通过指定会很容易,例如
4'b1111
(或
4'b0000
)。

verilog system-verilog
1个回答
0
投票

使用复制串联运算符。检查是否设置了所有位:

   if (counter == {BITS{1'b1}}) begin

检查所有位是否已清除:

   if (counter == {BITS{1'b0}}) begin

启用 SystemVerilog 功能:

   if (counter == '0) begin
   if (counter == '1) begin
© www.soinside.com 2019 - 2024. All rights reserved.