논리회로 프로젝트 보고서
- 최초 등록일
- 2012.12.23
- 최종 저작일
- 2012.11
- 14페이지/
한컴오피스
- 가격 3,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
VHDL을 이용한 곱셈기(multiplier) 설계 보고서입니다.
코딩은 당연히 보고서 안에 들어있습니다.
목차
1. 문제 설명 (설계 과제)
2. 설계 목적
3. 설계 이론
- 입력에 대한 출력 값이 나오는 원리 분석
4. 설계 구조 및 기법 (설계한 module의 동작 원리)
- Divider
- Multiplier(Booth multiplication algorithm)
5. 설계결과 및 분석
- Dataflow 방식으로 VHDL 코드 작성
6. 설계실행 및 평가(test bench)
- Testbench를 작성하여 설계한 multiplier 검증
- 시뮬레이션 결과 (Simulation 결과 캡쳐 화면 & 결과에 대한 설명)
7. 고찰
본문내용
1. 문제 설명 (설계 과제) : 4bit의 2`s complement binary 입력 2개를 받아 8-bit의 2`s complement binary 로 출력하는 곱셈기를 설계하시오.
Input : 4bit*2
Output : 8bit
2. 설계목적
4bit*4bit multiplier 설계를 통해 곱셈 과정을 이해하고 multiplier 구현을 위한 기법들을 익히며 설계 흐름을 숙지한다. 동작 확인 과정을 통해 시뮬레이션 툴의 사용법을 익힌다.
3. 설계이론(입출력 원리 분석)
- 2`s complement binary입력 2개의 곱셈연산을 위해서 Booth`s multiplication algorithm을 이용하였다. Booth`s multiplication algorithm은 2‘s complement 이진수를 곱셈하는 메커니즘이다.
- 곱셈 과정에 대한 이해 : 4bit의 두 input A와 B는 각각 multiplicand, multiplier을 의미한다. Booth`s algorithm에 의해 multiplier인 B는 마지막에 ‘0’을 붙여서 5bit으로 확장된 후, overlapping이 되도록 3bit씩 묶어준다. 위의 그림에서 묶는 방법을 보여주었다. 위의 수식으로 보면 증명하다가 부분이 필요함을 알 수 있는데, 이 부분이 바로 multiplicand인 B에 추가로 붙여주는 ‘0’인 부분이다. 따라서 위의 조건대로 이 되어야 한다.
<중 략>
이러한 구조를 바탕으로 Modelsim을 통하여 VHDL 문법에 맞추어 multiplier를 설계하였다. multiplier 동작 파일은 Entity, architecture, begin 순서에 맞추어 작성된 코드에 따라 곱셈과정을 수행하였다. 최종 결과 값인 M0와 M1의 합을 구하기위해서 덧셈연산을 수행하여야 하는데 dataflow 방식에 따라 수학연산자를 사용할 수 없으므로 adder를 추가하여 덧셈연산 까지 계산하였다. divider 동작부분도 위에서 계획한 구조에 맞게 설계하였다. 마지막으로 test bench를 작성하여 직접 A,B 입력에 값을 대입하여 곱셈기가 올바르게 작동하는 지를 알아보았다. 시뮬레이션 결과 값 에서 볼 수 있듯이 양수X양수, 양수X음수, 음수X양수, 음수X음수 모두 오류 없이 올바른 결과가 나왔음을 알 수 있었고
이에 따라서 2개의 pile로 구성된 4bit*4bit의 multiplier가 올바르게 설계되었음을 확인 할 수 있었다.
참고 자료
http://www.cise.ufl.edu/~mssz/CompOrg/CDA-arith.html
http://en.wikipedia.org/wiki/Carry-lookahead_adder
http://fourier.eng.hmc.edu/e85/lectures/arithmetic_html/node10.html