[논리회로실험설계] 한 자리 십진수 가산기
- 최초 등록일
- 2011.07.14
- 최종 저작일
- 2010.06
- 14페이지/
한컴오피스
- 가격 2,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
1. 설계 문제
6조 텀 프로젝트 설계
설계2: 한 자리 십진수 가산기 (필요부품, AND, OR, NOT, 4-bit adder 2개)
조건: 8421 코드 사용, Carry-in 고려, 합이 9보다 큰 경우만 고려→논리회로교재(Marcovitz)
계산 결과 값 출력 →Probe로 출력 또는 설계1 결과 이용한 출력
목차
1. 설계 문제
2. 세부 설계 내용
3. 사용하는 기자재
4. 시뮬레이션
5. 회로 구현 결과
6. 결과 및 고찰
본문내용
1. 설계 문제
6조 텀 프로젝트 설계
설계2: 한 자리 십진수 가산기 (필요부품, AND, OR, NOT, 4-bit adder 2개)
조건: 8421 코드 사용, Carry-in 고려, 합이 9보다 큰 경우만 고려→논리회로교재(Marcovitz)
계산 결과 값 출력 →Probe로 출력 또는 설계1 결과 이용한 출력
2. 세부 설계 내용
우리 조는 설계 2번인 2개의 가산기를 이용하여 숫자를 나타내는 회로를 만들어야 한다.
예를 들면 A1= 7 [0111]과 B1= 5 [0101] 을 더하면 12 [0 1100] 를 출력한다. 이 상태에서 앞 가산기의 합이 9 이상 일시에 다음 두 번째 가산기에서 6 [0110] 을 더하여 나온 출력 값을 이용해 표현을 한다. 즉 앞에서 12 [0 1100] 가 들어오면 10 이상의 숫자를 만족하니 6 [0110]을 더하여 18 [1 0010] 을 만족 한다. 하지만 여기서 [1 0010]은 BCD 코드로 12를 나타낸다.
이 실험에서 나타내야 하는 것은 바로 BCD 가산기 이다. BCD 가산기를 이용한 10진수 가산기라고 말하는 것이 오히려 더 정확한 표현인 것 같다. 하지만 여기서 조건이 있다면 문제에서 말했듯이 “ 한 자리 십진수 가산기 ” 를 만드는 것이 목적이다. 즉, A1 과 B1에 들어가는 수는 0~9 + 0~9 이므로 최소 0에서 최대 18 까지 나타내어야 한다.
하지만 여기서 18 을 2진 코드로 나타내면 [1 0010] 이지만 BCD 코드로 나타내면 [1 1000] 이다. 즉, 2진 코드에서 BCD 코드로 변환시키기 위해선 0110을 더해야 한다. 그러나 0110을 더할 때도 전제 조건을 만족 하여야 더하는데 그때는 A1과 B1의 합이 10이상을 넘을 때 더해야 한다. 10 미만 일 때는 4비트만으로도 0~9 표현이 가능하기 때문이다.
그러면 2번 째 가산기에서 0000과 0110을 구분 하여 넣어야 하는 게 문제 이다. 이 문제를 해결하기 위하여 Carry Detecter[가칭] 을 만들어 구분을 한다.
사실 말이 “Carry Detecter => 캐리 감지“ 라고 말을 지었지 10을 감지하는 논리 회로이다.
이 회로를 만들기 위해 1번 가산기에서 가산 합이 10 이상이 될 수 있는 경우를 생각해 보아야 한다.
참고 자료
없음