1 / 80

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

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 가 생성됨 .

jaimin
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 32비트 캐리 예측 덧셈기(CLA) RCA(Ripple Carry Adder) Simple but slow due to the long carry propagation path

  2. 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) 를 모두 동시에 구할 수 있다

  3. CLA 의 블록 다이어그램 PGU : Propagate / Generic unit CLU : Carry Look ahead Unit : C(nio)생성, SU : Summation Unit

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

  5. PGU

  6. Cont’d

  7. BCLU • 32 비트 CLU는 fanin이 너무 크기 때문에, 8개의 4비트 BCLU 와 1개의 8비트 CLU 를 이용하여 그림과 같이 구성한다.

  8. 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 • P4k+3 • P4k+2 • P4k+1 • Pk* = P4k • P4k+1 • P4k+2 • P4k+3

  9. BCLU 의 VHDL 모델

  10. Cont’d

  11. 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)

  12. CLU의 VHDL 모델

  13. Cont’d

  14. SU(Summation Unit) • 32-비트 Pi, 32-비트 Ci를 입력으로, 32-비트의 합 Si(0=<i=<31) 생성 • 블록다이아그램

  15. Cont’d(VHDL 모델)

  16. 전체 CLA의 모델링 • Block Diagram

  17. VHDL 모델

  18. Cont’d

  19. Cont’d

  20. Cont’d

  21. Cont’d

  22. Cont’d

  23. 논리합성결과

  24. CLA 설계에 대한 검증 • TB-CLA : 두개의 입력파일 “in_file1”과 “in_file2”를 읽어 들여 덧셈을 수행함. 연산결과 Carry와 Sum을 “out_file1”, “out_file2”에 기록함. => 테스트 입력파일 수정만으로 새로운 테스트 가능(source 수정 없이) • Library std.textio.all; 추가 필요 • VHDL 모델

  25. Cont’d

  26. Cont’d

  27. Cont’d

  28. Cont’d

  29. 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-비트 곱셈기

  30. 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 을 더함. (곱셈 결과) UIM(Universal Indirect Multiplier) • add-shift 방식 곱셈

  31. UIM – Data Path 구조

  32. 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) 사이클씩 필요함

  33. 수의 모드에 따른 UIM의 동작

  34. UIM 제어기 • UIM 제어기 • 표 4.1 에 따른 동작 제어 위해 C0 ~ Cn+4사이클 제어 신호 발생 • 각 Register 에 대한 제어신호(2비트씩) 할당

  35. UIM 제어기-UIM의 micro-operation table

  36. Package 선언 • Package 선언 • 필요한 함수 선언 위해 “Arith-Pack” Package • Function cmp: 1의 보수 취하기 • Function shiftr: 1-비트 carry와 32-비트 수를 1-비트 오른쪽으로 이동시키는 함수 • Function INC: 2의 보수 구하기 위해 1의 보수 후에 1 증가시키는 함수

  37. Package 선언[VHDL 소스]

  38. UIM 설계 트리

  39. AC 레지스터 • AC 레지스터 • MR과 함께 shift 됨 • EAC(enable 신호)가 활성화된 상태에서 ac0와 ac1의 값에 따라 rising edge 에서 AC load, clear, 1의 보수, 1의 증가 기능 수행함

  40. AC 모델링[VHDL 소스]

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

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

More Related