2017-10-10 8 views
0

名前付きブロック操作のVerilogコードは合成可能ですか?その一例は以下の通りです:名前付きブロック操作を無効にする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 
+0

はいそれはうまくいくはずです。 –

答えて

0

という名前のブロックは常に合成可能である - それはいくつかのツールで問題が発生する可能性がありdisable文です。ループから抜け出すこの使用法は合成可能でなければなりません。 SystemVerilogでは、breakステートメントを使用しますが、これは確実に合成可能です。 forループは静的にアンロール可能でなければなりません。

関連する問題