Encoder
Encoder의 정의와 역할
인코더는 주어진 입력을 특정한 출력 코드로 변환하는 디지털 회로이다.
이는 주로 입력 신호를 더 작은 비트 크기의 이진 코드로 변환하는 데 사용된다.
데이터 전송, 데이터 압축, 오류 검출 및 수정 등의 다양한 디지털 시스템에서 중요한 역할을 한다.
다시말해서,
m-bit input code를 n-bit output code로 변환하는 장치이다. (여기서 n≤m≤2n)
인코더는 2n (또는 그 이하)개의 input lines과 n개의 output lines를 가지며,
입력 값에 해당하는 이진 코드를 생성하게 된다.
일반적으로 인코더는 1인 비트가 하나만 있는 코드를 이 비트가 나타나는 위치에 해당하는 이진 코드로 변환한다.
2n-to-n 인코더는 n개의 OR 게이트로 구현할 수 있다.
Encoder의 종류
Binary Encoder (이진 인코더)
이진 인코더는 n개의 입력 신호 중 하나만이 활성화되는 경우에 대해 출력 이진코드를 생성하게 된다.
예를 들어 4 to 2 Encoder는 4개의 입력을 2비트 이진 코드로 변환한다.
4 to 2 Encoder 예시
입력 (D3, D2, D1, D0) | 출력 (A1, A0) |
0001 | 00 |
0010 | 01 |
0100 | 10 |
1000 | 11 |
A0=D1+D3
A1=D2+D3
Octal(8) to Binary Encoder 예시
입력 (D7, D6, D5, D4, D3, D2, D1, D0 ) |
출력 (A2, A1, A0 ) |
00000001 | 000 |
00000010 | 001 |
00000100 | 010 |
00001000 | 011 |
00010000 | 100 |
00100000 | 101 |
01000000 | 110 |
10000000 | 111 |
A0=D1+D3+D5+D7
A1=D2+D3+D6+D7
A2=D4+D5+D6+D7
- Inputs (입력) : 8진수 숫자에 해당하는 8 bits 입력
- Output (출력) : 3bits 이진 코드
Priority Encoder (우선순위 인코더)
Priority Encoder는 여러 입력 값 중 하나 이상의 값이 1일 때, 가장 높은 우선순위의 입력 위치를 선택하여 해당 위치에 대한 이진 코드를 출력하는 디지털 회로이다.
이는 일반적인 인코더가 여러 입력 값이 동시에 1일 때 제대로 동작하지 않는 문제를 해결하기 위해 사용된다.
동작원리
- 여러 입력 값 중 1이 여러개일 경우, 가장 중요한 입력 위치(또는 가장 덜 중요한 입력 위치)에 있는 1을 선택한다.
- 선택된 입력 위치에 해당하는 이진 코드를 출력한다.
- V 출력은 적어도 하나의 입력 값이 1인지 여부를 나타낸다.
입력 ( D3, D2, D1, D0 ) | 출력 ( A1, A0, V ) |
0000 | xx,0 |
0001 | 00,1 |
001x | 01,1 |
01xx | 10,1 |
1xxx | 11,1 |
A0=D3+D1¯D2
A1=D2+D3
V=D0+D1+D2+D3
Encoder 설계

Decoder
Decoder의 정의
디코딩을 수행하는 회로를 디코더라고 한다.
디코더는 n개의 입력을 받아 2n(또는 그 이하)의 출력을 생성한다.
디코딩은 n-bit 입력 코드를 m-bit 출력 코드로 변환하는 과정이다.
이때, n≤m≤2n 의 조건을 만족하며, 각 유효한 코드 단어는 고유한 출력 코드를 생성한다.
Decoder 예시

1개의 입력을 받아 2개의 출력을 생성하는 1-to-2 Line Decoder의 예시이다.

2개의 입력을 받아 4개의 출력을 생성하는 2-to-4 Line Decoder의 예시이다.
- 출력 AND 게이트의 수: 4
- 출력 AND 게이트를 구동하는 디코더의 Input 개수 : 2
- 분할
- 두 개의 1-to-2 Line decoder

3개의 입력을 받아 8개의 출력을 생성하는 3-to-8 Line Decoder의 예시이다.
- 출력 AND 게이트의 수: 8
- 출력 AND 게이트를 구동하는 디코더의 Input 개수 : 2
- 분할
- 2-to-4 Line Decoder
- 1-to-2 Line Decoder
Decoder의 확장 방법
두 개의 작은 디코더를 결합하여 더 큰 디코더로 확장하는 방법이다.
두 디코더의 출력을 결합하여 더 큰 디코더를 만든다.
n1-to-2n1 Decoder n2-to-2n2 Decoder 2n1+n2 2-input ANDs |
(n1+n2)-to-2(n1+n2) Decoder |
Decoder 설계

'Verilog-Basic' 카테고리의 다른 글
All Bit Zero/One Detector 설계 (0) | 2024.08.06 |
---|---|
9 Bit Parity Generator 설계 (0) | 2024.07.15 |
ALU(Arithmetic Logic Unit, 산술 논리 연산 장치) - ALU 74181 설계 (0) | 2024.07.11 |
Multiplexer (MUX, 멀티플렉서)/Demultiplexer(Demux) 설계 (0) | 2024.07.10 |
Carry-Lookahead Adder 설계 (0) | 2024.07.09 |