본문내용
0000부터 1001까지의 코드만 사용하고 1010부터 1111까지의 코드는 사용하지 않는다. 따라서 BCD가산기의 경우 자리올림(carry)까지 포함하면 입력이 4+4+1=9개이고, 출력이 4+1=5개가 된다. 그런데 입력 개수가 5개 이상이 되면 카노맵을 이용한 논리식 간소화가 현실적으로 어렵기 때문에 지금까지의 조합회로 설계방법과는 다른 어떤 직관적인 회로설계 방법을 찾아보자.
앞에서 설계했던 그림 4의 4비트 이진병렬가산기는 4비트로 구성된 이진수 2개를 입력으로 받아 덧셈을 수행하는 회로였다. 만일 이 이진병렬가산기의 입력에 각각 BCD 숫자를 입력하면 출력 값은 얼마가 될까? 입력되는 BCD숫자가 각각 10진수로 0부터 9까지의 수임을 감안할 때 이진병렬가산기의 출력 값은 0+0=0부터 9+9=18까지 나올 수 있으며 여기에 아랫자리로부터의 자리올림을 고려하면 최소 0부터 최대 19까지의 출력 값이 나올 수 있다. 이 출력 값을 이진수로 표현하면 C5S4S3S2S1=00000 부터 C5S4S3S2S1=10011 까지 이다. 따라서 이 출력 값을 그림 7(b)와 같이 BCD 코드로 변환만 해준다면, 2개의 BCD 숫자를 더해 그 결과를 다시 BCD로 출력해주는 BCD가산기를 만들 수 있게 된다.
이제 이진병렬가산기의 출력을 BCD 코드로 변환해주는 회로를 설계해보자. 그림 7(c)에 이진병렬가산기의 출력 값과 이에 대응되는 BCD 코드를 표 형태로 나타내었다. 이 표를 잘 살펴보면 이진병렬가산기의 출력 값이 10 보다 작을 때는 이진병렬가산기의 출력과 BCD 코드가 동일하며, 이진병렬가산기의 출력 값이 10 이상일 경우에는 이진병렬가산기의 출력 값에 6을 더하면 BCD 코드 값이 되는 것을 알 수 있다. 이진병렬가산기의 출력 값이 10 이상인 경우는 C5=1 이거나 S4S3=11 이거나 S4S2=11인 경우이다. 따라서 이를 논리식으로 표현하면 K5=C5+S4S3+S4S2 이다. 이 논리식을 이용하여 BCD가산기 회로를 완성하면 그림 7(d)와 같다. 그림에서 위쪽 이진병렬가산기의 출력 값이 10 이상인 경우, 즉 K5=1인 경우에는 아래쪽에 있는 이진병렬가산기의 한쪽 입력에 0110(+6)이 들어가 더해지고, K5=0인 경우에는 0000이 들어가 더해짐을 알 수 있다. 또한 아래쪽 이진병렬가산기의 자리올림 입력 C1에는 접지(0)을 연결하여야 하고, 자리올림 출력 C5는 사용하지 않았음에 유념하여야 한다.
그림 6-7. BCD가산기
[실험절차 : 그림 06-07] BCD 가산기
[1] 회로를 초기화 시키기 위해 SimInit 버튼을 클릭한다.
[2] 각 소자의 출력값을 보기 위해 showOutput 버튼을 클릭한다.
[3] T 버튼을 클릭하여 회로의 동작모드를 toggle 모드로 설정한다.
[4] 이 회로는 4비트 이진병렬가산기 2개를 이용해 구성된 BCD 가산기이다. 더해지는 두 수(BCD)를 나타내는 INPUT 소자 A4∼A1과 B4∼B1을 클릭하여 각각 A와 B에 0∼9 값을 입력하면서 출력 K5와 Z4∼Z1에 BCD 수로 결과가 출력되는지 확인하라.
그림 8에는 가산기 기능을 수행하는 TTL 종류를 나타내었다.
7480
7482
7483
74183
74283
74385
Gated Full Adder
2-Bit Binary Full Adder
4-Bit Binary Full Adder with Fast Carry
Dual Carry-Save Full Adder
4-Bit Full Adder with Fast Carry
4-Bit Adder/Subtractor with Clear
그림 8. 가산기 기능을 갖는 TTL
앞에서 설계했던 그림 4의 4비트 이진병렬가산기는 4비트로 구성된 이진수 2개를 입력으로 받아 덧셈을 수행하는 회로였다. 만일 이 이진병렬가산기의 입력에 각각 BCD 숫자를 입력하면 출력 값은 얼마가 될까? 입력되는 BCD숫자가 각각 10진수로 0부터 9까지의 수임을 감안할 때 이진병렬가산기의 출력 값은 0+0=0부터 9+9=18까지 나올 수 있으며 여기에 아랫자리로부터의 자리올림을 고려하면 최소 0부터 최대 19까지의 출력 값이 나올 수 있다. 이 출력 값을 이진수로 표현하면 C5S4S3S2S1=00000 부터 C5S4S3S2S1=10011 까지 이다. 따라서 이 출력 값을 그림 7(b)와 같이 BCD 코드로 변환만 해준다면, 2개의 BCD 숫자를 더해 그 결과를 다시 BCD로 출력해주는 BCD가산기를 만들 수 있게 된다.
이제 이진병렬가산기의 출력을 BCD 코드로 변환해주는 회로를 설계해보자. 그림 7(c)에 이진병렬가산기의 출력 값과 이에 대응되는 BCD 코드를 표 형태로 나타내었다. 이 표를 잘 살펴보면 이진병렬가산기의 출력 값이 10 보다 작을 때는 이진병렬가산기의 출력과 BCD 코드가 동일하며, 이진병렬가산기의 출력 값이 10 이상일 경우에는 이진병렬가산기의 출력 값에 6을 더하면 BCD 코드 값이 되는 것을 알 수 있다. 이진병렬가산기의 출력 값이 10 이상인 경우는 C5=1 이거나 S4S3=11 이거나 S4S2=11인 경우이다. 따라서 이를 논리식으로 표현하면 K5=C5+S4S3+S4S2 이다. 이 논리식을 이용하여 BCD가산기 회로를 완성하면 그림 7(d)와 같다. 그림에서 위쪽 이진병렬가산기의 출력 값이 10 이상인 경우, 즉 K5=1인 경우에는 아래쪽에 있는 이진병렬가산기의 한쪽 입력에 0110(+6)이 들어가 더해지고, K5=0인 경우에는 0000이 들어가 더해짐을 알 수 있다. 또한 아래쪽 이진병렬가산기의 자리올림 입력 C1에는 접지(0)을 연결하여야 하고, 자리올림 출력 C5는 사용하지 않았음에 유념하여야 한다.
그림 6-7. BCD가산기
[실험절차 : 그림 06-07] BCD 가산기
[1] 회로를 초기화 시키기 위해 SimInit 버튼을 클릭한다.
[2] 각 소자의 출력값을 보기 위해 showOutput 버튼을 클릭한다.
[3] T 버튼을 클릭하여 회로의 동작모드를 toggle 모드로 설정한다.
[4] 이 회로는 4비트 이진병렬가산기 2개를 이용해 구성된 BCD 가산기이다. 더해지는 두 수(BCD)를 나타내는 INPUT 소자 A4∼A1과 B4∼B1을 클릭하여 각각 A와 B에 0∼9 값을 입력하면서 출력 K5와 Z4∼Z1에 BCD 수로 결과가 출력되는지 확인하라.
그림 8에는 가산기 기능을 수행하는 TTL 종류를 나타내었다.
7480
7482
7483
74183
74283
74385
Gated Full Adder
2-Bit Binary Full Adder
4-Bit Binary Full Adder with Fast Carry
Dual Carry-Save Full Adder
4-Bit Full Adder with Fast Carry
4-Bit Adder/Subtractor with Clear
그림 8. 가산기 기능을 갖는 TTL
추천자료
- 병렬 RL 및 RC 회로의 임피던스
- 엔코더와 디코더 회로
- 기억소자(래치와 플립플롭) 회로
- [연구수업지도안 자료]고등학교 디지털 논리 회로
- [전자회로실험] 오실로스코프와 Function Generator 실험
- [논리회로] 엔코더(Encoder),디코더(Decoder) 설계 및 7-Segement LED,4 to 1 MUX 제작
- Digital 회로 Simulation Tool Tutorial - multisim
- PLD를 이용한 회로구성 [예비레포트]
- [논리회로실험] 실험4. Exclusive-OR와 응용 예비보고서
- Oscilloscope[오실로스코프 파동실험] 및 DC 회로
- 4-bit Adder 회로 설계
- [논리회로설계]Kit 를 활용한 ALU 구현
- [디지털 회로실험] 1장.기본 논리 게이트 (예비)
- 디지털실험 - 실험 4. 엔코더와 디코더 회로 예비