Bucle Repeat
Parte de la sección Fundamentos del Journey de Verilog de Coddy — lección 60 de 90.
El bucle repeat ejecuta un bloque de código un número fijo de veces. A diferencia del bucle for, no utiliza una variable de contador de bucle.
Un bucle repeat se ejecuta un número especificado de veces. Le proporcionas una constante o expresión que determina cuántas iteraciones ejecutar.
Sintaxis:
repeat (number) begin
// Código a repetir
endEjemplo sencillo
repeat (5) begin
$display("Hello");
endResultado:
Hello
Hello
Hello
Hello
HelloEl mensaje se imprime exactamente 5 veces.
Repetir con una expresión
integer count = 3;
repeat (count) begin
$display("Looping");
endSalida:
Looping
Looping
LoopingBucle Repeat vs Bucle For
| Bucle For | Bucle Repeat | |
|---|---|---|
| Variable de contador | Sí (explícito) | No |
| Cuándo usarlo | Necesita el valor del índice | Solo necesita repetición |
| Ejemplo | for (i=0; i<5; i=i+1) | repeat (5) |
Generando múltiples ciclos de reloj
initial begin
clk = 0;
repeat (20) begin
#5 clk = ~clk;
end
endEsto genera 20 flancos de reloj (10 ciclos completos).
Reglas importantes
| Regla | Explicación |
|---|---|
| El número debe ser no negativo | No se puede repetir un número negativo de veces |
| Se puede usar una constante o expresión | repeat (10) o repeat (count) |
| No hay variable de bucle disponible | No se puede rastrear el número de iteración |
Use begin/end para múltiples sentencias | Requerido para más de una línea |
Desafío
Qué hacer:
Agrega el bucle repeat que falta para imprimir "Verilog" 4 veces.
Hoja de referencia
El bucle repeat ejecuta un bloque de código un número fijo de veces sin una variable de contador de bucle.
repeat (number) begin
// Código a repetir
endPuede utilizar una expresión constante o variable:
integer count = 3;
repeat (count) begin
$display("Looping");
endCaso de uso común — generar ciclos de reloj:
repeat (20) begin
#5 clk = ~clk;
endRepeat vs For Loop: Utilice repeat cuando solo necesite repetición (no se necesita índice); utilice for cuando necesite el valor del contador de iteración.
Pruébalo tú mismo
module repeat_challenge;
initial begin
$display("Printing 4 times:");
// TODO: Agregar bucle repeat
// Repetir 4 veces
// Adentro, imprimir "Verilog"
$finish;
end
endmoduleEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
1Introducción
¿Qué es Verilog?Hardware vs SoftwareNiveles de abstracción de diseñoTu primer móduloComentarios4Operadores Parte 1
Operadores aritméticosOperador de móduloOperadores de comparaciónRepaso - Matemáticas simplesOperadores bit a bit7Asignación y Compuertas
Asignación ContinuaAsignación con OperadoresPrimitivas de Compuertas IntegradasCompuertas AND OR NOTCompuertas XOR XNORResumen - Circuito de Compuertas Lógicas10Toma de decisiones
Sentencia IfIf - ElseRepaso - Comparador simpleSentencia CaseCasex y CasezRepaso - Diseño de ALU5Operadores Parte 2
Operadores lógicosOperadores de reducciónOperadores de desplazamientoOperador de concatenaciónOperador condicionalResumen - Desafío de operadores3Sistema de numeración
Representación binariaNúmeros con tamaño definidoNúmeros sin tamaño definidoNúmeros negativosValores especiales X y ZResumen - Formatos de números6Módulos
Estructura del móduloPuertos de entrada y salidaPuertos InoutInstanciación de módulosMapeo de puertos por nombreMapeo de puertos por ordenResumen: Construye un módulo