디지털논리회로 나눗셈기 설계 보고서
- 최초 등록일
- 2023.05.18
- 최종 저작일
- 2020.12
- 9페이지/ 어도비 PDF
- 가격 2,500원
목차
1. 알고리즘 분석
2. 시스템 블록 설계
3. ASMD Chart
4. 제어기 설계
5. 데이터패스 설계
본문내용
1. 알고리즘 분석
1-1) 나눗셈기 알고리즘 상세분석 및 레지스터 구성
나눗셈기 알고리즘 상세분석에 있어 먼저, binary 분할을 위한 종이-연필의 접근방법이 첫 번째이다. 임의의 숫자를 만드는 것이 아닌 데이터를 보내주는 쪽을 기반으로 하여금 이진법 11000101 (8-bit) 와 1010 (4-bit)의 나눔으로써 다음 그림과 같음을 알 수 있다.
위와 같은 접근법으로 나눗셈기를 보았을 때, 나누기 알고리즘은 적절한 피제수 비트에서 제수 (1 or 0 곱하기)를 반복적으로 뺍니다. 따라서 뺄셈과 시프트 연산은 나누기 알고리즘을 구현하는 두 가지 기본 연산입니다.
그리고, 각 뺄셈 후에 제수 (1 or 0을 곱한 값)는 피제수를 기준으로 오른쪽으로 1 비트 이동합니다. 회로 구현의 경우 제수를 오른쪽으로 이동하는 대신 피제수를 왼쪽으로 이동합니다 (후자에 더 많은 레지스터가 필요한지 확인하게끔) 이걸 토대로 블록 다이어 그램은 다음과 같다.
또, 나눗셈기의 알고리즘을 하면서 마지막 뺄셈에는 피제수 LSB > 제수 LSB이여야 한다는 것이 필요하다. 이것을 “오버플로 방지”라 부른다.
결국 우리는 위와 같은 가정들을 만족하면서 나눗셈기를 설계를 하여야한다. 그러기 위해 결과적으로 다음과 같음을 보인다.
나눗셈기 알고리즘에 맞게 설계하기위해서는 다음 그림2를 사용하여 다음과 같이 작업한다.
1. 피제수 제수를 각각 Z와 D 레지스터에 load 한다. 또한, 반복 카운터 값을 0으로 설정
3. Z 레지스터를 왼쪽으로 1 비트 이동하고 시프트 연산은 Z 레지스터의 LSB를 비운다. 그럴 때 비운 메모리 위치는 다음단계에서 얻은 몫을 저장하는데 사용
5.카운트 값을 1씩 늘린다. 카운터가 4이면 알고리즘 종료 아닐 경우 3단계로 다시 이동한다.
이처럼, 나눗셈기 알고리즘의 이론적 내용을 보았을 때, 다음과 같이 레지스터 구성을 할 수 있다,
참고 자료
없음