Menu
Coddy logo textTech

Forever Loop

Parte da seção Fundamentos do Journey de Verilog da Coddy. Lição 61 de 90.

O loop forever repete um bloco de código continuamente, forever. Ele nunca para por conta própria.

Um loop forever é executado repetidamente sem end. Ele é útil para gerar clocks e outros sinais contínuos em ambientes de teste.

Sintaxe:

forever begin
  // Código que se repete para sempre
end

Exemplo simples

forever begin
  $display("This prints forever");
end

Isso imprimirá infinitamente e fará sua simulação travar. Sempre adicione um atraso ou uma condição de parada.

Gerando um Relógio (Uso Comum)

O uso mais comum de forever é gerar um relógio:

initial begin
  clk = 0;
  forever begin
    #5 clk = ~clk;   // Alterna a cada 5 unidades de tempo
  end
end

Isso cria um relógio que funciona durante toda a simulação.

Forever com Disable

Você pode interromper um loop forever usando uma instrução disable:

initial begin : clock_gen   // Nome adicionado aqui
  clk = 0;
  forever begin
    #5 clk = ~clk;
  end
end
initial begin
  #100;
  disable clock_gen;   // Agora isso funciona
end

forever vs Outros loop

loopPara?Quando usar
forSim (após um número fixo de iterações)Número conhecido de repeats
whileSim (quando a condição for falsa)Condição de parada desconhecida
repeatSim (após um número fixo de iterações)Número conhecido de repeats
foreverNão (nunca)Sinais contínuos (clock)

Regras importantes

RegraExplicação
Deve incluir um atraso#10 ou @(posedge clk)
Sem atraso, a simulação travaLoop infinito sem avanço de tempo
Use com disable para interromperOu a simulação nunca termina
Melhor usado em testbenchesNão sintetizável
challenge icon

Desafio

O que fazer:

Add o loop forever ausente para gerar um relógio que alterna a cada 10 time units.

Experimente você mesmo

module forever_challenge;
  reg clk;
  
  initial begin
    clk = 0;
    // TODO: Adicione um loop forever para alternar clk a cada 10 unidades de tempo
  end
endmodule
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de Verilog online