Laço Repeat
Parte da seção Fundamentos do Journey de Verilog da Coddy — lição 60 de 90.
O laço repeat executa um bloco de código um número fixo de vezes. Ao contrário do laço for, ele não usa uma variável de contador de laço.
Um laço repeat executa um número especificado de vezes. Você fornece a ele uma constante ou expressão que determina quantas iterações executar.
Sintaxe:
repeat (number) begin
// Código para repetir
endExemplo Simples
repeat (5) begin
$display("Hello");
endSaída:
Hello
Hello
Hello
Hello
HelloA mensagem é impressa exatamente 5 vezes.
Repeat com uma Expressão
integer count = 3;
repeat (count) begin
$display("Looping");
endSaída:
Looping
Looping
LoopingRepeat vs Loop For
| Loop For | Loop Repeat | |
|---|---|---|
| Variável contadora | Sim (explícita) | Não |
| Quando usar | Precisa do valor do índice | Apenas precisa de repetição |
| Exemplo | for (i=0; i<5; i=i+1) | repeat (5) |
Gerando Múltiplos Ciclos de Clock
initial begin
clk = 0;
repeat (20) begin
#5 clk = ~clk;
end
endIsso gera 20 bordas de clock (10 ciclos completos).
Regras Importantes
| Regra | Explicação |
|---|---|
| O `number` deve ser não negativo | Não pode repetir um número negativo de `times` |
| Pode usar constante ou expressão | repeat (10) ou repeat (count) |
| Nenhuma variável de `loop` disponível | Não é possível acompanhar o número da `Iteration` |
Use begin/end para múltiplas instruções | Necessário para mais de uma linha |
Desafio
O que fazer:
Adicione o laço repeat que falta para imprimir "Verilog" 4 vezes.
Experimente você mesmo
module repeat_challenge;
initial begin
$display("Printing 4 times:");
// TODO: Adicione o loop repeat
// Repita 4 vezes
// Dentro, imprima "Verilog"
$finish;
end
endmoduleEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
1Introdução
O que é VerilogHardware vs SoftwareNíveis de Abstração de ProjetoSeu Primeiro MóduloComentários4Operadores Parte 1
Operadores AritméticosOperador de MóduloOperadores de ComparaçãoRecapitulação - Matemática SimplesOperadores Bitwise7Atribuição e Portas Lógicas
Atribuição ContínuaAtribuição com OperadoresPrimitivas de Portas IntegradasPortas AND, OR e NOTPortas XOR e XNORRecapitulação - Circuito de Portas Lógicas10Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Comparador SimplesInstrução CaseCasex e CasezRecapitulação - Projeto de ALU2Tipos de Dados
Tipo WireTipo RegInteger e RealVetoresArraysParâmetrosRecapitulação - Declarar Sinais5Operadores Parte 2
Operadores LógicosOperadores de ReduçãoOperadores de DeslocamentoOperador de ConcatenaçãoOperador CondicionalRecapitulação - Desafio de Operadores3Sistemas de Numeração
Representação BináriaNúmeros com Tamanho DefinidoNúmeros sem Tamanho DefinidoNúmeros NegativosValores Especiais X e ZRecapitulação - Formatos de Números6Módulos
Estrutura de MóduloPortas de Entrada e SaídaPortas InoutInstanciação de MóduloMapeamento de Portas por NomeMapeamento de Portas por OrdemRecapitulação - Construa um Módulo