Menu
Coddy logo textTech

For Loop

Parte de la sección Fundamentos del Journey de Verilog de Coddy. Lección 58 de 90.

Los bucles en Verilog te permiten ejecutar un bloque de código varias veces. Son especialmente útiles en los bancos de pruebas para generar patrones de prueba repetitivos, inicializar memory e iterar sobre matrices. A diferencia de las descripciones de hardware que se ejecutan en paralelo, los bucles se ejecutan secuencialmente, lo que los hace ideales para la simulación y las pruebas.

El bucle más utilizado es el <strong>for</strong> bucle, que se repite un número específico de veces. Un bucle for ejecuta un bloque de código repetidamente, con una variable de bucle que cambia en cada iteración. Tú controlas exactamente cuántas veces se ejecuta.

Sintaxis:

for (initialization; condition; increment) begin
  // Código a repetir
end
ParteQué haceEjemplo
initializationEstablece el valor iniciali = 0
conditionCuándo detenersei < 10
incrementCambia en cada loopi = i + 1

Ejemplo sencillo

integer i;

for (i = 0; i < 5; i = i + 1) begin
  $display("i = %d", i);
end

Salida:

i = 0
i = 1
i = 2
i = 3
i = 4

El loop se ejecuta 5 veces (i = 0, 1, 2, 3, 4).

Bucle For en bancos de pruebas

Los bucles For se usan comúnmente para probar todas las combinaciones de entrada:

integer test_value;

for (test_value = 0; test_value < 16; test_value = test_value + 1) begin
  $display("test_value = %d", test_value);
end

Esto prueba los 16 valores posibles de una señal de 4 bits.

Bucle loop con arrays

reg [7:0] memory [0:9];
integer i;

initial begin
  for (i = 0; i < 10; i = i + 1) begin
    memory[i] = i * 8;
  end
end

Esto inicializa 10 ubicaciones de memory.

Reglas importantes

ReglaExplicación
La variable de Loop debe ser integer o reg No puede ser wire
Usa begin/end para varias instruccionesEs obligatorio para más de una línea
Evita los bucles infinitosAsegúrate de que condition finalmente se vuelva false
Se usa mejor en bancos de pruebasLa mayoría de los bucles no son sintetizables
challenge icon

Desafío

Qué hacer:

Add el for loop que falta para imprimir números del 0 al 3.

Pruébalo tú mismo

module for_challenge;
  integer i;
  
  initial begin
    $display("Printing 0 to 3:");
    
    // TODO: Añade un bucle for
    // Inicializa i = 0
    // Bucle mientras i < 4
    // Incrementa i = i + 1
    // Dentro, imprime con: $display("i = %d", i);
    
    $finish;
  end
endmodule
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Verilog online