Introduction to CMOS VLSI Design Datapath Functional Units

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
Datapath Functional Units. Outline  Comparators  Shifters  Multi-input Adders  Multipliers.
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
UNIVERSITY OF MASSACHUSETTS Dept
Lecture 8 Arithmetic Logic Circuits
Contemporary Logic Design Arithmetic Circuits © R.H. Katz Lecture #24: Arithmetic Circuits -1 Arithmetic Circuits (Part II) Randy H. Katz University of.
Combinational Comparators
EE466: VLSI Design Lecture 14: Datapath Functional Units.
1 EE365 Three-state Outputs Encoders Multiplexers XOR gates.
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.
1 EE121 John Wakerly Lecture #6 Three-state Outputs Encoders Multiplexers XOR gates.
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.
CDA 3101 Fall 2013 Introduction to Computer Organization The Arithmetic Logic Unit (ALU) and MIPS ALU Support 20 September 2013.
1 Arithmetic and Logic Operations Patt and Patel Ch. 2 & 3.
EE141 © Digital Integrated Circuits 2nd Arithmetic Circuits 1 Digital Integrated Circuits A Design Perspective Arithmetic Circuits Jan M. Rabaey Anantha.
1 Arithmetic I Instructor: Mozafar Bag-Mohammadi Ilam University.
Digital Logic Design (CSNB163)
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
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:

Introduction to CMOS VLSI Design Datapath Functional Units

Outline Comparators Shifters Multi-input Adders Multipliers Datapath

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

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

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

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

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) Datapath

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 = ____ Datapath

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

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) Datapath

Funnel Shifter Operation Computing N-k requires an adder Datapath

Funnel Shifter Operation Computing N-k requires an adder Datapath

Funnel Shifter Operation Computing N-k requires an adder Datapath

Funnel Shifter Operation Computing N-k requires an adder Datapath

Funnel Shifter Operation Computing N-k requires an adder Datapath

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

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

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

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

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

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

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

Multi-input Adders Suppose we want to add k N-bit words Ex: 0001 + 0111 + 1101 + 0010 = _____ Datapath

Multi-input Adders Suppose we want to add k N-bit words Ex: 0001 + 0111 + 1101 + 0010 = 10111 Datapath

Multi-input Adders Suppose we want to add k N-bit words Ex: 0001 + 0111 + 1101 + 0010 = 10111 Straightforward solution: k-1 N-input CPAs Large and slow Datapath

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 Datapath

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

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

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

Multiplication Example: Datapath

Multiplication Example: Datapath

Multiplication Example: Datapath

Multiplication Example: Datapath

Multiplication Example: Datapath

Multiplication Example: Datapath

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

General Form Multiplicand: Y = (yM-1, yM-2, …, y1, y0) Multiplier: X = (xN-1, xN-2, …, x1, x0) Product: Datapath

Dot Diagram Each dot represents a bit Datapath

Array Multiplier Datapath

Rectangular Array Squash array to fit rectangular floorplan Datapath

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-2r 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  Datapath

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 Datapath

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 Datapath

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 Datapath

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 Datapath

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 Datapath

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 Datapath

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 Datapath

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 Datapath

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

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

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 Datapath

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

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