모든 루프 문장들은 행위 수준 문장이므로 initial, always 블록 안에 위치한다.
또한 루프는 지연 시간을 포함할 수 있다.
기본적으로 while과 for의 사용법은 C에서와 같다.
- repeat
repeat은 정해진 횟수만큼 루프를 수행한다.
루프의 횟수는 시작할 때에만 계산되고, 도중에 루프의 횟수를 표현하기 위해 사용된 변수의 값이 변하더라도 횟수가 변하지 않는다.
repeat(128)
begin
$display("Count = %d", count);
count = count + 1;
end
- forever
forever 루프는 무한루프와 같다.
$finish, $stop, disable을 통해 종료/중단할 수 있다.
initial
forever @(posedge clock) x = y;
'EE > Verilog' 카테고리의 다른 글
[Verilog] 중첩된 블록, 명명된 블록, disable (0) | 2023.01.17 |
---|---|
[Verilog] 순차 처리 블록과 병렬 처리 블록 / fork, join (0) | 2023.01.17 |
[Verilog] case, casex, casez문 (0) | 2023.01.17 |
[Verilog] 사건 기반 타이밍 제어 (0) | 2023.01.17 |
[Verilog] 지연 기반 타이밍 제어 (0) | 2023.01.17 |