Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 |
Tags
- verilog
- DC
- code conversion
- 비동기회로
- C Element
- synopsys
- Design Compiler
- DesignCompiler
- parallel_case
- Asynchronous
- created_clock
- directive
- SystemVerilog
- binary code
- muller-C
- Verification
- gray conversion
- hdl compiler
- systemverilog type
- generated_clock
- SECDED
- SECDEC
- HDL
- C-Gate
- gray code
- Synthesis
- dc directive
- full_case
- binary conversion
- 마크다운 적용
Archives
- Today
- Total
KimB - Designer
Binary to Gray code / Gray to Binary code Conversion 본문
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로 변환할 수 있다.
- Binary Code의 MSB는 항상 Gray Code의 MSB이다.
- 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