7/03 먹스, 디먹스, 패리티, 순차회로

정유석·2024년 7월 3일


멀티플렉서

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

PSpice

회로

결과

입력 D0~D3을 신호 S에따라 X에 연결하여 출력

디멀티플렉서

-멀티플렉서의 반대
-여러 출력 중에서 하나를 선택하여 데이터를 내보내는 논리회로
-데이터 분배기 또는 채널 분배기

PSpice

회로

결과

입력 D를 신호 S따라 Y0~Y3에 연결하여 출력

Time입력S1S2Y0Y1Y2Y3
0ms~5ms0000000
5ms~10ms1001000
10ms~20ms1010100
20ms~30ms1100010
30ms~35ms1110001
35ms~40ms0110000

그레이 코드와 오류 검출 코드

그레이 코드

BCD(Binary Coded Decimal) 코드 = 10진수를 4비트 2진수로 표현한 코드

그레이 코드는 비가중치 코드, 데이터 변환 등의 용도로 사용되며 연산에는 사용할 수 없다. 숫자가 변할때 1개의 비트만 바뀐다.
하드웨어적으로 봤을때 숫자가 변할때 1개의 비트만 바꾸면 되므로 2진수보다 합리적이고 오류가 적어진다.

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

변환방법

그레이 코드 -> BCD

최상위 비트는 그대로 내려 쓰고, 다음 비트는 생성된 BCD 코드와 그레이 코드를 XOR 연산을 한다.

BCD -> 그레이 코드

최상위 비트는 그대로 내려 쓰고, 다음 비트는 앞과 비교하여 XOR 연산을 한다.

오류 검출 코드

(오류 검출 코드 + 교정 기법 = 오류 제어 코딩
ECC : Error Control Coding 오류 제어 코딩
Viterbi code, Turbo code 등등)

패리티 비트

데이터 전송 과정에서 생기는 오류 검출용, 가장 많이 알려진 것은 데이터에 패리티(Parity)비트를 추가하는 것. 패리티 비트는 데이터는 아니며, 데이터가 오류 없이 전송되었는지를 확인하는 데에만 쓰인다.

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

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

2차원 패리티 비트

오류검출 + 교정

PSpice BCD코드->그레이 코드

회로

결과

PSpice 그레이 코드->BCD코드

회로

결과

PSpice 오류 검출 코드(패리티 비트 발생기)(짝수)

회로

결과

RS 및 D 플립플롭

플립플롭은 엣지트리거로 동작하며 펄스검출기가 있어야하며 그렇지 않고 레벨트리거로 enable되어 동작하는 것은 래치 이다.

  • 안정된 출력상태 (0또는1)를 보존하는 디지털 회로
  • 쌍안정 멀티바이브레이터
  • Q와 Q`의 출력
  • 입력을 바꾸지 않는 한 출력이 바뀌지 않는다.
  • 메모리로 사용
  • 순서(또는 순차) 논리회로
  • RS, D, JK, T 플립프롭 등이 있다
  • 출력을 입력 쪽으로 연결한 궤환(Feedback)회로
  • 현재의 출력 상태가 논리 동작에 영향을 미침(궤환회로)
  • 플립플롭, 레지스터, 카운터 등

RS 플립플롭

D 플립플롭

PSpice RS 플립플롭

회로

CKRSQQ`
001xx
010xx
100xx
10110
11001
11111

결과

PSpice D 플립플롭

회로

CKDQQ`
1110
1001
1110
1001

결과


CKDQQ`
01xx
00xx
1110
1001
1110
1001

profile
개인 기록공간

0개의 댓글