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

VHDL에서 루프 및 종료를 사용하는 방법

이전 튜토리얼에서 wait for를 사용하여 시간을 지연시키는 방법을 배웠습니다. 성명. 프로세스 루프에 대해서도 배웠습니다. 이제 허용하면 프로세스 "스레드"가 프로세스 내에서 영원히 반복된다는 것을 알고 있습니다.

그러나 프로세스의 시작 부분에서 한 번만 무언가를 하고 싶다면 어떻게 해야 할까요? 그런 다음 끝에 다른 코드를 반복합니까? VHDL에서 가장 단순한 종류의 루프는 loop을 사용하여 생성할 수 있습니다. 성명서.

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

단순 루프의 구문은 다음과 같습니다.

loop
end loop;

이러한 루프는 무한정 또는 exit;까지 계속됩니다. 가 발생합니다. exit 문을 사용하여 모든 루프에서 벗어날 수 있습니다.

운동

이 비디오 자습서에서는 간단한 루프를 만드는 방법과 루프에서 벗어나는 방법을 알려줍니다.

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

entity T03_LoopTb is
end entity;

architecture sim of T03_LoopTb is
begin

    process is
    begin
 
        report "Hello!";
        
        loop
            report "Peekaboo!";
            exit;
        end loop;
        
        report "Goodbye!";
        wait;
        
    end process;

end architecture;

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

VSIM 2> run
# ** Note: Hello!
#    Time: 0 ns  Iteration: 0  Instance: /t03_looptb
# ** Note: Peekaboo!
#    Time: 0 ns  Iteration: 0  Instance: /t03_looptb
# ** Note: Goodbye!
#    Time: 0 ns  Iteration: 0  Instance: /t03_looptb

분석

시뮬레이터에서 최종 코드를 실행할 때 첫 번째 "Hello!" ModelSim 콘솔에 인쇄되었습니다. 이어 "피카부!" loop; 사이 및 end loop; 인쇄되었습니다. 다음 줄에서 프로그램은 exit;를 누르십시오. 문으로 인해 프로그램이 루프에서 벗어나게 됩니다. 마지막으로 "굿바이!" 인쇄되었습니다. 이 후에는 프로그램이 wait;에서 영원히 일시 중지되기 때문에 아무 일도 일어나지 않습니다. 성명서.

인쇄물의 타임스탬프에서 모든 것이 0ns 시뮬레이션 시간에 발생했음을 알 수 있습니다. 이전 튜토리얼에서 배웠듯이 wait 이외의 모든 것은 명령문은 제로 시간을 소비합니다.

테이크아웃

다음 튜토리얼로 이동 »


VHDL

  1. VHDL의 프로세스에서 프로시저를 사용하는 방법
  2. VHDL에서 불순 함수를 사용하는 방법
  3. VHDL에서 함수를 사용하는 방법
  4. VHDL에서 프로시저를 사용하는 방법
  5. VHDL에서 타이머를 만드는 방법
  6. VHDL에서 상수 및 일반 맵을 사용하는 방법
  7. VHDL에서 포트 맵 인스턴스화를 사용하는 방법
  8. VHDL 시뮬레이터 및 편집기를 무료로 설치하는 방법
  9. PIC18 마이크로컨트롤러:정의 및 사용 방법
  10. 참조 지정자는 무엇이며 어셈블리에서 어떻게 사용합니까?