VHDL

3x8 Decoder 설계

전자자연인 2021. 6. 8. 21:57
반응형

디코더 

디코더(decoder) n비트의 2진 코드(code) 값을 입력으로 받아들여 최대 2^n개의 서로 다른 정보로 바꿔 주는 조합 회로를 말한다. 일반적으로 디코더는 n개의 입력선과 최대 2^n개의 출력선을 가지며, 입력 값에 따라 선택된 하나의 출력선이 나머지 출력선들과 반대값을 갖는다.

 

3x8디코더 : 3개의 입력선과 최대 2^3개의 출력선을 가지며 입력 값에 따라 선택된 하나의 출력선이 나머지 7개의 출력선들과 반대값을 갖는다.

 

 

 

 

 

2.소스코드 및 코드설명

library ieee;

use ieee.std_logic_1164.all;

 

entity Decoder_38 is -- Decoder_38에 대한 entity

port ( A : in std_logic_vector (2 downto 0);     --A 입력 로직벡터 (3부터0 내림차순), A2A1A0 3비트 선언

Y :out std_logic_vector (7 downto 0));   --Y 출력 로직벡터(7부터 0내림차순) , 8비트 선언

end Decoder_38;

 

architecture Behavioral of Decoder_38 is   --Decoder_38에 대한 동작적모델링

begin

process(A)                                             -- A의 입력신호 변화에의한 순차적 처리begin

case A is

when "000" => Y <= "00000001";

when "001" => Y <= "00000010";

when "010" => Y <= "00000100";

when "011" => Y <= "00001000";

when "100" => Y <= "00010000";

when "101" => Y <= "00100000";

when "110" => Y <= "01000000";

when "111" => Y <= "10000000";

end case; --CASE문 종료

end process; -- 순차처리문 종료

end Behavioral; --동작적모델링 종료

 

3.시뮬레이션 결과 및 설명

 

 

 

 

(1) 입력신호 A의 값이 001이 나올 경우 디코더의 출력 Y의 값은 00000010이 나왔다.

설계한 디코더의 진리표에서 A 001일시 Y의 출력은 Y(1), Y 1비트에 1을 선택하였으므로 나머지 비트의 출력은 Y 1비트의 출력값과 반대이다.

 

(2) 입력신호 A의 값이 000이 나올 경우 디코더의 출력 Y의 값은 00000001이 나왔다.

설계한 디코더의 진리표에서 A 000일시 Y의 출력은 Y(0), Y 0비트에 1을 선택하였으므로 나머지 비트의 출력은 Y 0비트의 출력값과 반대이다.

 

(3) 입력신호 A의 값이 111이 나올 경우 디코더의 출력 Y의 값은 10000000이 나왔다.

설계한 디코더의 진리표에서 A 1일시 Y의 출력은 Y(7), Y 7비트에 1을 선택하였으므로 나머지 비트의 출력은 Y 7비트의 출력값과 반대이다.

 

 

디코더의 진리표는 설계자에 의해 입출력이 달라 질 수있다.

 

 

반응형

'VHDL' 카테고리의 다른 글

FND DECODER ( DE2보드)  (0) 2021.06.08
8x3 Encoder , 8x3 엔코더 VHDL  (0) 2021.06.08
조합회로 - Multiplexer(Mux) 4x1,8x1  (0) 2021.06.08
ALU dataflow  (0) 2021.06.08
Demultiplexer(Demux) 1x4,1x8  (0) 2021.06.08