2017-10-10 5 views
0

Ist Verilog-Code mit benannter Blockoperation synthetisierbar? Ein solches Beispiel ist unten:Ist Verilog-Code mit deaktivierter benannter Blockoperation synthetisierbar?

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

Ja sollte es funktionieren. –

Antwort

0

Eine benannte Block ist immer synthetisierbaren - es ist die disable Anweisung, die Probleme mit einigen Tools haben. Diese Verwendung, um aus einer Schleife herauszukommen, sollte synthetisierbar sein. In SystemVerilog würden Sie eine break-Anweisung verwenden, die eindeutig synthetisierbar ist. Die for-Schleife muss statisch nicht rollbar sein.