std_logic
포트에 사용되는 데이터 유형은 IEEE 패키지에 정의된 std_logic입니다. std_logic_1164.all.
std_logic 데이터 유형의 경우 8가지 가능한 값이 있으며 이 값은 다음과 같이 정리되어 있습니다.
‘X’ Unknown
‘0’ Logic 0
‘1’ Logic 1
‘Z’ High Impedance
‘W’ Weak Unknown
‘L’ Weak Low
‘H’ Weak High
‘-’ Don’t Care
std_logic_vector
std_logic_vector 데이터 유형은 IEEE.std_logic_1164.all 라이브러리에 정의되어 있습니다. I/O 포트의 데이터 유형이 std_logic_vector이면 I/O 포트에 여러 std_logic 값이 있음을 의미합니다.
entity FourBit_Circuit is
port( inp1: in std_logic_vector(3 downto 0)
inp2: in std_logic_vector(3 downto 0)
outp1: out std_logic_vector(4 downto 0)
outp2: out std_logic_vector(4 downto 0) );
end FourBit_Circuit;
std_ulogic
데이터 유형 std_ulogic은 IEEE.std_logic_1164.all 패키지에 정의되어 있습니다. std_ulogic 데이터 유형의 경우 9가지 가능한 값이 있으며 이러한 값은 다음과 같이 정리되어 있습니다.
‘U’ Uninitialized
‘X’ Unknown
‘0’ Logic 0
‘1’ Logic 1
‘Z’ High Impedance
‘W’ Weak Unknown
‘L’ Weak Low
‘H’ Weak High
‘-’ Don’t Care
std_ulogic_vector
std_ulogic_vector 데이터 유형은 IEEE.std_logic_1164.all 라이브러리에 정의되어 있습니다. I/O 포트의 데이터 유형이 std_ulogic_vector이면 I/O 포트에 여러 std_ulogic 값이 있음을 의미합니다.
bit
비트 데이터 유형은 표준 패키지에 정의되어 있습니다. 즉, VHDL 프로그램의 헤더에 추가 패키지를 포함할 필요가 없습니다.
entity FourBit_Circuit is
port( inp1: in bit_vector(3 downto 0);
inp2: in bit_vector(3 downto 0);
outp1: out bit_vector(4 downto 0);
outp2: out bit_vector(4 downto 0) );
end entity;
bit_vector
bit_vector 데이터 유형은 표준 패키지에 정의되어 있습니다. 즉, VHDL 프로그램의 헤더에 추가 패키지를 포함할 필요가 없습니다. I/O 포트의 데이터 유형이 bit_vector이면 I/O 포트에 여러 비트 값이 있음을 의미합니다.
integer, natural, positive
integer, natural, positive 데이터 유형은 표준 패키지에 정의되어 있습니다. 즉, VHDL 프로그램의 헤더에 추가 패키지를 포함할 필요가 없습니다. 정수 데이터 유형은 231에서 231 - 1 범위의 정수를 나타내는 데 사용됩니다.
자연 데이터 형식은 0에서 231 - 1 범위의 정수를 나타내는 데 사용됩니다. 반면 데이터 형식 양수는 1에서 231 - 1 범위의 정수를 나타내는 데 사용됩니다.
entity FourBit_Circuit is
port( inp1: in integer range 0 to 15;
inp2: in integer range 0 to 15;
outp1: out integer range 0 to 31;
outp2: out integer range 0 to 31 );
end entity;
entity FourBit_Circuit is
port( inp1: in natural range 0 to 15;
inp2: in natural range 0 to 15;
outp1: out natural range 0 to 31;
outp2: out natural range 0 to 31 );
end entity;
unsigned, signed
unsigned 및 signed 데이터 유형은 numeric_std 및 std_logic_arith 패키지에 정의되어 있습니다. 엔티티 선언에서 이러한 데이터 유형을 사용할 수 있으려면 이러한 패키지 중 하나가 VHDL 프로그램의 헤더에 포함되어야 합니다. unsigned 데이터 형식은 음수가 아닌 정수를 나타내는 데 사용되며, signed 데이터 형식은 부호 있는 숫자, 즉 정수를 나타내는 데 사용됩니다.
다수의 비트로 구성된 다수의 포트를 갖는 전자 회로는 다수의 등가 방식으로 표현될 수 있다. 이 개념을 예를 들어 설명하겠습니다.
library IEEE;
use IEEE.numeric_std.all;
entity FourBit_Circuit is
port( inp1: in unsigned(3 downto 0);
inp2: in unsigned (3 downto 0);
outp1: out unsigned (4 downto 0);
outp2: out unsigned (4 downto 0) );
end entity;
library IEEE;
use IEEE.numeric_std.all;
entity FourBit_Circuit is
port( inp1: in signed (3 downto 0);
inp2: in signed (3 downto 0);
outp1: out signed (4 downto 0);
outp2: out signed (4 downto 0) );
end entity;
'프로그래밍 언어 > VHDL' 카테고리의 다른 글
[VHDL 학습] when문, select문, generate문 (0) | 2022.03.30 |
---|---|
[VHDL 학습] VHDL 연산자 (0) | 2022.03.24 |
[VHDL 학습] Architecture (0) | 2022.03.23 |
[VHDL 학습] Entity (0) | 2022.03.21 |