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

VHDL For-루프 마스터하기: 실용 가이드

이전 튜토리얼에서는 loop 문을 사용한 무한 루프 생성과 exit로 빠져나오는 방법을 탐구했습니다. 루프를 특정 횟수만큼 실행해야 한다면? For-루프가 가장 직관적인 해결책입니다.

For-루프는 정수 또는 열거형 항목의 고정 범위를 순회합니다. 현재 반복 값은 암시적으로 선언된 상수를 통해 루프 내부에서 자동으로 사용 가능합니다.

이 기사는 기본 VHDL 튜토리얼 시리즈의 일부입니다.

구문

for <상수> in <범위> loop -- 루프 본문 end loop;

여기서 <상수>는 루프 카운터의 사용자 정의 이름이고, <범위>는 정수 범위(오름차순 또는 내림차순)나 열거형 값 집합일 수 있습니다.

정수 범위

예제 코드

entity T04_ForLoopTb is end entity;
architecture sim of T04_ForLoopTb is
begin
  process is
  begin
    for i in 1 to 10 loop
      report "i=" & integer'image(i);
    end loop;
    wait;
  end process;
end architecture;

시뮬레이션 출력 (ModelSim)

VSIM 2> run
# ** Note: i=1
# Time: 0 ns Iteration: 0 Instance: /t04_forlooptb
# ** Note: i=2
# Time: 0 ns Iteration: 0 Instance: /t04_forlooptb
# ** Note: i=3
# Time: 0 ns Iteration: 0 Instance: /t04_forlooptb
# ** Note: i=4
# Time: 0 ns Iteration: 0 Instance: /t04_forlooptb
# ** Note: i=5
# Time: 0 ns Iteration: 0 Instance: /t04_forlooptb
# ** Note: i=6
# Time: 0 ns Iteration: 0 Instance: /t04_forlooptb
# ** Note: i=7
# Time: 0 ns Iteration: 0 Instance: /t04_forlooptb
# ** Note: i=8
# Time: 0 ns Iteration: 0 Instance: /t04_forlooptb
# ** Note: i=9
# Time: 0 ns Iteration: 0 Instance: /t04_forlooptb
# ** Note: i=10
# Time: 0 ns Iteration: 0 Instance: /t04_forlooptb

분석

For-루프는 정확히 10회 반복을 실행하며, 시뮬레이션 시간 0에서 카운터 값을 출력합니다. 루프 내부에 wait가 없으므로 전체 루프가 즉시 완료됩니다. 마지막 wait;는 프로세스를 무한 대기 상태로 두며, 이는 테스트벤치에서 일반적입니다.

또한 두 가지 필수 문자열 연산을 시연했습니다:

핵심 요약

더 깊은 VHDL 개념을 위해 다음 튜토리얼로 진행하세요.

VHDL

  1. 몰리브덴이 현대 산업을 형성하는 방식: 용도, 이점, 공급 역학
  2. VHDL 문자열 리스트 구현: 모범 사례와 예제
  3. VHDL 테스트벤치 시뮬레이션 우아하게 종료하기
  4. VHDL PWM 컨트롤러 구현: 설계, 시뮬레이션, FPGA 데모
  5. VHDL 난수 생성: 균일 분포부터 OSVVM까지
  6. 프로세스 내 프로시저로 VHDL FSM 설계 깔끔하게 만들기
  7. VHDL 비순수 함수 활용: FSM 가독성과 유지보수성 높이기
  8. VHDL 함수 마스터하기: 효율적 설계를 위한 실전 가이드
  9. VHDL 유한 상태 머신 설계: 신호등 실전 예제
  10. 커터 그라인더(Cutter Grinder) 마스터하기: 실전 기술 가이드