Repeat 반복문
Coddy Verilog 여정의 기초 섹션에 포함된 레슨. 90개 중 60번째.
repeat 루프는 코드 블록을 정해진 횟수만큼 실행합니다. for 루프와 달리 루프 카운터 변수를 사용하지 않습니다.
repeat 루프는 지정된 횟수만큼 실행됩니다. 몇 번 반복할지 결정하는 상수나 표현식을 입력합니다.
구문:
repeat (number) begin
// Code to repeat
end간단한 예제
repeat (5) begin
$display("Hello");
end출력:
Hello
Hello
Hello
Hello
Hello메시지가 정확히 5번 출력됩니다.
표현식으로 반복하기
integer count = 3;
repeat (count) begin
$display("Looping");
end출력:
Looping
Looping
LoopingRepeat 루프와 For 루프 비교
| For 루프 | Repeat 루프 | |
|---|---|---|
| 카운터 변수 | 예 (명시적) | 아니요 |
| 사용 시점 | 인덱스 값이 필요할 때 | 반복만 필요할 때 |
| 예시 | for (i=0; i<5; i=i+1) | repeat (5) |
여러 클록 사이클 생성하기
initial begin
clk = 0;
repeat (20) begin
#5 clk = ~clk;
end
end이 코드는 클록 에지 20개(완전한 사이클 10개)를 생성합니다.
중요한 규칙
| 규칙 | 설명 |
|---|---|
| 횟수가 0 이하이면 본문을 건너뜁니다 | repeat (-5)는 오류 없이 컴파일되며 0회 실행됩니다 |
| 상수나 식을 사용할 수 있습니다 | repeat (10) 또는 repeat (count) |
| 사용할 수 있는 루프 변수가 없습니다 | 반복 횟수를 추적할 수 없습니다 |
여러 문장에는 begin/end를 사용합니다 | 한 줄보다 많은 경우 필요합니다 |
챌린지
할 일:
"Verilog"를 4번 출력하도록 누락된 repeat 반복문을 추가하세요.
직접 해보기
module repeat_challenge;
initial begin
$display("Printing 4 times:");
// TODO: repeat 루프를 추가하세요
// 4번 반복하세요
// 루프 안에서 "Verilog"를 출력하세요
$finish;
end
endmodule이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 Verilog 컴파일러