Menu
CoddyTech

Bucle While

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

El bucle while repite un bloque de código mientras una condición sea verdadera. A diferencia del bucle for, no tiene un contador integrado. Debes actualizar la variable del bucle tú mismo.

Un bucle while comprueba una condición antes de cada iteración. Si la condición es verdadera, el bucle se ejecuta. Si es falsa, el bucle se detiene.

Sintaxis:

while (condition) begin
  // Código que se repetirá
end

Ejemplo sencillo

integer i = 0;

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

Salida:

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

El bucle se ejecuta mientras i < 5.

Bucles while frente a bucles for

 Bucle forBucle while
ContadorIntegradoLo gestionas tú
Cuándo usarloNúmero conocido de iteracionesSe desconoce cuándo se detendrá el bucle
Sintaxisfor (i=0; i<5; i=i+1)while (i < 5)

Bucle while en bancos de pruebas

Los bucles while son útiles cuando no sabes exactamente cuántas iteraciones necesitas:

integer i = 0;

while (i < 16) begin
  $display("Testing value %d", i);
  i = i + 1;
end

Cómo encontrar un valor específico

integer i = 0;
reg [7:0] data;

while (data[i] != 1) begin
  i = i + 1;
end
$display("First 1 found at position %d", i);

Reglas importantes

ReglaExplicación
La condición debe volverse falsaDe lo contrario, se produce un bucle infinito
Actualiza la variable del bucle dentro del bucleO el bucle nunca termina
La variable del bucle debe ser integer o regNo puede ser wire
Usa begin/end para varias instruccionesEs necesario para más de una línea
challenge icon

Desafío

Qué hacer:

Agrega el bucle while que falta para imprimir los números del 0 al 2.

Pruébalo tú mismo

module while_challenge;
  integer i;
  
  initial begin
    i = 0;
    $display("Printing 0 to 2:");
    
    // TODO: Añade un bucle while
    // Repite el bucle mientras i < 3
    // Dentro del bucle, imprime i
    // Incrementa i en 1
    
    $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