Repeat 반복문
Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 60번째.
repeat 루프는 코드 블록을 정해진 횟수만큼 실행합니다. for 루프와 달리, 루프 카운터 변수를 사용하지 않습니다.
repeat 루프는 지정된 횟수만큼 실행됩니다. 실행할 반복 횟수를 결정하는 상수 또는 표현식을 제공합니다.
구문:
repeat (number) begin
// 반복할 코드
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 vs 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개의 전체 사이클)를 생성합니다.
중요 규칙
| 규칙 | 설명 |
|---|---|
| 숫자는 음수가 아니어야 합니다 | 음수 횟수만큼 반복할 수 없습니다 |
| 상수 또는 표현식을 사용할 수 있습니다 | repeat (10) 또는 repeat (count) |
| 루프 변수를 사용할 수 없습니다 | 반복 횟수를 추적할 수 없습니다 |
여러 문장에는 begin/end를 사용하세요 | 두 줄 이상인 경우 필수입니다 |
챌린지
수행할 작업:
"Verilog"를 4번 출력하도록 누락된 repeat 루프를 추가하세요.
치트 시트
repeat 루프는 루프 카운터 변수 없이 정해진 횟수만큼 코드 블록을 실행합니다.
repeat (number) begin
// 반복할 코드
end상수 또는 변수 표현식을 사용할 수 있습니다:
integer count = 3;
repeat (count) begin
$display("Looping");
end일반적인 사용 사례 — 클록 사이클 생성:
repeat (20) begin
#5 clk = ~clk;
endRepeat vs For 루프: 반복만 필요한 경우(인덱스가 필요 없는 경우)에는 repeat를 사용하고, 반복 카운터 값이 필요한 경우에는 for를 사용하세요.
직접 해보기
module repeat_challenge;
initial begin
$display("Printing 4 times:");
// TODO: repeat 루프 추가
// 4번 반복
// 내부에서 "Verilog" 출력
$finish;
end
endmodule이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.