Menu
CoddyTech

While 반복문

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

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

while 루프는 반복할 때마다 조건을 확인합니다. 조건이 참이면 루프를 실행합니다. 거짓이면 루프를 멈춥니다.

구문:

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 반복문과 For 반복문 비교

 For 반복문While 반복문
카운터내장되어 있음직접 관리함
사용 시점반복 횟수를 알고 있을 때반복문이 언제 멈출지 모를 때
구문for (i=0; i<5; i=i+1)while (i < 5)

테스트벤치의 While 루프

필요한 반복 횟수를 정확히 모를 때 While 루프가 유용합니다.

integer i = 0;

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

특정 값 찾기

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

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

중요한 규칙

규칙설명
조건이 false가 되어야 함그렇지 않으면 무한 루프가 됨
루프 변수는 루프 안에서 업데이트해야 함그렇지 않으면 루프가 끝나지 않음
루프 변수는 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실력 점검

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

기초의 모든 레슨

직접 연습해 보세요: 온라인 Verilog 컴파일러