Menu
Coddy logo textTech

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

Bucle while frente a bucle for

 Bucle forBucle while
ContadorIntegradoTú lo gestionas
Cuándo usarNú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

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 dentroDe lo contrario, el bucle nunca termina
La variable del bucle debe ser integer o regNo puede ser wire
Usa begin/end para varias instruccionesEs obligatorio para más de una línea
challenge icon

Desafío

Qué hacer:

Añade 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
    // Bucle mientras i < 3
    // Dentro, 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