Top Banner
EE141 © Digital Integrated Circuits 2nd Arithmetic Circuits 1 Digital Integrated Circuits A Design Perspective Arithmetic Circuits Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolic January, 2003
58

Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

May 20, 2018

Download

Documents

lamnhu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

1

Digital Integrated

CircuitsA Design Perspective

Arithmetic Circuits

Jan M. Rabaey

Anantha Chandrakasan

Borivoje Nikolic

January, 2003

Page 2: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

2

A Generic Digital Processor

MEMORY

DATAPATH

CONTROL

INP

UT

-OU

TP

UT

Page 3: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

3

Building Blocks for Digital Architectures

Arithmetic unit

- Bit-sliced datapath (adder, multiplier, shifter, comparator, etc.)

Memory

- RAM, ROM, Buffers, Shift registers

Control

- Finite state machine (PLA, random logic.)

- Counters

Interconnect

- Switches

- Arbiters

- Bus

Page 4: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

4

An Intel Microprocessor

9-1

Mu

x9

-1 M

ux

5-1

Mu

x2

-1 M

ux

ck1

CARRYGEN

SUMGEN

+ LU

1000um

b

s0

s1

g64

sum sumb

LU : Logical

Unit

SU

MS

EL

a

to Cache

node1

RE

G

Itanium has 6 integer execution units like this

Page 5: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

5

Bit-Sliced Design

Bit 3

Bit 2

Bit 1

Bit 0

Regis

ter

Ad

der

Sh

ifte

r

Mu

ltip

lex

er

Control

Data

-In

Data

-Ou

t

Tile identical processing elements

Page 6: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

6

Bit-Sliced Datapath

Adder stage 1

Wiring

Adder stage 2

Wiring

Adder stage 3

Bit s

lice

0

Bit s

lice

2

Bit s

lice

1

Bit s

lice

63

Sum Select

Shifter

Multiplexers

Lo

op

ba

ck B

us

From register files / Cache / Bypass

To register files / CacheL

oo

pb

ack B

us

Lo

op

ba

ck B

us

Page 7: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

7

Itanium Integer Datapath

Fetzer, Orton, ISSCC’02

Page 8: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

8

Adders

Page 9: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

9

Full-AdderA B

Cout

Sum

Cin Fulladder

Page 10: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

10

The Binary Adder

S A B Ci

=

A= BCi ABCi ABCi

ABCi

+ + +

Co

AB BCi

ACi

+ +=

A B

Cout

Sum

Cin Fulladder

Page 11: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

11

Express Sum and Carry as a function of P, G, D

Define 3 new variable which ONLY depend on A, B

Generate (G) = AB

Propagate (P) = A B

Delete = A B

Can also derive expressions for S and Co based on D and P

Propagate (P) = A + B

Note that we will be sometimes using an alternate definition for

Page 12: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

12

The Ripple-Carry Adder

Worst case delay linear with the number of bits

Goal: Make the fastest possible carry path circuit

FA FA FA FA

A0 B0

S0

A1 B1

S1

A2 B2

S2

A3 B3

S3

Ci,0 Co,0

(= Ci,1)

Co,1 Co,2 Co,3

td = O(N)

tadder = (N-1)tcarry + tsum

Page 13: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

13

Complimentary Static CMOS Full Adder

28 Transistors

A B

B

A

Ci

Ci A

X

VDD

VDD

A B

Ci BA

B VDD

A

B

Ci

Ci

A

B

A CiB

Co

VDD

S

Page 14: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

14

Inversion Property

A B

S

CoCi FA

A B

S

CoCi FA

S A B Ci

S A B Ci

=

Co

A B Ci

Co

A B Ci

=

Page 15: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

15

Minimize Critical Path by Reducing Inverting Stages

Exploit Inversion Property

A3

FA FA FA

Even cell Odd cell

FA

A0 B0

S0

A1 B1

S1

A2 B2

S2

B3

S3

Ci,0 Co,0 Co,1 Co,3Co,2

Page 16: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

16

A Better Structure: The Mirror Adder

VDD

Ci

A

BBA

B

A

A B

Kill

Generate"1"-Propagate

"0"-Propagate

VDD

Ci

A B Ci

Ci

B

A

Ci

A

BBA

VDD

SCo

24 transistors

Page 17: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

17

Mirror Adder

Stick Diagram

Ci

A B

VDD

GND

B

Co

A Ci

Co

