

-여러 개의 입력 데이터 중에서 하나를 선택하여 출력으로 내보내는 논리회로
-데이터 선택기 또는 채널 선택기


회로

결과

입력 D0~D3을 신호 S에따라 X에 연결하여 출력
-멀티플렉서의 반대
-여러 출력 중에서 하나를 선택하여 데이터를 내보내는 논리회로
-데이터 분배기 또는 채널 분배기

회로

결과

입력 D를 신호 S따라 Y0~Y3에 연결하여 출력
| Time | 입력 | S1 | S2 | Y0 | Y1 | Y2 | Y3 |
|---|---|---|---|---|---|---|---|
| 0ms~5ms | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 5ms~10ms | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
| 10ms~20ms | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
| 20ms~30ms | 1 | 1 | 0 | 0 | 0 | 1 | 0 |
| 30ms~35ms | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
| 35ms~40ms | 0 | 1 | 1 | 0 | 0 | 0 | 0 |

BCD(Binary Coded Decimal) 코드 = 10진수를 4비트 2진수로 표현한 코드
그레이 코드는 비가중치 코드, 데이터 변환 등의 용도로 사용되며 연산에는 사용할 수 없다. 숫자가 변할때 1개의 비트만 바뀐다.
하드웨어적으로 봤을때 숫자가 변할때 1개의 비트만 바꾸면 되므로 2진수보다 합리적이고 오류가 적어진다.
2진수의 비트 변화는 실제로는 전자회로의 스위칭으로 구현된다. BCD 코드는 한 번에 여러 비트가 바뀌는 경우가 많으므로 복잡한 스위칭 회로가 동시에 동작해야 한다. 그러면 스위칭 오류가 생길 확률이 높아지고, 스위칭 지연으로 글리치(Glitch)가 생기기도 한다.
반면 그레이 코드는 10진수에 따라 단지 1개의 비트만 변하므로 BCD 코드의 경우와 같이 스위칭 오류가 생기지 않는다. 또한 연속적으로 증가하거나 감소하는 데이터를 전송할 때 오류를 찾아내기 쉽다. 이러한 장점 때문에 그레이 코드는 A/D변환기, 입출력 장치 등에 많이 사용된다.


최상위 비트는 그대로 내려 쓰고, 다음 비트는 생성된 BCD 코드와 그레이 코드를 XOR 연산을 한다.
최상위 비트는 그대로 내려 쓰고, 다음 비트는 앞과 비교하여 XOR 연산을 한다.
(오류 검출 코드 + 교정 기법 = 오류 제어 코딩
ECC : Error Control Coding 오류 제어 코딩
Viterbi code, Turbo code 등등)
데이터 전송 과정에서 생기는 오류 검출용, 가장 많이 알려진 것은 데이터에 패리티(Parity)비트를 추가하는 것. 패리티 비트는 데이터는 아니며, 데이터가 오류 없이 전송되었는지를 확인하는 데에만 쓰인다.

7비트 데이터에 패리티 비트를 추가하는 방법으로, 짝수 패리티와 홀수 패리티가 있다. 짝수 패리티는 1의 개수가 짝수가 되도록 1비트를 추가하고, 홀수 패리티는 1의 개수가 홀수가 되도록 1비트를 추가한다. 송신과 수신측에서 어떤 패리티를 사용할것인지 정해야 한다.

짝수 패리티에서 입력 데이터의 1이 홀수개이면 출력 1이 나옴
홀수 패리티는 짝수 패리티의 출력에 NOT을 붙임
패리트 비트는 1의 개수로 오류를 검출하므로 한번에 짝수개의 비트가 동시에 오류가 난다면 오류를 검출하지 못한다.
오류검출 + 교정

회로

결과

회로

결과

회로

결과






회로

| CK | R | S | Q | Q` |
|---|---|---|---|---|
| 0 | 0 | 1 | x | x |
| 0 | 1 | 0 | x | x |
| 1 | 0 | 0 | x | x |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |
결과

회로

| CK | D | Q | Q` |
|---|---|---|---|
| 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 |
결과

| CK | D | Q | Q` |
|---|---|---|---|
| 0 | 1 | x | x |
| 0 | 0 | x | x |
| 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 |
