[VerilogHDL] CLA(Carry Look ahead Adder)를 이용한 16bit 고속 가산기 설계
- 최초 등록일
- 2013.05.25
- 최종 저작일
- 2013.05
- 6페이지/ 한컴오피스
- 가격 2,500원
소개글
Verilog 를 이용하여 4bit CAL를 4개 연결하여 만든 16bit CLA 리포트입니다.
기존 RCA와 CLA의 장단점 비교 및 16bit CLA 코드와 시뮬레이션 결과를 정리해놨습니다.
또한 설계 레벨에 따른 시뮬레이션 속도도 간략히 비교해놨습니다.
최대한 깔끔하게 만드려 노력했고 대부분의 이미지는 자체 제작하여 사용하였습니다.
목차
■ RCA(Ripple Carry Adder)
■ CLA(Carry Look ahead Adder);올림수 예견 가산기
■ 16bit Carry Look ahead adder 설계
■ 16bit Carry Look ahead Adder Test bench 코드 및 Timing Simulation 결과
■ 상위레벨과 하위레벨의 16bit Carry Look ahead Adder간의 지연시간 비교
본문내용
■ RCA(Ripple Carry Adder)
여러 bit를 가지는 두 수를 더하기 위한 간단한 형태의 가산기로 더하고자 하는 bit 수만큼 전가산기를 연결하여 제작한다.
한 bit씩 계산하고 자리올림수 발생시 다음 bit에 1을 더해서 그다음bit를 계산하는 방식으로
구조는 간단한 반면 bit의 개수가 많아질수록 속도가 느려지는 단점이 있다.
그림1. 4bit Binary Parallel Adder
■ CLA(Carry Look ahead Adder);올림수 예견 가산기
가수와 피가수의 덧셈에 의해 부분합(sum)을 구하는 동신에 전 자리의 올림수(carry)계산을 독립으로 하고, 부분합과 올림수를 더해서 가산속도를 향상시키는 방식으로 예견을 하는 자리수가 클수록 실행 속도가 빨라지지만 회로의 구조가 커지는 단점이 있다.
올림수(carry)의 값을 미리 계산하기 위해 Generate Signal과 Propagation Signal을 정의해야한다.
- Carry Generate : Ai와 Bi가 모두 1인 경우 → Gi = Ai · Bi
- Carry Propagate : 이전 단계의 carry 와 Ai 혹은 Bi 중의 하나가 1인 경우 → Pi = Ai Bi
<중 략>
■ 상위레벨과 하위레벨의 16bit Carry Look ahead Adder간의 지연시간 비교
자료흐름적표현(Data Flow) 에 의한 16bit Carry Look ahead Adder 코드
※ Test Bench 코드는 기존 게이트레벨표현 방식과 동일
module cla4(S, C, A, B, C0);
input [3:0] A, B;
input C0;
output [3:0] S;
output C;
wire [3:0] S, G, P;
wire C;
wire [3:1] c;
assign G[3:0] = A[3:0] & B[3:0];
assign P[3:0] = A[3:0] ^ B[3:0];
assign c[1] = G[0] | (P[0] & C0);
assign c[2] = G[1] | (G[0] & P[1]) | (P[0] & P[1] & C0);
assign c[3] = G[2] | (G[1] & P[2]) | (G[0] & P[1] & P[2]) | (P[0] & P[1] & P[2] & C0);
assign cout = G[3] | (G[2] & P[3]) | (G[1] & P[2] & P[3]) | (P[0] & P[1] & P[2] & P[3] & C0);
참고 자료
없음