Ci

A B

S

Page 18: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

18

The Mirror Adder

•The NMOS and PMOS chains are completely symmetrical.

A maximum of two series transistors can be observed in the carry-

generation circuitry.

•When laying out the cell, the most critical issue is the minimization

of the capacitance at node Co. The reduction of the diffusion

capacitances is particularly important.

•The capacitance at node Co is composed of four diffusion

capacitances, two internal gate capacitances, and six gate

capacitances in the connecting adder cell .

•The transistors connected to Ci are placed closest to the output.

•Only the transistors in the carry stage have to be optimized for

optimal speed. All transistors in the sum stage can be minimal

size.

Page 19: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

19

Transmission Gate Full Adder

A

B

P

Ci

VDDA

A A

VDD

Ci

A

P

AB

VDD

VDD

Ci

Ci

Co

S

Ci

P

P

P

P

P

Sum Generation

Carry Generation

Setup

Page 20: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

20

Manchester Carry Chain

CoC

i

Gi

Pi

VDD

Page 21: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

21

Manchester Carry Chain

G2

C3

G3

Ci,0

P0

G1

VDD

G0

P1

P2

P3

C3

C2

C1

C0

Page 22: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

22

Manchester Carry Chain

Pi + 1

Gi + 1

Ci

Inverter/Sum Row

Propagate/Generate Row

Pi

Gi

Ci - 1

Ci + 1

VDD

GND

Stick Diagram

Page 23: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

23

Carry-Bypass Adder

FA FA FA FA

P0 G1 P0 G1 P2 G2 P3 G3

Co,3Co,2Co,1Co,0Ci ,0

FA FA FA FA

P0 G1 P0 G1 P2 G2 P3 G3

Co,2Co,1Co,0Ci,0

Co,3

Mu

ltip

lexer

BP=PoP1P2P3

Idea: If (P0 and P1 and P2 and P3 = 1)

then Co3 = C0, else “kill” or “generate”.

Also called

Carry-Skip

Page 24: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

24

Carry-Bypass Adder (cont.)

Carrypropagation

Setup

Bit 0–3

Sum

M bits

tsetup

tsum

Carrypropagation

Setup

Bit 4–7

Sum

tbypass

Carrypropagation

Setup

Bit 8–11

Sum

Carrypropagation

Setup

Bit 12–15

Sum

tadder = tsetup + Mtcarry + (N/M-1)tbypass + (M-1)tcarry + tsum

Page 25: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

25

Carry Ripple versus Carry Bypass

N

tp

ripple adder

bypass adder

4..8

Page 26: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

26

Carry-Select Adder

Setup

"0" Carry Propagation

"1" Carry Propagation

Multiplexer

Sum Generation

Co,k-1 Co,k+3

"0"

"1"

P,G

Carry Vector

Page 27: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

27

Carry Select Adder: Critical Path

0

1

Sum Generation

Multiplexer

1-Carry

0-Carry

Setup

Ci,0 Co,3 Co,7 Co,11 Co,15

S0–3

Bit 0–3 Bit 4–7 Bit 8–11 Bit 12–15

0

1

Sum Generation

Multiplexer

1-Carry

0-Carry

Setup

S4–7

0

1

Sum Generation

Multiplexer

1-Carry

0-Carry 0-Carry

Setup

S8–11

0

1

Sum Generation

Multiplexer

1-Carry

Setup

S12–15

Page 28: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

28

Linear Carry Select

Setup

"0" Carry

"1" Carry

Multiplexer

Sum Generation

"0"

"1"

Setup

"0" Carry

"1" Carry

Multiplexer

Sum Generation

"0"

"1"

Setup

"0" Carry

"1" Carry

Multiplexer

Sum Generation

"0"

"1"

Setup

"0" Carry

"1" Carry

Multiplexer

Sum Generation

"0"

"1"

Bit 0-3 Bit 4-7 Bit 8-11 Bit 12-15

S0-3 S4-7 S8-11 S12-15

Ci,0

(1)

(1)

(5)(6) (7) (8)

(9)

(10)

(5) (5) (5)(5)

Page 29: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

29

Square Root Carry Select

Setup

"0" Carry

"1" Carry

Multiplexer

Sum Generation

"0"

"1"

Setup

"0" Carry

"1" Carry

Multiplexer

Sum Generation

"0"

"1"

Setup

"0" Carry

"1" Carry

Multiplexer

