Datapath Functional Units. Outline  Comparators  Shifters  Multi-input Adders  Multipliers.

Slides:



Advertisements
Similar presentations
Multiplication and Shift Circuits Dec 2012 Shmuel Wimer Bar Ilan University, Engineering Faculty Technion, EE Faculty 1.
Advertisements

ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.
Arithmetic Functions and Circuits
EE 382 Processor DesignWinter 98/99Michael Flynn 1 AT Arithmetic Most concern has gone into creating fast implementation of (especially) FP Arith. Under.
Design and Implementation of VLSI Systems (EN1600) Lecture 27: Datapath Subsystems 3/4 Prof. Sherief Reda Division of Engineering, Brown University Spring.
1 CS 140 Lecture 14 Standard Combinational Modules Professor CK Cheng CSE Dept. UC San Diego Some slides from Harris and Harris.
Copyright 2008 Koren ECE666/Koren Part.6b.1 Israel Koren Spring 2008 UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering Digital Computer.
S. Reda EN160 SP’07 Design and Implementation of VLSI Systems (EN0160) Lecture 29: Datapath Subsystems 3/3 Prof. Sherief Reda Division of Engineering,
EECS Components and Design Techniques for Digital Systems Lec 18 – Arithmetic II (Multiplication) David Culler Electrical Engineering and Computer.
Fixed-Point Arithmetics: Part I
Computer Structure - The ALU Goal: Build an ALU  The Arithmetic Logic Unit or ALU is the device that performs arithmetic and logical operations in the.
UNIVERSITY OF MASSACHUSETTS Dept
Lecture 8 Arithmetic Logic Circuits
Combinational Comparators
EE466: VLSI Design Lecture 14: Datapath Functional Units.
1 EE365 Three-state Outputs Encoders Multiplexers XOR gates.
Introduction to CMOS VLSI Design Datapath Functional Units
Copyright 2008 Koren ECE666/Koren Part.6a.1 Israel Koren Spring 2008 UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering Digital Computer.
Datapath Functional Units Adapted from David Harris of Harvey Mudd College.
Multiplication.
+ CS 325: CS Hardware and Software Organization and Architecture Exam 1: Study Guide.
Lecture 18: Datapath Functional Units
1 Bits are just bits (no inherent meaning) — conventions define relationship between bits and numbers Binary numbers (base 2)
ECE 4110– Sequential Logic Design
Aug Shift Operations Source: David Harris. Aug Shifter Implementation Regular layout, can be compact, use transmission gates to avoid threshold.
Chapter 6-2 Multiplier Multiplier Next Lecture Divider
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Logic Circuits I.
Digital Integrated Circuits Chpt. 5Lec /29/2006 CSE477 VLSI Digital Circuits Fall 2002 Lecture 21: Multiplier Design Mary Jane Irwin (
Chapter 4 – Arithmetic Functions and HDLs Logic and Computer Design Fundamentals.
Chapter # 5: Arithmetic Circuits
Reading Assignment: Weste: Chapter 8 Rabaey: Chapter 11
Introduction to Computer Organization and Architecture Lecture 10 By Juthawut Chantharamalee wut_cha/home.htm.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Logic Circuits I.
Computer Arithmetic II Instructor: Mozafar Bag-Mohammadi Spring 2006 University of Ilam.
 Recall grade school trick ◦ When multiplying by 9:  Multiply by 10 (easy, just shift digits left)  Subtract once ◦ E.g.  x 9 = x (10.
Reconfigurable Computing - Multipliers: Options in Circuit Design John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on.
Sequential Multipliers Lecture 9. Required Reading Chapter 9, Basic Multiplication Scheme Chapter 10, High-Radix Multipliers Chapter 12.3, Bit-Serial.
Spring 2002EECS150 - Lec12-cl3 Page 1 EECS150 - Digital Design Lecture 12 - Combinational Logic Circuits Part 3 March 4, 2002 John Wawrzynek.
1 Chapter 7 Computer Arithmetic Smruti Ranjan Sarangi Computer Organisation and Architecture PowerPoint Slides PROPRIETARY MATERIAL. © 2014 The McGraw-Hill.
55:035 Computer Architecture and Organization Lecture 5.
Advanced VLSI Design Unit 05: Datapath Units. Slide 2 Outline  Adders  Comparators  Shifters  Multi-input Adders  Multipliers.
EECS Components and Design Techniques for Digital Systems Lec 16 – Arithmetic II (Multiplication) David Culler Electrical Engineering and Computer.
Computer Arithmetic II Instructor: Mozafar Bag-Mohammadi Ilam University.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Logic and Computer Design.
1 Tutorial: ITI1100 Dewan Tanvir Ahmed SITE, UofO.
Lecture 4 Chap 5 Types Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3.
1 Arithmetic I Instructor: Mozafar Bag-Mohammadi Ilam University.
Digital Logic Design (CSNB163)
CSE 140 Lecture 12 Combinational Standard Modules CK Cheng CSE Dept. UC San Diego 1.
CS 151: Digital Design Chapter 4: Arithmetic Functions and Circuits
Lecture # 10 University of Tehran
ECE/CS 552: Arithmetic I Instructor:Mikko H Lipasti Fall 2010 University of Wisconsin-Madison Lecture notes partially based on set created by Mark Hill.
Integer Multiplication and Division COE 301 Computer Organization Dr. Muhamed Mudawar College of Computer Sciences and Engineering King Fahd University.
CSE477 L21 Multiplier Design.1Irwin&Vijay, PSU, 2002 CSE477 VLSI Digital Circuits Fall 2002 Lecture 21: Multiplier Design Mary Jane Irwin (
Integer Multiplication and Division ICS 233 Computer Architecture & Assembly Language Prof. Muhamed Mudawar College of Computer Sciences and Engineering.
Logic Design (CE1111 ) Lecture 4 (Chapter 4) Combinational Logic Prepared by Dr. Lamiaa Elshenawy 1.
Lecture 18: Datapath Functional Units
Addition and multiplication1 Arithmetic is the most basic thing you can do with a computer, but it’s not as easy as you might expect! These next few lectures.
Introduction to VLSI Design Datapath
Full Adder Truth Table Conjugate Symmetry A B C CARRY SUM
Lecture 18: Datapath Functional Units. CMOS VLSI DesignCMOS VLSI Design 4th Ed. 18: Datapath Functional Units2 Outline  Multipliers.
Combinational Circuits
Multiplier Design [Adapted from Rabaey’s Digital Integrated Circuits, Second Edition, ©2003 J. Rabaey, A. Chandrakasan, B. Nikolic]
A.R. Hurson 323 CS Building, Missouri S&T
CS 140 Lecture 14 Standard Combinational Modules
CSE 140 Lecture 14 Standard Combinational Modules
ECE 352 Digital System Fundamentals
Combinational Circuits
Introduction to VLSI Design Datapath
Presentation transcript:

Datapath Functional Units

Outline  Comparators  Shifters  Multi-input Adders  Multipliers

Comparators  0’s detector:A = 00…000  1’s detector: A = 11…111  Equality comparator:A = B  Magnitude comparator:A < B

1’s & 0’s Detectors  1’s detector: N-input AND gate  0’s detector: NOTs + 1’s detector (N-input NOR)

Equality Comparator  Check if each bit is equal (XNOR, aka equality gate)  1’s detect on bitwise equality

Magnitude Comparator  Compute B-A and look at sign  B-A = B + ~A + 1  For unsigned numbers, carry out is sign bit

Signed vs. Unsigned  For signed numbers, comparison is harder –C: carry out –Z: zero (all bits of A-B are 0) –N: negative (MSB of result) –V: overflow (inputs had different signs, output sign  B)

Shifters  Logical Shift: –Shifts number left or right and fills with 0’s 1011 LSR 1 = ____1011 LSL1 = ____  Arithmetic Shift: –Shifts number left or right. Rt shift sign extends 1011 ASR1 = ____ 1011 ASL1 = ____  Rotate: –Shifts number left or right and fills with lost bits 1011 ROR1 = ____ 1011 ROL1 = ____

Shifters  Logical Shift: –Shifts number left or right and fills with 0’s 1011 LSR 1 = LSL1 = 0110  Arithmetic Shift: –Shifts number left or right. Rt shift sign extends 1011 ASR1 = ASL1 = 0110  Rotate: –Shifts number left or right and fills with lost bits 1011 ROR1 = ROL1 = 0111

Funnel Shifter  A funnel shifter can do all six types of shifts  Selects N-bit field Y from 2N-bit input –Shift by k bits (0  k < N)

Funnel Shifter Operation  Computing N-k requires an adder

Funnel Shifter Operation  Computing N-k requires an adder

Funnel Shifter Operation  Computing N-k requires an adder

Funnel Shifter Operation  Computing N-k requires an adder

Funnel Shifter Operation  Computing N-k requires an adder

Simplified Funnel Shifter  Optimize down to 2N-1 bit input

Simplified Funnel Shifter  Optimize down to 2N-1 bit input

Simplified Funnel Shifter  Optimize down to 2N-1 bit input

Simplified Funnel Shifter  Optimize down to 2N-1 bit input

Simplified Funnel Shifter  Optimize down to 2N-1 bit input

Funnel Shifter Design 1  N N-input multiplexers –Use 1-of-N hot select signals for shift amount –nMOS pass transistor design (V t drops!)

Funnel Shifter Design 2  Log N stages of 2-input muxes –No select decoding needed

Multi-input Adders  Suppose we want to add k N-bit words –Ex: = _____

Multi-input Adders  Suppose we want to add k N-bit words –Ex: = 10111

Multi-input Adders  Suppose we want to add k N-bit words –Ex: =  Straightforward solution: k-1 N-input CPAs –Large and slow

Carry Save Addition  A full adder sums 3 inputs and produces 2 outputs –Carry output has twice weight of sum output  N full adders in parallel are called carry save adder –Produce N sums and N carry outs

CSA Application  Use k-2 stages of CSAs –Keep result in carry-save redundant form  Final CPA computes actual result

CSA Application  Use k-2 stages of CSAs –Keep result in carry-save redundant form  Final CPA computes actual result

CSA Application  Use k-2 stages of CSAs –Keep result in carry-save redundant form  Final CPA computes actual result

Multiplication  Example:

Multiplication  Example:

Multiplication  Example:

Multiplication  Example:

Multiplication  Example:

Multiplication  Example:

Multiplication  Example:  M x N-bit multiplication –Produce N M-bit partial products –Sum these to produce M+N-bit product

General Form  Multiplicand: Y = (y M-1, y M-2, …, y 1, y 0 )  Multiplier: X = (x N-1, x N-2, …, x 1, x 0 )  Product:

Dot Diagram  Each dot represents a bit

Array Multiplier

Rectangular Array  Squash array to fit rectangular floorplan

Fewer Partial Products  Array multiplier requires N partial products  If we looked at groups of r bits, we could form N/r partial products. –Faster and smaller? –Called radix-2 r encoding  Ex: r = 2: look at pairs of bits –Form partial products of 0, Y, 2Y, 3Y –First three are easy, but 3Y requires adder 

Booth Encoding  Instead of 3Y, try –Y, then increment next partial product to add 4Y  Similarly, for 2Y, try –2Y + 4Y in next partial product

Booth Encoding  Instead of 3Y, try –Y, then increment next partial product to add 4Y  Similarly, for 2Y, try –2Y + 4Y in next partial product

Booth Encoding  Instead of 3Y, try –Y, then increment next partial product to add 4Y  Similarly, for 2Y, try –2Y + 4Y in next partial product

Booth Encoding  Instead of 3Y, try –Y, then increment next partial product to add 4Y  Similarly, for 2Y, try –2Y + 4Y in next partial product

Booth Encoding  Instead of 3Y, try –Y, then increment next partial product to add 4Y  Similarly, for 2Y, try –2Y + 4Y in next partial product

Booth Encoding  Instead of 3Y, try –Y, then increment next partial product to add 4Y  Similarly, for 2Y, try –2Y + 4Y in next partial product

Booth Encoding  Instead of 3Y, try –Y, then increment next partial product to add 4Y  Similarly, for 2Y, try –2Y + 4Y in next partial product

Booth Encoding  Instead of 3Y, try –Y, then increment next partial product to add 4Y  Similarly, for 2Y, try –2Y + 4Y in next partial product

Booth Hardware  Booth encoder generates control lines for each PP –Booth selectors choose PP bits

Sign Extension  Partial products can be negative –Require sign extension, which is cumbersome –High fanout on most significant bit

Simplified Sign Ext.  Sign bits are either all 0’s or all 1’s –Note that all 0’s is all 1’s + 1 in proper column –Use this to reduce loading on MSB

Even Simpler Sign Ext.  No need to add all the 1’s in hardware –Precompute the answer!

Advanced Multiplication  Signed vs. unsigned inputs  Higher radix Booth encoding  Array vs. tree CSA networks