산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> VHDL

VHDL에서 시간을 지연시키는 방법:Wait For

이전 튜토리얼에서 우리는 프로세스를 프로그램 스레드로 생각할 수 있다는 것을 배웠습니다. 또한 wait; 문으로 인해 프로그램이 무기한 일시 중지됩니다. 하지만 프로그램이 영원히가 아닌 다른 시간 값을 기다리게 하는 방법이 있습니까?

wait;을 제거하면 프로그램을 컴파일하려고 하면 컴파일러는 무한 루프에 대해 불평할 것입니다. 컴파일러가 참조하는 루프는 프로세스 루프입니다. . VHDL의 프로세스 스레드는 절대 종료되지 않으며 begin 사이에서 계속 반복됩니다. 및 end process; 진술. wait이 있어야 합니다. 프로세스 루프 내부 어딘가에 문.

이 블로그 게시물은 기본 VHDL 자습서 시리즈의 일부입니다.

wait; 동안 프로그램이 영원히 일시 중지되도록 합니다. wait for 문은 일정 시간 동안 프로그램을 지연하는 데 사용할 수 있습니다.

wait for 구문 문은 다음과 같습니다.
wait for <time_value> <time_unit>;
여기서 <time_value> 숫자 및 <time_unit> 다음 시간 단위 중 하나입니다.

fs 펨토초
ps 피코초
ns 나노초
우리 마이크로초
밀리초 밀리초
시간 시간

운동

이 튜토리얼 비디오에서는 wait for를 사용하는 방법을 보여줍니다. 주어진 시간 동안 프로세스를 일시 중지하는 명령문입니다.

이 튜토리얼에서 만든 코드:

entity T02_WaitForTb is
end entity;

architecture sim of T02_WaitForTb is
begin

    process is
    begin
        -- This is the start of the process "thread"
 
        report "Peekaboo!";
        
        wait for 10 ns;
        
        -- The process will loop back to the start from here
    end process;

end architecture;

ModelSim에서 실행 버튼을 눌렀을 때 시뮬레이터 콘솔에 대한 출력:

VSIM 2> run
# ** Note: Peekaboo!
#    Time: 0 ns  Iteration: 0  Instance: /t02_waitfortb
# ** Note: Peekaboo!
#    Time: 10 ns  Iteration: 0  Instance: /t02_waitfortb
# ** Note: Peekaboo!
#    Time: 20 ns  Iteration: 0  Instance: /t02_waitfortb
...

분석

이 예에서는 10 ns을 사용했습니다. , 10 나노초를 의미합니다. MHz 클록 주파수에서 실행되는 디지털 로직으로 작업할 때 일반적으로 나노초 단위로 작업하게 됩니다.

시뮬레이터에서 코드를 실행했을 때 "Peekaboo!"가 인쇄되었습니다. 10ns마다 콘솔에. 시뮬레이션이므로 report 문은 0시간이 걸리며 루핑도 마찬가지입니다.

테이크아웃

다음 튜토리얼로 이동 »


VHDL

  1. 알 수 없는 시간에 대한 해결
  2. VHDL에서 문자열 목록을 만드는 방법
  3. VHDL 코드 잠금 모듈을 위한 Tcl 기반 테스트벤치를 만드는 방법
  4. VHDL의 프로세스에서 프로시저를 사용하는 방법
  5. VHDL 시뮬레이터 및 편집기를 무료로 설치하는 방법
  6. 작업 계획에 대한 세부 정보는 얼마입니까?
  7. 크레인 브레이크 유지 보수 시간을 알려주는 방법
  8. 로봇 용접 교육 시간을 줄이는 방법
  9. 자동차보험 처음 가입하는 방법은?
  10. 제작 과정에 필요한 시간은 얼마입니까?