Sum Generation

"0"

"1"

Setup

"0" Carry

"1" Carry

Multiplexer

Sum Generation

"0"

"1"

Bit 0-1 Bit 2-4 Bit 5-8 Bit 9-13

S0-1 S2-4 S5-8 S9-13

Ci,0

(4) (5) (6) (7)

(1)

(1)

(3) (4) (5) (6)

Mux

Sum

S14-19

(7)

(8)

Bit 14-19

(9)

(3)

Page 30: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

30

Adder Delays - Comparison

Square root select

Linear select

Ripple adder

20 40

N

t p(in

un

it d

ela

ys)

600

10

0

20

30

40

50

Page 31: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

31

LookAhead - Basic Idea

Co k f Ak Bk Co k 1– Gk PkCo k 1–+= =

AN-1, BN-1A1, B1

P1

S1

• • •

• • • SN-1

PN-1Ci, N-1

S0

P0Ci,0 Ci,1

A0, B0

Page 32: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

32

Look-Ahead: Topology

Co k Gk Pk Gk 1– Pk 1– Co k 2–+ +=

Co k Gk Pk Gk 1– Pk 1– P1 G0 P0Ci 0+ + + +=

Expanding Lookahead equations:

All the way:

Co,3

Ci,0

VDD

P0

P1

P2

P3

G0

G1

G2

G3

Page 33: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

33

Logarithmic Look-Ahead Adder

A7

F

A6A5A4A3A2A1

A0

1111111

Page 34: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

34

Carry Lookahead Trees

Co 0 G0 P0Ci 0+=

Co 1 G1 P1 G0 P1P0 Ci 0+ +=

Co 2 G2 P2G1 P2 P1G0 P+2P

1P0C i 0+ +=

G2 P2G1+ = P2P1 G0 P0Ci 0+ + G2:1 P2:1Co 0+=

Can continue building the tree hierarchically.

Page 35: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

35

Tree Adders

16-bit radix-2 Kogge-Stone tree

(A0,

B0)

(A1,

B1)

(A2,

B2)

(A3,

B3)

(A4,

B4)

(A5,

B5)

(A6,

B6)

(A7,

B7)

(A8,

B8)

(A9,

B9)

(A10,

B10)

(A11,

B11)

(A12,

B12)

(A13,

B13)

(A14,

B14)

(A15,

B15)

S0

S1

S2

S3

S4

S5

S6

S7

S8

S9

S10

S11

S12

S13

S14

S15

Page 36: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

36

Tree Adders(a

0,

b0)

(a1,

b1)

(a2,

b2)

(a3,

b3)

(a4,

b4)

(a5,

b5)

(a6,

b6)

(a7,

b7)

(a8,

b8)

(a9,

b9)

(a1

0,

b1

0)

(a1

1,

b1

1)

(a1

2,

b1

2)

(a1

3,

b1

3)

(a1

4,

b1

4)

(a1

5,

b1

5)S0S1S2S3S4S5S6S7S8S9S10S11S12S13S14S15

16-bit radix-4 Kogge-Stone Tree

Page 37: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

37

Sparse Trees(a

0,

b0)

(a1,

b1)

(a2,

b2)

(a3,

b3)

(a4,

b4)

(a5,

b5)

(a6,

b6)

(a7,

b7)

(a8,

b8)

(a9,

b9)

(a1

0,

b1

0)

(a1

1,

b1

1)

(a1

2,

b1

2)

(a1

3,

b1

3)

(a1

4,

b1

4)

(a1

5,

b1

5)

S1

S3

S5

S7

S9

S1

1

S1

3

S1

5

S0

S2

S4

S6

S8

S1

0

S1

2

S1

4

16-bit radix-2 sparse tree with sparseness of 2

Page 38: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

38

Tree Adders(A

0,

B0)

(A1,

B1)

(A2,

B2)

(A3,

B3)

(A4,

B4)

(A5,

B5)

(A6,

B6)

(A7,

B7)

(A8,

B8)

(A9,

B9)

(A1

0,

B1

0)

(A1

1,

B1

1)

(A1

2,

B1

2)

(A1

3,

B1

3)

(A1

4,

B1

4)

(A1

5,

B1

5)

S0

S1

S2

S3

S4

S5

S6

S7

S8

S9

S1

0

S1

1

S1

2

S1

3

S1

4

S1

5

Brent-Kung Tree

Page 39: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

