VHDL

FND DECODER ( DE2보드)

전자자연인 2021. 6. 8. 22:16
반응형

1. FND Decoder

7세그먼트 표시 장치(Seven-segment display)는 표시 장치의 일종으로, 7개의 획으로 숫자나 문자를 나타낼 수 있다. 7세그먼트 표시 장치는 7개의 선분()으로 구성되어 있으며, 위와 아래에 사각형 모양으로 두 개의 가로 획과 두 개의 세로 획이 배치되어 있고, 위쪽 사각형의 아래 획과 아래쪽 사각형의 위쪽 획이 합쳐진 모양이다. 가독성을 위해 종종 사각형을 기울여서 표시하기도 한다. 7개의 획은 각각 꺼지거나 켜질 수 있으며 이를 통해 아라비아 숫자를 표시할 수 있다. 몇몇 숫자(0, 6, 7, 9)는 둘 이상의 다른 방법으로 표시가 가능하다.

7세그먼트 표시 장치의 각 획은 맨 위쪽 가로 획부터 시계 방향으로, 그리고 마지막 가운데 가로 획까지 각각 A부터 G까지의 이름으로 불린다. 소수를 나타내기 위해서 숫자의 오른쪽 아래에 소숫점(DP)이 붙는 경우도 있다.

7세그먼트는 FND(Flexible Numeric Display) 라고 표현하기도 한다. 7세그먼트의 각 획에는 LED가 내장되어 있어 LED의 점등으로 표시를 한다. A부터 G까지 7, DP 1,  8개의 LED가 내장되어 있다 입력은 4비트 출력은 7비트 이다.

 

 

DE2 보드 : Low Active (0값일 시 LED ON)

 

 

 

 

0~9까지의 수가 입력이 되야하므로 입력은 3비트 (8까지표현) 이 아닌 4비트가 되야한다.

 

0이 입력이 되야하므로 4비트의 신호는 0000

1이 입력이 되야하므로 4비트의 신호는 0001

마찬가지로 2의 입력은 0010

마찬가지로 3의 입력은 0011

마찬가지로 4의 입력은 0100

마찬가지로 5의 입력은 0101

마찬가지로 6의 입력은 0110

마찬가지로 7의 입력은 0111

마찬가지로 8의 입력은 1000

마찬가지로 9의 입력은 1001 

 

2.소스코드 및 코드설명

 

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

 

entity FND is

 

port( D_in : in std_logic_vector(3 downto 0);

seg : out std_logic_vector(6 downto 0));

 

end FND;

 

architecture dataflow of FND is

begin

with D_in select

seg <= "1000000" when "0000",

"1111001" when "0001",

"0100100" when "0010",

"0110000" when "0011",

"0011001" when "0100",

"0010010" when "0101",

"0000010" when "0110",

"1011000" when "0111",

"0000000" when "1000",

"0010000" when "1001",

"1111111" when others ;

end dataflow;

 

 

 

다른 입력경우의 수에 대해서 모두 1111111 (모든 LED OFF)가 나오는 걸 볼수가 있다.

 

반응형