Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Memory
Control
Input-Output
Datapath
Datapath: The core -- all other components are support units that store
either the results of the datapath or determine what happens in the next
cycle.
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
1 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
Control:
A FSM (sequential circuit) implemented using random logic, PLAs or
memories.
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
2 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
However, as we will see, the task is non-trivial since there are multiple
equivalent logic and circuit topologies to choose from, each with adv./
disadv. in terms of speed, power and area.
Bit 4
Bit 3
Bit 2
Data-In
Adder
Shifter
Data-Out
Registers
Bit 1
Multiplexer
Bit 0
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
3 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
4 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
P(A+B): (propagate)
Indicates that Ci is propagated (passed) to Co.
D(A.B): (delete)
Ensures that a carry bit will be deleted at Co.
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
5 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
Ripple-carry adder:
A0 B0 A1 B1 A2 B2 A3 B3
S0 S1 S2 S3
The critical path (worst case delay over all possible inputs) is a ripple from
lsb to msb.
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
6 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
Note that when optimizing this structure, it is far more important to optimize
tcarry than tsum.
The inverting property of a full adder can be used to achieve this goal:
A B A B
Ci Co Ci Co
FA FA
S S
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
7 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
A
B S
Transistor level diagram uses
Ci 32 transistors.
P XOR Ci (see Weste and Eshraghian).
A
Ci B Co
A
B
G(A.B)
Ci.P(A + B)
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
8 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
A B Ci B
Are the n and p trees duals Co
of each other? 28 transistors
Even with some design tricks, e.g., transistors on the critical path, Ci placed
closest to the output and symmetrical design, this implementation is slow.
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
9 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
10 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
Reg
1-bit
Clk
Set
n bit shift register Clr
addend
Cout
n bit shift register
result
augand C
in
Clk
In this case, you want equal Sum and Carry delays in order to minimize clock
cycle time.
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
11 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
Total transistors is 26
XNOR
B S
A
Co
XOR
Ci
Note: S and Co delay times are approximately equal -- good for multipliers.
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
12 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
S1
A1 B1 B1 Ci1
A1 B1 Ci1 A1
Ci A1
B1
Ci2
Ci1
B0
Ci0 B0 A0 B0 Ci0
A0
A0 B0 A0 Ci0
S0
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
13 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
P0 P1 P2 P3 P4
Co,0 Co,1 Co,2 Co,3 Co,4 Co,4
3 2.5 2 1.5 1
Ci,0 G0 G1 G2 G3 G4
3.5 3 2.5 2 1.5 1
Transistor sizes largest here since worst case is to discharge all nodes Co,k.
Precharge: All intermediate nodes, e.g. Co,0, charged to VDD.
Evaluate: Node Co,k is discharged, for example, if there is an incoming
carry, Ci,0 and the previous propagate signals are high, P0 to Pk-1.
Only 4 diffusion capacitances are present per node but the distributed RC-
nature of the chain results in delay that is quadratic with number of bits.
Buffers and/or transistor sizing can be used to improve performance.
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
14 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
C1 C2 C3 C4 C5 C6
Note that reducing R by a factor, e.g. k, at each stage increases the capacitance
by a factor k and increases area.
A k-factor of 1.5, reduces delay by 40% and increases area by 3.5X.
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
15 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
BP = P0P1P2P3
Assume Ak and Bk (for k = 1...3) are set such that all Pk (propagate) are
high.
In this case, an incoming carry Ci,0 = 1, propagates along the com-
plete chain and Co,3 = 1.
In other words:
if (P0P1P2P3 == 1) then Co,3 = Ci,0 else either DELETE or GENERATE
occurred.
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
16 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
17 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
18 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
G3
G2
G1
G0
Ci,0
C0,3
P0
P1
P2
P3
Size and fan-in of the gates limit the size to about four.
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
19 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
P<0> G<0>
Ci,0
Clk
Other high speed versions
given in Weste and Eshraghian.
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
20 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
(G4, P4)
Co,6
(G5, P5)
Inverse
(G6, P6) binary tree
Co,7
(G7, P7)
(C4-7,P4-7)
The dot operator ( )is defined as: (g, p) . (g, p) = (g + pg, pp)
The number of logic levels is proportional to log2N, fan-in is limited and the
layout is compact (jigsaw puzzle) (see Rabaey for details).
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
21 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
22 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
T T
Q
C
T T
T T T T
Clk Q<3>
T Q T Q T Q T Q
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
23 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
D Q 0 D Q 0 D Q 0 D Q
1-bit 1 1-bit 1 1-bit 1 1-bit
Reg Reg Reg Reg
Clk
Clear
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
24 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
25 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
P7 P6 P5 P4 P3 P2 P1 P0
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
26 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
B Ci
Y
X
A
Multiplication A NxN multiplier requires:
N(N-2) full adders
N half adders
Sum the N2 AND gates
Co Partial products
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
27 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
HA FA FA HA
X3 X2 X1 P1
X0 Y2
FA FA FA HA
P7 P6 P5 P4 P3
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
28 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
This is in contrast with the adder where minimizing tcarry was key.
The transmission gate adder is a good choice here.
m 2n 2 m2 n2
= am 1 bn 1 2m + n 2 + ai b j 2 i + j ai bn 1 2n 1 + i am 1 bi 2 m 1 + i
i=0j=0 i=0 i=0
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
29 (December 11, 2000 3:44 pm)
1966
UMBC
IVERSITY O
UN F
M
AR
1966
U M B C
YLAND BA
L
TI
Y MO
RE COUNT
a7 a a6 a a5 a a4 a3 a a2 a a1
7 6 5 a4 3 2 a1 a0 a0
AND AND AND AND AND AND AND AND b0 b0
( a7 b0 ) ( a6 b0 ) ( a5 b0 ) ( a4 b0 ) ( a3 b0 ) ( a2 b0 ) ( a1 b0 ) ( a0 b0 )
b1 b1
AND AND AND AND AND AND AND AND P0
ADD ADD ADD ADD ADD ADD ADD
( a7 b1 )
UMBC
( a6 b1 ) ( a5 b1 ) ( a4 b1 ) ( a3 b1 ) ( a2 b1 ) ( a1 b1 ) ( a0 b1 )
b2 b2
Principles of VLSI Design
( a7 b3 ) ( a6 b3 ) ( a5 b3 ) ( a4 b3 ) ( a3 b3 ) ( a2 b3 ) ( a1 b3 ) ( a0 b3 )
b4 b4
AND AND AND AND AND AND AND P3
AND
30
ADD ADD ADD ADD ADD ADD ADD
( a7 b4 ) ( a6 b4 ) ( a5 b4 ) ( a4 b4 ) ( a3 b4 ) ( a2 b4 ) ( a1 b4 ) ( a0 b4 )
b5 b5
AND AND AND AND AND AND AND AND P4
ADD ADD ADD ADD ADD ADD ADD
Subsystem Design
( a7 b5 ) ( a6 b5 ) ( a5 b5 ) ( a4 b5 ) ( a3 b5 ) ( a2 b5 ) ( a1 b5 ) ( a0 b5 )
b6 b6
AND AND AND AND AND AND AND AND P5
( a7 b6 )
ADD ADD ADD ADD ADD ADD ADD
( a6 b6 ) ( a5 b6 ) ( a4 b6 ) ( a3 b6 ) ( a2 b6 ) ( a1 b6 ) ( a0 b6 )
b7 b7
AND AND AND AND AND AND AND AND P6
( a7 b7 ) ADD ADD ADD ADD ADD ADD ADD
( a6 b7 ) ( a5 b7 ) ( a4 b7 ) ( a3 b7 ) ( a2 b7 ) ( a1 b7 ) ( a0 b7 )
ADD
( a7 b7 )
ADD ADD ADD ADD ADD ADD ADD
P8
ADD
ADD ( a7 b7 )
P15 P14 P13 P12 P11 P10 P9 P7
HA HA HA HA 4x4 version
HA FA FA FA
Cost: A little extra
area:
HA FA FA FA Advantage:
Critical path is uniquely defined:
tmult = (N-1)tcarry + tand + tmerge
HA FA FA HA
(Assuming tadd = tcarry).
Vector-merging adder Minimizing tmerge is useful,
e.g. use carry-select or lookahead.
Here the carry bits are not immediately added but rather saved for the
next adder stage.
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
31 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
If area
is a
concern. Reg
1-bit
Clk
reset G2
serial register
P7 P0
X
Y G1
Cin
Xi and Yi delivered serially Clk Computes the summands
to the inputs of G1 at different rates. row-wise from right to left.
Disadv: Quadratic delay: tmult = M x N x tcarry
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
32 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
Radix-4 scheme:
(N 1) 2
j
Y = Y j 4 with ( Y j { 2, 1, 0, 1, 2 } )
j=0
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
33 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
FA
Ci-1 FA
Ci Y5 Slice of a 6-bit
carry-save mult. C
Sum
FA
# of ripple stages is N-2 Adv: O(log2N) mult time.
Ci Disadv: Very irregular -- difficult
Sum
to layout.
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
34 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
A3 A2 A1 A0
IR IL
0 1 0 1 0 1 0 1
S S S S
Mux Mux Mux Mux
Right/Left
H3 H2 H1 H0
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
35 (December 11, 2000 3:44 pm)
1966
UMBC
Principles of VLSI Design Subsystem Design CMPE 413/CMSC 711
r<3>
r<2>
r<1>
r<0>
shift result
1 l<3:0>
2 l<4:1>
l<6:0> Arithmetic and logical shifts and rotates possible 4 l<5:2>
by muxing l<6:0> to the appropriate values. 8 l<6:3>
YLAND BA
AR L
M
F
TI
U M B C
MO
IVERSITY O
RE COUNT
UN
Y
36 (December 11, 2000 3:44 pm)
1966
UMBC