VHDL Entity, Architecture, Operators
VHDL은 "초고속 집적 회로 하드웨어 설명 언어"의 약자로 1980년대 미국 국방부에서 처음 개발했습니다. 전자 회로의 동작을 설명하는 데 사용됩니다. VHDL 프로그램은 프로그램 모듈로 구성됩니다. 모듈은 특정 목적을 위해 작성된 프로그램 세그먼트일 뿐입니다. 예를 들어 패키지 모듈, 테스트 모듈, 메인 VHDL 모듈, 즉 메인 프로그램이 있습니다.
이 장에서는 VHDL 프로그램의 엔터티 및 아키텍처 부분에 대해 자세히 설명합니다. 엔티티 부분은 전자 회로의 입력 및 출력 포트를 설명하는 데 사용됩니다. 즉, I/O 포트를 설명하는 데 사용됩니다. 반면에 VHDL 모듈의 아키텍처 부분은 전자 회로의 작동을 설명하는 데 사용됩니다.
회로 작동 중에 회로는 입력 포트에서 얻은 입력 데이터를 처리하고 출력 포트로 보낼 출력 데이터를 생성합니다. 엔티티 부분에서 사용 가능한 포트에 사용되는 데이터 유형도 논의합니다. 또한 VHDL 연산자에 대해서도 간단히 설명합니다.
Entity
VHDL 프로그램의 엔터티 부분은 전자 회로의 I/O 포트를 설명합니다. 포트는 입력 포트, 출력 포트, 또는 동시에 입력과 출력 포트가 될 수도 있고 버퍼 포트가 될 수도 있습니다.
다음 그림은 포트 유형을 보여주고 있습니다.
다음은 엔터티의 구조를 보여주고 있습니다.
entity entity_name is
port( port_ID1: I/O option signal_type;
port_ID2: I/O option signal_type;
);
end [entity] [entity_name];
여기서 '[entity] [entity_name]'은 중괄호 안에 단어를 생략하거나 유지할 수 있음을 의미합니다.
엔터티의 사용을 예로 들어 설명하겠습니다.
전자 회로의 블랙 박스 표현은 다음과 같습니다.
다음 그림은 VHDL 프로그램, 즉 PR로 전자 회로 포트를 설명합니다.
다음 단계를 통해 위의 그림과 같은 블랙박스의 엔티티 부분을 작성할 수 있습니다.
(S1) 예약어 엔터티를 작성합니다.
(S2) 엔티티에 이름을 부여합니다.
(S3) 행의 끝에 예약어를 씁니다.
(S4) 엔터티 부분의 닫는 태그를 작성합니다.
(S5) 닫는 태그 끝에 세미콜론을 넣습니다.
(S6) 예약어 포트를 씁니다.
(S7) 포트에 괄호를 추가합니다.
(S8) port() 끝에 세미콜론을 붙입니다.
(S9) 2개의 입력 포트와 3개의 출력 포트에 대해서 포트에 이름을 지정합시다.
(S10) in, out 예약어를 사용하여 포트의 종류를 표시한다.
(S11) 모든 포트 데이터 유형에 대해 std_logic을 사용한 입력 및 출력 포트에서 사용 가능한 데이터 유형을 붙입니다.
(S12) 모든 std_logic의 끝에 세미콜론을 넣습니다.
entity my_circuit_name is
port( inp1: in std_logic
inp2: in std_logic
outp1: out std_logic
outp2: out std_logic
outp3: out std_logic );
end my circuit name;
S12단계에서 VHDL 프로그램에서 데이터 유형 std_logic이 의미를 갖는 데 필요한 헤더 라인을 추가한 최종 엔터티 구문은 다음과 같습니다.
library IEEE; -- IEEE library
use IEEE.std_logic_1164.all; -- Necessary to use the std_logic
entity my_circuit_name is
port( inp1: in std_logic; --Input port
inp2: in std_logic; --Input port
outp1: out std_logic; --Output port
outp2: out std_logic; --Output port
outp3: out std_logic ); --Output port
end my_circuit_name; -- End of entity
'프로그래밍 언어 > VHDL' 카테고리의 다른 글
[VHDL 학습] when문, select문, generate문 (0) | 2022.03.30 |
---|---|
[VHDL 학습] VHDL 연산자 (0) | 2022.03.24 |
[VHDL 학습] Architecture (0) | 2022.03.23 |
[VHDL 학습] 입력/출력 포트에서 사용되는 데이터 유형 (0) | 2022.03.22 |