Verilog: rompe un bloque siempre

1

¿Puedo "romper" un siempre bloques en Verilog? Me gustaría reescribir

  always @(posedge clk_i or posedge rst_i) begin
    if(rst_i) begin
      // Do stuff
    end else begin
      // Do stuff
    end
  end

como sigue (que encuentro más limpio):

  always @(posedge clk_i or posedge rst_i) begin
    if(rst_i) begin
      // Do stuff
      break;
    end

    // Do stuff
  end
    
pregunta Randomblue

1 respuesta

4

Sí, debe asignar un nombre a su bloque de inicio-fin y luego usar la instrucción de desactivación de esta manera:

always @(posedge clk_i or posedge rst_i) begin : block_to_disable
  if(rst_i) begin
    // Do stuff
    disable block_to_disable;
  end

  // Do stuff
end

Sin embargo, es probable que esto no sea sintetizable, por lo que puedes hacer esos trucos solo en simulación (bancos de prueba, etc.).

    
respondido por el lvd

Lea otras preguntas en las etiquetas