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

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