Professional Documents
Culture Documents
David Harris
harrisd@vlsi.stanford.edu
August, 1998
Stanford University
Stanford, CA
Outline
❏ Introduction
❏ Delay in a Logic Gate
❏ Multi-stage Logic Networks
❏ Choosing the Best Number of Stages
❏ Example
❏ Summary
Example
Ben Bitdiddle is the memory designer for the Motoroil 68W86, an embedded
processor for automotive applications. Help Ben design the decoder for a reg-
ister file: a<3:0> a<3:0> 32 bits
4:16 Decoder
16 words
Decoder specification:
Register File
❏ 16 word register file 16
❏ Each word is 32 bits wide
❏ Each bit presents a load of 3 unit-sized transistors
❏ True and complementary inputs of address bits a<3:0> are available
❏ Each input may drive 10 unit-sized transistors
❏ Introduction
❏ Delay in a Logic Gate
❏ Multi-stage Logic Networks
❏ Choosing the Best Number of Stages
❏ Example
❏ Summary
6 g=
p=
ND
Normalized delay: d
5 d=
NA
g=
4 p=
ut
r
rte
inp
d=
ve
2-
3
in
effort How about a
2 delay 2-input NOR?
1
parasitic delay
1 2 3 4 5
Electrical effort: h = Cout / Cin
❏ d = f + p = gh + p
❏ Delay increases with electrical effort
❏ More complex gates have greater logical effort and parasitic delay
Logical Effort David Harris Page 7 of 38
DEF: Logical effort is the ratio of the input capacitance of a gate to the input
capacitance of an inverter delivering the same output current.
❏ Measured from delay vs. fanout plots of simulated or measured gates
❏ Or estimated, counting capacitance in units of transistor width:
a NOR2:
2 4 Cin = 5
b
2 2 g = 5/3
x 4
x
x
a 1 2
a 1
Inverter: NAND2: b
2 1
Cin = 3 Cin = 4
g = 1 (def) g = 4/3
Example
Logical Effort: g =
Electrical Effort: h =
Parasitic Delay: p =
Stage Delay: d =
Oscillator Frequency: F =
Logical Effort: g =
Electrical Effort: h =
Parasitic Delay: p =
Stage Delay: d =
Outline
❏ Introduction
❏ Delay in a Logic Gate
❏ Multi-stage Logic Networks
❏ Choosing the Best Number of Stages
❏ Example
❏ Summary
g1 = 1 g2 = 5/3 g3 = 4/3 g4 = 1
h1 = x/10 h2 = y/x h3 = z/y h4 = 20/z
∏ f i = ∏ gi hi
know hi until the
❏ Path Effort: F = design is done
Can we write F = GH ?
Branching Effort
Gate sizes can be found by starting at the end of the path and working backward.
❏ At each gate, apply the capacitance transformation:
C out • g i
i
C in = -----------------------
i f̂
❏ Check your work by verifying that the input capacitance specification is satis-
fied at the beginning of the path.
Outline
❏ Introduction
❏ Delay in a Logic Gate
❏ Multi-stage Logic Networks
❏ Choosing the Best Number of Stages
❏ Example
❏ Summary
22.6
Datapath load
64 64 64 64
Fastest
N: 1 2 3 4
f: 64 8 4 2.8
D: 65 18 15 15.3
1⁄N 1⁄N
D = NF + P = N ( 64 ) + N assuming polarity doesn’t matter
Suppose we can add inverters to the end of a path without changing its function.
❏ How many stages should we use? Let N̂ be the value of N for least delay.
∑ p i + ( N – n1 ) p inv
1⁄N
D = NF +
1
∂D 1⁄N 1⁄N 1⁄N
------- = – F ln ( F )+F + p inv = 0
∂N
1 ⁄ N̂
❏ Define ρ ≡ F to be the best stage effort. Substitute and simplify:
p inv + ρ ( 1 – ln ρ ) = 0
^ 3
D(N)
^ ^ I like to use
D(N) 2 1.51 ρ=4
1.26
1 Better use
too many
stages than
too few.
0.25 0.5 1 ^ 2 4 8
N/N
❏ 2.4 < ρ < 6 gives delays within 15% of optimal -> we can be sloppy
Outline
❏ Introduction
❏ Delay in a Logic Gate
❏ Multi-stage Logic Networks
❏ Choosing the Best Number of Stages
❏ Example
❏ Summary
4:16 Decoder
16 words
Decoder specification:
Register File
❏ 16 word register file 16
❏ Each word is 32 bits wide
❏ Each bit presents a load of 3 unit-sized transistors
❏ True and complementary inputs of address bits a<3:0> are available
❏ Each input may drive 10 unit-sized transistors
y out0
z
96 unit wordline
capacitance
y out15
z
❏ Actual path effort is: F =
❏ Therefore, stage effort should be: f =
❏ Gate sizes: z = y =
❏ Path delay: D =
❏ Introduction
❏ Delay in a Logic Gate
❏ Multi-stage Logic Networks
❏ Choosing the Best Number of Stages
❏ Example
❏ Summary
Summary
∏ gi
Logical effort g (seeTable 1) G =
Electrical effort C out C out (path)
h = --------- H = ----------------------
C in C in (path)
∏ bi
Branching effort n/a
B =
Effort f = gh F = GBH
∑ fi
Effort delay f DF =
Number of stages 1 N
∑ pi
Parasitic delay
p (seeTable 2) P =
Delay d = f+p D = DF + P
Logical effort helps you find the best number of stages, the best size of each gate,
and the minimum delay of a circuit with the following procedure:
A book on Logical Effort will be available in Feb. 1999 from Morgan Kaufmann
http://www.mkp.com/Logical_Effort
Delay Plots
6 g = 4/3
p=2
ND
Normalized delay: d
5
g = 1 d = (4/3)h + 2
NA
4 p=1
ut
r
rte
inp
d=h+1
ve
2-
3
in
effort
2 delay
1
parasitic delay
1 2 3 4 5
Electrical effort: h = Cout / Cin
❏ d = f + p = gh + p
❏ Delay increases with electrical effort
❏ More complex gates have greater logical effort and parasitic delay
Logical Effort David Harris Page 32 of 38
Example
Example
Example
y out0
z
96 unit wordline
capacitance
y out15
z
❏ Actual path effort is: F = 2 • 8 • 9.6 = 154 Close to
1⁄3 4, so f is
❏ Therefore, stage effort should be: f = ( 154 ) = 5.36 reasonable
❏ z = 96 • 1 ⁄ 5.36 = 18 y = 18 • 2 ⁄ 5.36 = 6.7
❏ D = 3f + P = 3 • 5.36 + 1 + 4 + 1 = 22.1