Menu
Coddy logo textTech

Bucle For

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

Los bucles en Verilog permiten ejecutar un bloque de código varias veces. Son especialmente útiles en los bancos de pruebas para generar patrones de prueba repetitivos, inicializar la memoria 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 buclei = 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 bucle 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 for con arreglos

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 memoria.

Reglas importantes

ReglaExplicación
La variable de bucle 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 la condición finalmente se vuelva falsa
Se usa principalmente en bancos de pruebasLa mayoría de los bucles no se pueden sintetizar
challenge icon

Desafío

Qué hacer:

Añade el bucle for que falta para imprimir los 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