3x8 디코더 설계 - 3x8 dikodeo seolgye

디코더 

디코더(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이 나왔다.

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

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

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

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

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

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

이 포스트를 보기전에 아래 버튼(View on)을 꾹 눌러주시길 바랍니당 ^^

외부 링크로 첨부된 음악, 동영상은
재생이 지원되지 않습니다.

디코더 ( Decoder )

디코더는 인코더와 정반대 기능을 수행하며, n 비트의 2진 코드 입력에 의해

최대 2ⁿ개의 출력이 나오므로 가능한 한 2진 입력의 조합만큼 출력을 가진다.

디코더는 인코더가 한 일 암호화또는 컴퓨터가 인식할수있는 것들을 해독해서

사람이 읽을 수 있게 바꾸는 해독기 역할을 한다.

디코더의 진리표는 아래와 같다.

00 이란 값이 들어오면 D0 으로 가는 것이고,

01 이란 값이 들어오면 D1, 10이 들어오면 D2, 11이 들어오면 D3 이렇게해서 출력을 갖는다.

이 진리표를 가지고 2x4 디코더를 위한 논리 회로는 아래와 같이 작성 할 수 있다.

2x4 디코더를 위한 블록도는 아래와 같다.

2x4 뿐만아니라 3x8, 4x16 등 설계할 수 있다. 

입력이 2,3,4 ...n개 갯수에따라 출력이 2ⁿ개가 나올 수 있다.

아래는 3x8 디코더 회로이다 참고하길 바란다.

3x8 디코더는 3개의 입력을 받고 8개의 출력을 갖는 디코더를 말한다.

아래는 3x8 디코더의 진리표이다.

이 진리표를 가지고 논리회로를 그려보면 아래와 같다.