32비트 캐리 예측 덧셈기(CLA) RCA(Ripple Carry Adder)

Slides:



Advertisements
Similar presentations
식품사업부 8 월 기도회 2006 년 8 월 9 일. 7 월 감사제목 1. 7 월에도 매장에서 안전사고와 고객클레임 없이 무사히 영업을 하게 해주셔서 감사 합니다. 2. 지난 번 폭우때 매장의 안전과 재산을 지켜주시고 직원들의 건강을 지켜주셔서 감사합니다. 3. 어려운.
Advertisements

Chapter 9. 컴퓨터설계기초 9-1 머리말 9-2 데이터 처리장치 (Datapath)
디지털 시계 설계.
암 보다 더 무서운 당뇨 2010년 [아시아경제 강경훈 기자 ].
승강기 안전강화를 위한 신 보전체계 설계에 관한 연구 KEM Consulting 1.
기본 컴퓨터의 구조와 설계 Lecture #5.
기본 컴퓨터 프로그래밍 Lecture #6.
디지털 시스템 2010년 1학기 교수: 송상훈 연구실: 율곡관 603-B
Computer System Architecture
7 조합논리회로 IT CookBook, 디지털 논리회로.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
4 컴퓨터에서 활용되는 디지털 논리회로 IT CookBook, 컴퓨터 구조와 원리 2.0.
VHDL, FPGA를 이용한 소리인식 스위치 (Matched Filter 사용)
Sequential logic circuit
순차로직 개요.
디지털 산술과 연산회로.
가산기 설계.
Lecture #7 어셈블리어 (4) 매크로 어셈블리어 시스템프로그래밍.
3장 MPU 내부구조 Slide 1 (of 28).
Verilog HDL 이론.
VHDL Description D-latch C=1 일 때 Q 는 D의 입력 값 이 전달된다.
신호등 제어기 차량의 흐름에 따라 신호등의 신호를 제어하는 장치 신호등 제어기의 입출력 신호
공학실험.
COMPUTER ARCHITECTIRE
VHDL Package and Sub program
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
산업구조와 경쟁 무역학과 교수 한 복 연.
수학 I 2. 방정식과 부등식.
Data Communications 제 10 장 오류 제어와 흐름 제어.
Ch2-2. VHDL Basic VHDL lexical element VHDL description
학습 목표 반가산기, 전가산기, 고속가산기의 동작을 이해하고 설계하는 방법을 알아본다.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
하드웨어 구현 - A/D 변환기(A/D converter) - 샘플링 주파수(Sampling frequency)
Quartus 를 이용한 ROM 설계 ROM table 의 작성
산업구조와 경쟁 무역학과 교수 한 복 연.
4분기 업무보고 및 2011계획 방 문 건 강 관 리.
병원 유형별 인턴 물리치료사의 근무환경 및 교육제도
Chapter 08 제어장치와 마이크로 오퍼레이션.
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
Chapter 06 명령어와 번지지정 방식.
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
4장. 컴퓨터 구조에 대한 두 번째 이야기 작성자: 윤성우.
Flip-Flop 설계.
Unit 1 Number Systems and Conversion (수의 체계와 변환)
2 데이터 표현과 컴퓨터 연산 IT CookBook, 컴퓨터 구조와 원리 2.0.
Programmable Logic Device
Chapter 4 The Von Neumann Model.
데이터의 표현과 컴퓨터 연산 Prof. Jae Young Choi (최재영 교수)
6장 연산 장치 6.1 개요 6.2 연산장치의 구성요소 6.3 처리기 6.4 기타 연산장치.
Computer System Architecture
6-1 중앙 처리 장치의 내부 구조 6-2 명령(instruction) 6-3 주소 지정 방식
논리회로 설계 및 실험 3주차.
운영체제 (Operating Systems) (Memory Management Strategies)
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
가산기 설계.
디 지 털 공 학 한국폴리텍V대학.
제5강 처리 장치 2.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
LCD.
2 수의 체계 IT CookBook, 디지털 논리회로.
Chapter 02 수의 체계.
DEGITAL LOGIC CIRCUIT Term Project – 4 bit ALU.
1. 가상 메모리의 개념 프로그램에 의해 빈 프레임은 부재된 페이지를 수용하기 위해 사용. 페이지 대치 과정.
구조 유압장비 광명119구조대 임영채.
Introduction to Computer System 컴퓨터의 이해 3: 데이터 표현
6 ALU Blocks and Control Contents 1. Adder 2. Multiplier
생물과 함께하는 오토마타.
VHDL 응용 Lecture #10.
Presentation transcript:

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

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

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

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

PGU

Cont’d

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

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

BCLU 의 VHDL 모델

Cont’d

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)

CLU의 VHDL 모델

Cont’d

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

Cont’d(VHDL 모델)

전체 CLA의 모델링 Block Diagram

VHDL 모델

Cont’d

Cont’d

Cont’d

Cont’d

Cont’d

논리합성결과

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

Cont’d

Cont’d

Cont’d

Cont’d

UIM(Universal Indirect Multiplier) 32-비트 CLA 이용 US(Unsigned), SM(Signed Magnitude), OC(One’s Complement), TC(Two’s Complement) 의 4 가지 Fixed-point number system 으로 표현되는 수의 곱셈을 add-shift 방식의 간접 곱셈을 통해 수행하는 32-비트 곱셈기

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 0 1 1 1 1 (15) (피승수) (승수) <- 승수가 1 이면 피승수를 더함. <- 승수가 0 이면 0 을 더함. (곱셈 결과)

UIM – Data Path 구조

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

수의 모드에 따른 UIM의 동작

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

UIM 제어기-UIM의 micro-operation table

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

Package 선언[VHDL 소스]

UIM 설계 트리

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

AC 모델링[VHDL 소스]

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

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

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

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

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 는 이 조건을 검사하는 블록임

ZERO 블록[VHDL 소스]

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

ADD-SEL 블록[VHDL 소스]

CTR_BLK(제어 블록) 블록 다이아 그램

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

UIM 전체 VHDL 모델링 UIM 전체 VHDL 모델링 Start: 시작 신호, c_in: carry in, clk: clock vc_in 은 SM 모드수 곱셈시에, SMZ 제어 신호가 1일때, AX와 MR 레지스터에 sign bit 대신 ‘0’이 입력되도록 하는 2x1 MUX의 입력신호(‘0’ 부분)로 쓰임 xy: 모드 p: 64 비트 출력

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