KimB - Designer

Binary to Gray code / Gray to Binary code Conversion 본문

Design Tip

Binary to Gray code / Gray to Binary code Conversion

KimB 2020. 12. 14. 10:34

Gray Code

Gray Code는 연속되는 두 개의 값이 1bit 만 차이가 나는 Binary 숫자 System 이다. 이는 Multi-Bit의 CDC(Clock Domain Crossing) 에서 주로 사용된다.

Gray Code에서 이웃한 Gray code 간 hamming Distance는 항상 1이며, 1st Gray Code와 Last Gray Code의 hamming distance도 항상 1이다.

Decimal Binary Gray Code
0 000 000
1 001 001
2 010 011
3 011 010
4 100 110
5 101 111
6 110 101
7 111 100

Binary to Gray Code 변환

XOR Operation

Exclusive-Or를 이용하면 간단히 Binary Code에서 Gray Code로 변환할 수 있다.

  1. Binary Code의 MSB는 항상 Gray Code의 MSB이다.
  2. LSB 1bit을 제외한 Binary Code와 MSB 1bit을 제외한 Binary Code를 bit XOR하여 나머지 Gray Code를 구한다.

[XOR Gate 그림]

예를 들어, B[3:0]을 Gray Code로 변환하는 경우,

G[3] = B[3]

G[2] = B[3] ⊕ B[2]

G[1] = B[2] ⊕ B[1]

G[0] = B[1] ⊕ B[0]

그러면, 하기 Table처럼 Binary to Gray Conversion이 된다.

Binary Code (B[3:0]) Gray Code(G[3:0])
0000 0000
0001 0001
0010 0011
0011 0010
0100 0110
0101 0111
0110 0101
0111 0100
1000 1100
1001 1101
1010 1111
1011 1110
1100 1010
1101 1011
1110 1001
1111 1000

'Design Tip' 카테고리의 다른 글

Hamming code / ECC  (0) 2022.04.13
Muller-C (C-Element)  (0) 2020.09.29
Comments