32 비트 캐리 예측 덧셈기 (cla)

80
DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering 32 비비 비비 비비 비비비 (CLA) RCA(Ripple Carry Adder) Simple but slow due to the long carry propagat ion path

Upload: jaimin

Post on 11-Feb-2016

82 views

Category:

Documents


0 download

DESCRIPTION

32 비트 캐리 예측 덧셈기 (CLA). RCA(Ripple Carry Adder) Simple but slow due to the long carry propagation path. CLA(Carry Look ahead Adder) 의 원리. Carry generate function G i = A i • B i : C i-1 에 관계없이 C i =1 이 됨 . Carry propagation function P i = A i B i : C i-1 에 따라 C i 가 생성됨 . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

32 비트 캐리 예측 덧셈기 (CLA)

• RCA(Ripple Carry Adder)

– Simple but slow due to the long carry propagation path

Page 2: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

CLA(Carry Look ahead Adder) 의 원리

• Carry generate function – Gi = Ai • Bi : Ci-1 에 관계없이 Ci=1 이 됨 .

• Carry propagation function – Pi = Ai Bi : Ci-1 에 따라 Ci 가 생성됨 .– Pi, Gi 는 동시에 생성가능 .– Si = (Ai Bi) Ci-1 = Pi Ci-1 로 쓸수 있음 .– Ci = Ai • Bi + (Ai Bi) • Ci-1 = Gi + Pi • Ci-1 로 쓸 수 있음 . – 따라서– C0 = G0 + P0 • C-1

– C1 = G1 + P1 • C0 = G1 + G0 • P1 + P0 • P1 • C-1

– C2 = G2 + P2 • C1 = G2 + G1 • P2 + G0 • P1 • P2 + P0 • P1 • P2 • C-1

….

– Pi 와 Gi 동시 발생되므로 , C0 만을 이용하여 Ci(i>0) 를 모두 동시에 구할 수 있다

Page 3: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

CLA 의 블록 다이어그램

PGU : Propagate / Generic unitCLU : Carry Look ahead Unit : C(nio) 생성 , SU : Summation Unit

Page 4: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

하위레벨 component 의 VHDL 모델링

• 32 비트 CLA 를 4 비트 BCLU (Block CLU) 와 8비트 CLU 를 이용하여 2-level 로 모델링 함 .

Page 5: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

PGU

Page 6: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

Page 7: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

BCLU• 32 비트 CLU 는 fanin 이 너무 크기 때문에 , 8 개의 4 비트 BCL

U 와 1 개의 8 비트 CLU 를 이용하여 그림과 같이 구성한다 .

Page 8: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

• 임의의 k 번째 (0 =< k =< 7) BCLU 는 각 비트의 Pi, Gi 와 1- 비트의 Cin 을 입력으로 C4k, C4k+1, C4k+2 와 블록 전달함수 Pk*, 블록 발생함수 Gk* 를 출력으로 생성한다 .

• C4k+3 = Gk* + Pk* • Cin 으로 표시됨 .• Gk*, Pk* 는 상위레벨 CLU 에 입력되어 , C4k+3(k=0….

7) 을 동시에 생성하는데 사용됨 .• Gk* = G4k+3 + G4k+2 • P4k+3 + G4k+1 • P4k+3 • P4k+2 + G4k • P4

k+3 • P4k+2 • P4k+1

• Pk* = P4k • P4k+1 • P4k+2 • P4k+3

Page 9: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

BCLU 의 VHDL 모델

Page 10: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

Page 11: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

8-bit CLU(Carry Look ahead Unit)

• C-1 과 8 개의 BCLU 에서 온 Pk*, Gk* 를 입력으로 , (C4k+3, 0=<k=<7) 생성 .

• C4k+3 = Gk* + Gk-1 • Pk* + …+ G0* • Pk* • Pk-1* •… + C-1 • Pk* • Pk-1* •… P0* (0=<k=<7)

Page 12: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

CLU 의 VHDL 모델

Page 13: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

Page 14: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

SU(Summation Unit)

• 32- 비트 Pi, 32- 비트 Ci 를 입력으로 , 32- 비트의 합 Si

(0=<i=<31) 생성• 블록다이아그램

Page 15: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d(VHDL 모델 )

Page 16: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

전체 CLA 의 모델링

• Block Diagram

Page 17: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

VHDL 모델

Page 18: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

Page 19: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

Page 20: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

Page 21: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

Page 22: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

Page 23: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

논리합성결과

Page 24: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

CLA 설계에 대한 검증

• TB-CLA : 두개의 입력파일 “ in_file1” 과 “ in_file2” 를 읽어 들여 덧셈을 수행함 . 연산결과 Carry 와 Sum을 “ out_file1”, “out_file2” 에 기록함 . => 테스트 입력파일 수정만으로 새로운 테스트 가능 (source 수정 없이 )

• Library std.textio.all; 추가 필요• VHDL 모델

Page 25: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

Page 26: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

Page 27: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

Page 28: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Cont’d

Page 29: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

UIM(Universal Indirect Multiplier)

• UIM– 32- 비트 CLA 이용– US(Unsigned), SM(Signed Magnitude), OC(One’s Complement),

TC(Two’s Complement) 의 4 가지 Fixed-point number system 으로 표현되는 수의 곱셈을 add-shift 방식의 간접 곱셈을 통해 수행하는 32- 비트 곱셈기

