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