반응형

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

+ Recent posts