이전 튜토리얼에서는 VHDL 프로세스를 프로그램 스레드에 비유하고 wait; 문을 소개했습니다. 이는 프로세스를 무한히 일시 중단합니다. 하지만 프로세스를 특정 시간 동안만 일시 중지해야 한다면 어떻게 할까요?
wait;를 완전히 제거하면 컴파일러 오류가 발생합니다. 모든 VHDL 프로세스는 최소 하나의 wait 문을 포함해야 하는 무한 루프이기 때문입니다. 루프는 begin과 end process; 사이에서 계속 실행됩니다.
이 기사는 기본 VHDL 튜토리얼 시리즈의 일부입니다.
wait;가 실행을 영원히 멈추는 반면, wait for 구조를 사용하면 원하는 시간 간격만큼 프로세스를 지연시킬 수 있습니다.
wait for의 구문은:
wait for <시간값> <시간단위>;
여기서 <시간값>은 숫자 리터럴이고 <시간단위>는 다음 중 하나일 수 있습니다:
fs
펨토초
ps
피코초
ns
나노초
us
마이크로초
ms
밀리초
sec
초
min
분
hr
시간
실습
튜토리얼 비디오를 시청하여 wait for가 사용자 정의 기간 동안 프로세스를 일시 중지하는 모습을 확인하세요.
우리가 구성한 예제 VHDL:
entity T02_WaitForTb is end entity;
architecture sim of T02_WaitForTb is
begin
process is
begin
-- 프로세스 "스레드" 시작
report "Peekaboo!";
wait for 10 ns; -- 시작으로 루프 백
end process;
end architecture;