Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- ATMEGA128A
- soc 설계
- FND
- Algorithm
- stop watch
- uart 통신
- hc-sr04
- dataflow modeling
- gpio
- DHT11
- prescaling
- Recursion
- pwm
- Edge Detector
- Pspice
- BASYS3
- D Flip Flop
- vivado
- half adder
- Linked List
- LED
- ring counter
- i2c 통신
- structural modeling
- behavioral modeling
- test bench
- verilog
- KEYPAD
- atmega 128a
- java
Archives
- Today
- Total
거북이처럼 천천히
그레이 코드 (Grey code) 본문
1. Grey Code
- Gery Code는 비트 열의 위치에 따라 가중치가 없는 코드인 비가중치 (Non-weight) 코드이다.
- Gery Code는 주로 ADC (Analog to Digital Converter)와 입출력 장치에서 사용하며, 2진수 연산에서는 사용할 수 없다.
- 다음은 10진수를 BCD (Binary Coded Decimal)코드와 Grey 코드로 표현한 것이다.
- 위 그림을 보면 그레이 코드는 BCD 코드와 달리 규칙없이 변화하는 것 갖지만, 인접한 코드 사이에 1개의 비트만 변화하는 것을 확인할 수 있다.
- Q) Grey 코드는 ADC 와 입출력 장치에 사용된다고 하는데, Grey 코드이 장점은 무엇인가?
A) 아래 그림에 가지고 설명하겠다.
아래 그림은 10진수 7 ~ 10까지를 BCD 코드와 Grey 코드로 표현한 것이다.
- BCD 코드인 경우 10진수 값이 변화함에 따라 1 ~ 4개 비트의 변화가 필요하다.
- 하지만, Grey 코드는 10진수 값이 변화함에 따라 단 1개의 비트에서만 변화가 발생한다.
- 2진수의 변화는 단순히 숫자의 변화가 아니라 실제로는 전자회로에서 Switching으로 구현한다.
- 따라서 BCD 코드는 10진수 값의 변화에 따라 여러 번의 Switching 이 복잡하게 필요하지만,
Grey 코드는 10진수 값의 변화에 따라 단 한 번의 Switching이 필요하다.
- Q) 여러 번의 Switching 동작이 필요하면 하면 되지 않는가? 뭐가 문제인가?
- A) 여러 번의 Switching 동작을 한다는 것은 Switching 오류가 발생할 확률이 높다는 의미를 갖으며, Switching 지연으로 인한 Glitch가 발생할 수 있다.
- Q) Glitch가 무엇인가?
- A) 디지털 논리 회로에서 게이트의 두 입력값 중 하나의 입력 값에서 Delay가 발생하여 나머지 입력값보다 늦게 들어간다면 어떤 문제가 발생하는가? 아래 그림과 함께 Delay 시간 동안 의도 다른 잘못된 결과가 출력된다.
- 위 예시를 보면 AND 게이트의 두 개의 입력값을 A 단자로 부터 받지만, 하나의 입력값은 Invertor를 거친 뒤, AND 게이트로 들어가게 된다.
- 이 과정에서 Invertor 를 거치는 과정에서 PDT (Propagation dealy time)이 발생하고, 결국 두 입력값 사이에 delay를 갖고 AND 게이트의 입력으로 들어가게 된다.
- 이를 Timing diagram으로 보면 입력값 A와 A' 사이에 delay가 발생하는데, 이 delay 시간동안 출력값 B는 1이 출력 됨을 확인할 수 있다.
- 이는 일시적으로 잘못된 결과가 출력된 상태이다. 이를 글리치 (Glitch) 라한다.
정리) Grey Code
- Grey Code는 BCD 코드와 다르게 10진수의 변화에 따라 단 1개의 비트 값만 변한다.
- 이는 논리 회로에서 단 한 번의 Switch 회로가 동작함을 의미하며, 이를 통해 Switch 오류와 Glitch 문제를 최소화 할 수 있다.
- 연속적으로 증가하거나 감소하는 데이터를 전송할 때 오류를 찾아내기 쉽다.
- 주로 A/D Converter, 입출력 장치 등에 사용
'논리 회로 > 디지털 논리 회로' 카테고리의 다른 글
SR Latch / D Latch (0) | 2024.07.04 |
---|---|
PSpice를 통한 Grey 코드 구현 (0) | 2024.07.03 |
MUX와 DEMUX (1) | 2024.07.03 |
Encoder와 Decoder (0) | 2024.07.03 |
감산기 (0) | 2024.07.03 |