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

VHDL 프로시저 예제: 표준 로직 벡터 증가시키기

VHDL 프로시저란?

프로시저는 VHDL에서 서브프로그램 패밀리에 속합니다. 재사용 가능한 로직을 캡슐화해 코드 중복을 줄이고 유지보수성을 높입니다. 한 번 정의하면 여러 프로세스나 아키텍처에서 호출해 일관된 동작을 보장합니다.

예제: std_logic_vector 1 증가시키기

다음 예제는 8비트 std_logic_vector를 받아 1을 더하고 결과를 반환하는 프로시저를 보여줍니다. 프로시저에는 테스트벤치 내 타이밍 제어를 설명하기 위한 1ns 대기도 포함돼 있습니다.

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity example_procedure_simple is
end example_procedure_simple;

architecture behave of ex_procedure_simple is

 signal r_TEST : std_logic_vector(7 downto 0) := X"42";

 -- 목적: std_logic_vector를 1 증가
 procedure p_INCREMENT_SLV (
 signal r_IN : in std_logic_vector(7 downto 0);
 signal r_OUT : out std_logic_vector(7 downto 0)
 ) is
 begin
 r_OUT <= std_logic_vector(unsigned(r_IN) + 1);
 wait for 1 ns; -- 여기서 wait은 OK.
 end p_INCREMENT_SLV;


begin

 process is
 begin
 wait for 10 ns;
 p_INCREMENT_SLV(r_TEST, r_TEST);
 wait for 10 ns;
 p_INCREMENT_SLV(r_TEST, r_TEST);
 wait for 10 ns;
 p_INCREMENT_SLV(r_TEST, r_TEST);
 wait;
 end process; 

end behave;

왜 Wait 문을 포함하는가?

호출 프로세스에 민감도 리스트가 없으면 프로시저 내부 wait 문은 합법적입니다. 이 기능은 테스트벤치에서 메인 프로세스를 어지럽히지 않고 결정적 지연을 도입해야 할 때 특히 유용합니다.

핵심 요약

VHDL

  1. VHDL 입문: 첫 AND 게이트 만들기
  2. VHDL 타입 변환 종합 가이드: Numeric_Std와 Std_Logic_Arith 패키지
  3. VHDL 레코드로 깔끔하고 재사용 가능한 FIFO 인터페이스 만들기
  4. VHDL Signed vs Unsigned 타입 마스터하기: 실전 인사이트
  5. C# switch 문 마스터하기: 문법, 예제, 모범 사례
  6. C# break 문: 사용법과 활용 시점 완벽 가이드
  7. C# continue 문: 루프 반복 건너뛰기 완벽 활용법
  8. VHDL 문자열 리스트 구현: 모범 사례와 예제
  9. C++ switch-case 마스터하기: 문법, 활용법, 실전 예제
  10. 디지털 절차 작성: 간단하고 효율적이며 신뢰할 수 있습니다