39

Example: Domino Adder

VDD

ClkP

i= a

i + b

i

Clk

ai

bi

VDD

ClkG

i = a

ib

i

Clk

ai

bi

Propagate Generate

Page 40: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

40

Example: Domino Adder

VDD

Clkk

Pi:i-k+1

Pi-k:i-2k+1

Pi:i-2k+1

VDD

Clkk

Gi:i-k+1

Pi:i-k+1

Gi-k:i-2k+1

Gi:i-2k+1

Propagate Generate

Page 41: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

41

Example: Domino Sum

Page 42: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

42

Multipliers

Page 43: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

43

The Binary Multiplication

Z X··

Y Zk2k

k 0=

M N 1–+

= =

Xi2i

i 0=

M 1–

Yj2j

j 0=

N 1–

=

XiYj2i j+

j 0=

N 1–

i 0=

M 1–

=

X Xi2i

i 0=

M 1–

=

Y Yj2j

j 0=

N 1–

=

with

Page 44: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

44

The Binary Multiplication

x

+

Partial products

Multiplicand

Multiplier

Result

1 0 1 0 1 0

1 0 1 0 1 0

1 0 1 0 1 0

1 1 1 0 0 1 1 1 0

0 0 0 0 0 0

1 0 1 0 1 0

1 0 1 1

Page 45: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

45

The Array Multiplier

Y0

Y1

X3 X2 X1 X0

X3

HA

X2

FA

X1

FA

X0

HA

Y2X3

FA

X2

FA

X1

FA

X0

HA

Z1

Z3Z6Z7 Z5 Z4

Y3X3

FA

X2

FA

X1

FA

X0

HA

Z2

Z0

Page 46: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

46

The MxN Array Multiplier

— Critical Path

HA FA FA HA

HAFAFAFA

FAFA FA HA

Critical Path 1

Critical Path 2

Critical Path 1 & 2

Page 47: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

47

Carry-Save Multiplier

HA HA HA HA

FAFAFAHA

FAHA FA FA

FAHA FA HA

Vector Merging Adder

Page 48: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

48

Multiplier Floorplan

Page 49: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

49

Wallace-Tree Multiplier

6 5 4 3 2 1 0 6 5 4 3 2 1 0

Partial products First stage

Bit position

6 5 4 3 2 1 0 6 5 4 3 2 1 0

Second stage Final adder

FA HA

(a) (b)

(c) (d)

Page 50: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

50

Wallace-Tree Multiplier

Page 51: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

51

Wallace-Tree Multiplier

FA

FA

FA

FA

y0 y1 y2

y3

y4

y5

S

Ci-1

Ci-1

Ci-1

Ci

Ci

Ci

FA

y0 y1 y2

FA

y3 y4 y5

FA

FA

CC S

Ci-1

Ci-1

Ci-1

Ci

Ci

Ci

Page 52: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

52

Multipliers —Summary

• Optimization Goals Different Vs Binary Adder

• Once Again: Identify Critical Path

• Other possible techniques

- Data encoding (Booth)

- Pipelining

FIRST GLIMPSE AT SYSTEM LEVEL OPTIMIZATION

- Logarithmic versus Linear (Wallace Tree Mult)

Page 53: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

53

Shifters

Page 54: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

54

The Binary Shifter

Ai

Ai-1

Bi

Bi-1

Right Leftnop

Bit-Slice i

...

Page 55: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

55

The Barrel Shifter

Sh3Sh2Sh1Sh0

Sh3

Sh2

Sh1

A3

A2

A1

A0

B3

B2

B1

B0

: Control Wire

: Data Wire

Area Dominated by Wiring

Page 56: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

56

4x4 barrel shifter

BufferSh3Sh2Sh1Sh0

A3

A2

A1

A0

Widthbarrel ~ 2 pm M

Page 57: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

57

Logarithmic ShifterSh1 Sh1 Sh2 Sh2 Sh4 Sh4

A3

A2

A1

A0

B1

B0

B2

B3

Page 58: Digital Integrated Circuits 2nd Arithmetic Circuits 3 Building Blocks for Digital Architectures Arithmetic unit-Bit sliced datapath (adder, multiplier, shifter, comparator, etc.) Memory

EE141© Digital Integrated Circuits2ndArithmetic Circuits

58

A3

A2

A1

A0

Out3

Out2

Out1

Out0

0-7 bit Logarithmic Shifter