[Combinational Logic Circuit] 디코더(Decoder)
해당 강의노트는 S. Brown and Z. Vranesic, McGraw-Hill의 [Fundamentals of Digital Logic with VHDL Design, 3rd Edition] 책을 기반으로 작성되었습니다
Decoder
- Decoder
- An n-to-$2^n$ binary decoder
- Tri-state Buffer
- Read-only Memory, ROM
Decoder
디코더(Decoder)란?
디코더는 다중 입력에 다중 출력 조합 논리 회로(combinational logic circuit)로, n-bit 데이터 입력을 코드화된 $2^n$개의 출력으로 변환한다. (인코더에 의해 숨겨진 정보를 해독함)
디코더 응용 사례
- 디코더의 역할은 입력 이진수를 하나의 출력으로 연결하는 것으로, 컴퓨터가 어떠한 명령을 처리하는데 사용함.
- 즉, 명령어에 대한 구분을 위해 사용된다
- CPU의 산술 논리 장치에서 연산을 수행하기 위해서는 control line을 활성화해야함. 이 때 활성화를 위한 프로그램 명령을 디코딩 하는데 사용됨
An n-to-$2^n$ binary decoder
2-to-4 decoder & 1-to-4 demultiplexer
- 2개의 이진값의 입력으로 들어오고 4개의 코드화된 출력이 나온게 된다.
- block diagram은 아래의 그림에서 초록색 블럭에 해당하고, circuit diagram은 이를 sop implementation한 결과이다.
- 이때, $w_0, w_1, E_n$을 각각 $s_0, s_1, f$로 assignment해주면 1-to-4 Demux 형태로 표현할 수 있다.
3-to-8 decoder
4-to-16 decoder
4-to-1 multiplexer
Tri-state Buffer
버퍼(Buffer)란?
인버터에 버블이 없는 삼각형 모양으로, 버블이 없으므로 비반전 버퍼임. 즉, 입력값과 출력값이 같음
3-state 버퍼(Tri-state Buffer)란?
2개 이상의 게이트나 다른 논리소자들을 연결시킬 때 사용하는 버퍼로 다음의 진리표(Truth table)를 따른다
여기서 Z는 high impedence 상태를 말함, f는 최종적으로 con에 따라 0, 1, Z의 값을 가질 수 있음
Control(con) | input(x) | output(f) |
0 | 0 | Z |
0 | 1 | Z |
1 | 0 | 0 |
1 | 1 | 1 |
3-state 버퍼를 사용하면 Multiplexer를 만들 수 있음
예시1. 3-state 버퍼를 이용한 4-to-1 Multiplexer 구현
Read-only Memory, ROM
ROM(Read-only Memory)란?
읽기만 가능한 메모리로, AND 게이트와 OR 게이트로 구성된 조합논리회로이다.
AND 게이트는 디코더를 구성하며, OR 게이트는 디코더의 출력인 최소항들을 합하는데 사용되며, OR 게이트의 수는 ROM의 출력선의 수와 같다.