BCD Code Representation
BCD 코드 방식
- Binary Coded Decimal의 약자로, 우리말로는 2진화 10진 코드라고 한다. (8421코드라고 하기도 한다.)
- 10진수를 이진코드로 표기하는 방법 중 하나로, 장점은 10진수와의 변환이 비교적 쉽다는 점이다.
* BCD Code 표
* BCD Code상에서 10진수가 2진수로 디코딩하는 원리
- 한 번에 10진수의 한 자리씩 변환해 나가므로 0에서 9까지의 10진수에 대응하는 2진수만을 기억하고 있으면 되는 구조이다. (10진수 - 2진수 변환이 용이한 이유)
BCD Code의 한계
- BCD Code는 2진수 상에서의 수학적 연산을 그대로 수행하지 못한다.
- 네 개의 비트에서 나오게 되는 수치들 중 BCD Code에 없는 숫자는 10진수로 다시 디코딩하지 못하기 때문이다.
- 위 예시에서, 연산의 결과는 0001 1010으로 나왔는데, 1010의 경우 BCD Code표에 명시되지 않은 수치이므로 이 연산결과는 10진수로 해석되지 못하게 된다.
- 따라서, BCD Code 상에서의 연산 결과가 9보다 크거나 마지막 비트(네 번째 비트)를 넘어서는 캐리가 발생할 경우, 그 결과는 10진수로 해석되지 못하므로, 결과값에 6(0110)을 더해서 해석되지 못하는 영역(10~15)을 벗어나야 한다.
Ex. BCD Code를 이용한 "63 + 59" 계산
BCD to 7-Segment Display (Indicator)
- 7개의 다이오드(디스플레이)로 0부터 9까지의 숫자를 표현하는 Logic이다.
- 입력값(w)에 따른 출력값(a~g)이다.
- 진리표에 명시되지 않은 입력값(10~15)들에 대한 출력은 Don't Care로 간주한다.
Reference: Fundamentals of DIGITAL LOGIC with VHDL Design 3E (Stephen Brown, Zvonko Vranesic 저, Mc Graw Hill, 2009)