EE 466/586
VLSI Design
Partha Pande
School of EECS
Washington State University
[email protected]
Lecture 21
Arithmetic circuits
Adopted from Digital Integrated Circuits by Jan M Rabaey
A Generic Digital Processor
MEM ORY
INPUT-OUTPUT
CONTROL
DATAPATH
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
An Intel Microprocessor
9-1 Mux
5-1 Mux
a g64
CARRYGEN
node1
SUMSEL
sum sumb
REG
ck1 to Cache
9-1 Mux
2-1 Mux
SUMGEN s0
+ LU s1
b
LU : Logical
Unit
1000um
Itanium has 6 integer execution units like this
Bit-Sliced Design
Control
Bit 3
Data-Out
Multiplexer
Bit 2
Data-In
Register
Adder
Shifter
Bit 1
Bit 0
Tile identical processing elements
ALU
ALU computes a variety of logical and
arithmetic functions based on opcode.
May offer complete set of functions of two
variables or a subset.
ALU built around adder, since carry chain
determines delay.
ALU as multiplexer
Compute functions then select desired
one:
opcode
AND
OR
NOT
SUM
Verilog for ALU
‘define PLUS 0
‘define MINUS 1
‘define AND 2
‘define OR 3
‘define NOT 4
module alu(fcode,op0,op1,result,oflo);
parameter n=16, flen=3; input [flen-1:0] fcode; [n-1:0] op0, op1; output [n-1:0] result; output
oflo;
assign
{oflo,result} =
(fcode == ‘PLUS) ? (op0 + op1) :
(fcode == ‘MINUS) ? (op0 - op1) :
(fcode == ‘AND) ? (op0 & op1) :
(fcode == ‘OR) ? (op0 | op1) :
(fcode == ‘NOT) ? (~op0) : 0;
endmodule
Bit-Sliced Datapath
From register files / Cache / Bypass
Multiplexers
Shifter
Adder stage 1
Wiring
Loopback Bus
Loopback Bus
Loopback Bus
Adder stage 2
Wiring
Bit slice 63
Bit slice 2
Bit slice 1
Bit slice 0
Adder stage 3
Sum Select
To register files / Cache
Itanium Integer Datapath
Fetzer, Orton, ISSCC’02
Full-Adder
A B
Cin Full Cout
adder
Sum
The Binary Adder
A B
Cin Full Cout
adder
Sum
S = A ⊕ B ⊕ Ci
= ABC i + ABC i + ABCi + ABCi
C o = AB + BCi + ACi
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
Note that we will be sometimes using an alternate definition for
Propagate (P) = A + B
The Ripple-Carry Adder
A0 B0 A1 B1 A2 B2 A3 B3
Ci,0 Co,0 Co,1 Co,2 Co,3
FA FA FA FA
(= Ci,1)
S0 S1 S2 S3
Worst case delay linear with the number of bits
td = O(N)
tadder = (N-1)tcarry + tsum
Goal: Make the fastest possible carry path circuit
Complimentary Static CMOS Full Adder
VDD
VDD
Ci A B
A B
A
B
Ci B
VDD
A
X
Ci
Ci A S
Ci
A B B VDD
A B Ci A
Co B
28 Transistors
Limitations
Tall PMOS transistor stacks present in both carry- and
sum-generation circuits.
The intrinsic load capacitance of the C0 signal is large and
consists of two diffusion and six gate capacitances, plus the
wiring capacitance
The signal propagates through two inverting stages in the
carry-generation circuit.
Features
The first gate of the carry-generation circuit is
designed with the Ci signal on the smaller PMOS
stack
NMOS and PMOS transistors connected to Ci are
placed as close as possible to the output of the gate.
In stage k of the adder, signals Ak and Bk are available and
stable long before Ci,k
Capacitances of the internal nodes is the transistor chain are
precharged or discharged in advance.
Inversion Property
A B A B
Ci FA Co Ci FA Co
S S
Inverting all inputs to a full adder results in inverted values
for all outputs.
Minimize Critical Path by Reducing Inverting Stages
Even cell Odd cell
A0 B0 A1 B1 A2 B2 A3 B3
Ci,0 Co,0 Co,1 Co,2 Co,3
FA FA FA FA
S0 S1 S2 S3
Exploit Inversion Property
A Better Structure: The Mirror Adder
VDD
VDD VDD A
A B B A B Ci B
Kill
"0"-Propagate A Ci
Co
Ci S
A Ci
"1"-Propagate Generate
A B B A B Ci A
24 transistors
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.
Transmission Gate Full Adder
P
VDD
VDD Ci
A
P S Sum Generation
A A P Ci
A P VDD
B B
VDD A
P
P Co Carry Generation
Ci Ci Ci
A
Setup P
The propagate signal, which is the XOR of inputs A and B, is used to select
the true or complementary value of the input carry as the new sum output
Based on the propagate signal, the output carry is either set to the input
carry, or either one of the inputs A or B.