Menu
Coddy logo textTech

While 반복문

Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 59번째.

while loop는 condition이 참인 동안 코드 블록을 반복합니다. for loop와 달리 내장된 카운터가 없으므로 loop 변수를 직접 업데이트해야 합니다.

while 루프는 각 반복 전에 조건(condition)을 확인합니다. 조건이 참(true)이면 루프가 실행됩니다. 거짓(false)이면 루프가 중지됩니다.

구문:

while (condition) begin
  // 반복할 코드
end

간단한 예제

integer i = 0;

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

출력:

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

이 루프는 i < 5인 동안 계속 실행됩니다.

While vs For Loop

 For LoopWhile Loop
Counter기본 내장됨직접 관리함
When to use반복 횟수가 정해져 있을 때루프가 언제 멈출지 모를 때
Syntaxfor (i=0; i<5; i=i+1)while (i < 5)

Testbench에서의 While Loop

While 루프는 반복해야 하는 횟수를 정확히 알 수 없을 때 유용합니다:

integer i = 0;

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

Finding a Specific Value

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

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

중요한 규칙

규칙설명
condition은 반드시 거짓(false)이 되어야 함그렇지 않으면 무한 루프가 발생함
Inside에서 loop 변수를 업데이트해야 함그렇지 않으면 loop가 끝나지 않음
Loop 변수는 반드시 integer 또는 reg여야 함wire는 사용할 수 없음
여러 문장에는 begin/end를 사용해야 함두 줄 이상일 때 필수임
challenge icon

챌린지

수행할 작업:

0부터 2까지의 숫자를 출력하도록 누락된 while 루프를 추가하세요.

직접 해보기

module while_challenge;
  integer i;
  
  initial begin
    i = 0;
    $display("Printing 0 to 2:");
    
    // TODO: while 루프 추가
    // i < 3인 동안 루프
    // 내부에서 i 출력
    // i를 1 증가
    
    $finish;
  end
endmodule
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