Page 30: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

UIM(Universal Indirect Multiplier)

• add-shift 방식 곱셈 0 0 1 1 (3)

X 0 1 0 1 (5)

0 0 1 1

0 0 0 0

0 0 1 1

0 0 0 0

0 0 0 1 1 1 1 (15)

( 피승수 )

( 승수 )

<- 승수가 1 이면 피승수를 더함 .

<- 승수가 0 이면 0 을 더함 .

<- 승수가 1 이면 피승수를 더함 .

<- 승수가 0 이면 0 을 더함 .

( 곱셈 결과 )

Page 31: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

UIM – Data Path 구조

Page 32: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

UIM(Universal Indirect Multiplier)

• Data Path 구조– MR: 승수 , AX: 피승수 저장 , 최종결과 : AC-MR 에 저장– MR 은 한 바이트씩 오른쪽으로 shift – 입력 X, Y: Mode(US, SM, OC, TC) 결정– 수의 모드에 따른 UIM 의 동작 (Slide 5)

• Data load, cycle, n- 비트 add-shift 에 n-cycle 소요• SM 의 경우 음수인 피 연산자의 부호 비트를 보수 취하는 동작 필요• OC 의 경우 음수인 피 연산자와 , 연산 결과 값을 1 의 보수를 취하기 위해 두 사이클 더 필요• TC: 1 의 보수에 1 을 더하기 위해 OC 보다 두 사이클 더 필요• n=32 인 경우

– US(=33), SM(=35), OS(=35), TC(=37) 사이클씩 필요함

Page 33: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

수의 모드에 따른 UIM 의 동작

Page 34: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

UIM 제어기• UIM 제어기

– 표 4.1 에 따른 동작 제어 위해 C0 ~ Cn+4 사이클 제어 신호 발생

– 각 Register 에 대한 제어신호 (2 비트씩 ) 할당

Page 35: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

UIM 제어기 -UIM 의 micro-operation table

Page 36: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Package 선언• Package 선언

– 필요한 함수 선언 위해 “ Arith-Pack” Package– Function cmp: 1 의 보수 취하기– Function shiftr: 1- 비트 carry 와 32- 비트 수를 1- 비트

오른쪽으로 이동시키는 함수– Function INC: 2 의 보수 구하기 위해 1 의 보수 후에 1

증가시키는 함수

Page 37: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Package 선언 [VHDL 소스 ]

Page 38: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 39: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 40: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 41: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 42: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

UIM 설계 트리

Page 43: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

AC 레지스터• AC 레지스터

– MR 과 함께 shift 됨– EAC(enable 신호 ) 가 활성화된 상태에서 ac0 와 ac1 의 값에

따라 rising edge 에서 AC load, clear, 1 의 보수 , 1 의 증가 기능 수행함

Page 44: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

AC 모델링 [VHDL 소스 ]

Page 45: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 46: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 47: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

MR 레지스터 : 승수저장 , 부분 곱 하위 부분 저장 [VHDL 소스 ]

Page 48: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 49: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 50: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

AX 레지스터 : 피 승수 저장 [VHDL 소스 ]

Page 51: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 52: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 53: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

DEC( 디코더 ): mode(X, Y) -> US, SM, TC, OC 생성 [VHDL 소스 ]

Page 54: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 55: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 56: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

MUX( 멀티 플렉서 ): 2-to-1[VHDL 소스 ]

Page 57: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 58: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

ZERO 블록• ZERO 블록

– 2’s complement(TC=1) 연산 때 , C36 에서 MR <- MR + 1 을 수행함 . 이 때 MR=0 이 되면 , Carry Out 이 생겨 , AC = AC + 1 을 수행해야 함

– C35 에서 1 의 보수를 취한 후에 MR 값이 모두 1 이면 , C36 에서 AC <- AC + 1 을 수행하도록 함

– ZERO 는 이 조건을 검사하는 블록임

Page 59: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

ZERO 블록 [VHDL 소스 ]

Page 60: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 61: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

ADD-SEL 블록• ADD-SEL 블록

– n- 비트 덧셈기의 오른쪽 입력은 MR 의 LSB 값 (MR(0)) 에 따라 ‘ 1’ 이면 AX 가 , ‘0’ 이면 zero 가 된다 .

Page 62: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

ADD-SEL 블록 [VHDL 소스 ]

Page 63: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 64: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

CTR_BLK( 제어 블록 )

• 블록 다이아 그램

Page 65: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

CTR_BLK( 제어 블록 )[VHDL 모델 ]

Page 66: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 67: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 68: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 69: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 70: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 71: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

UIM 전체 VHDL 모델링• UIM 전체 VHDL 모델링

– Start: 시작 신호 , c_in: carry in, clk: clock– vc_in 은 SM 모드수 곱셈시에 , SMZ 제어 신호가 1 일때 , A

X 와 MR 레지스터에 sign bit 대신 ‘ 0’ 이 입력되도록 하는 2x1 MUX 의 입력신호 (‘0’ 부분 ) 로 쓰임

– xy: 모드– p: 64 비트 출력

Page 72: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

UIM 전체 VHDL 모델링 [VHDL 소스 ]

Page 73: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 74: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 75: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 76: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 77: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 78: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 79: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering

Page 80: 32 비트 캐리 예측 덧셈기 (CLA)

DA Lab. Dept. of Computer DA Lab. Dept. of Computer Engineering Engineering