具有禁用命名块操作的Verilog代码是否可合成?

时间:2017-10-10 05:06:02

标签: verilog synthesize

具有命名块操作的Verilog代码是否可以合成?下面是一个这样的例子:

 module named_block_disable();

 reg [31:0] bit_detect;
 reg [5:0]  bit_position;
 integer i;

 always @ (bit_detect)
   begin : BIT_DETECT
     for (i = 0; i < 32 ; i = i + 1) begin
       // If bit is set, latch the bit position
       // Disable the execution of the block
       if (bit_detect[i] == 1) begin
          bit_position = i;
          disable BIT_DETECT;
       end  else begin
          bit_position = 32;
       end
    end
  end

1 个答案:

答案 0 :(得分:0)

命名块始终是可综合的 - disable语句可能与某些工具有问题。这种用于摆脱循环的用法应该是可综合的。在SystemVerilog中,您将使用break语句,该语句绝对是可合成的。 for循环必须是静态不可滚动的。