Professional Documents
Culture Documents
Logical Effort
Logical Effort
Logical Effort
Vishal Saxena
(vishalsaxena@boisetstate.edu)
Vishal Saxena
Outline
Logical Effort
Delay in a Logic Gate
Multistage Logic Networks
Choosing the Best Number of Stages
Example
Summary
Vishal Saxena
Introduction
???
Vishal Saxena
Example
Ben Bitdiddle is the memory designer for the Motoroil 68W86, an embedded
automotive processor. Help Ben design the decoder for a register file.
Decoder specifications:
16 word register file
Each word is 32 bits wide
Each bit presents load of 3 unit-sized transistors
True and complementary address inputs A[3:0]
Each input may drive 10 unit-sized transistors
Ben needs to decide:
How many stages to use?
How large should each gate be?
How fast can decoder operate?
A[3:0] A[3:0]
Vishal Saxena
16
Register File
16 words
4:16 Decoder
32 bits
Vishal Saxena
Delay Plots
=f+p
= gh + p
What about
NOR2?
2-input
NAND
Normalized Delay: d
Inverter
g=1
p=1
d=h+1
4
3
g = 4/3
p=2
d = (4/3)h + 2
Effort Delay: f
2
1
Parasitic Delay: p
0
0
Electrical Effort:
h = Cout / Cin
Vishal Saxena
2
A
Y
1
Cin = 3
g = 3/3
2
Cin = 4
g = 4/3
Vishal Saxena
4
Y
1
Cin = 5
g = 5/3
Catalog of Gates
Logical effort of common gates
Gate type
Number of inputs
1
NAND
4/3
5/3
6/3
(n+2)/3
NOR
5/3
7/3
9/3
(2n+1)/3
4, 4
6, 12, 6
8, 16, 16, 8
Inverter
Tristate / mux
XOR, XNOR
Vishal Saxena
Catalog of Gates
Parasitic delay of common gates
In multiples of pinv (1)
Gate type
Number of inputs
1
NAND
NOR
2n
Inverter
Tristate / mux
XOR, XNOR
Vishal Saxena
Logical Effort: g =
Electrical Effort: h =
Parasitic Delay: p =
Stage Delay:
d=
Frequency:
fosc=
Vishal Saxena
10
Logical Effort: g = 1
Electrical Effort: h = 1
Parasitic Delay: p = 1
Stage Delay:
d=2
Frequency:
fosc = 1/(2*N*d) = 1/4N
Vishal Saxena
11
Logical Effort:
g=
Electrical Effort:
Parasitic Delay:
Stage Delay:
h=
p=
d=
Vishal Saxena
12
Logical Effort:
g=1
Electrical Effort:
Parasitic Delay:
Stage Delay:
h=4
p=1
d=5
Vishal Saxena
13
=
F
Path Effort
10
g1 = 1
h1 = x/10
x
g2 = 5/3
h2 = y/x
=
f g h
y
g3 = 4/3
h3 = z/y
Vishal Saxena
i i
z
g4 = 1
h4 = 20/z
20
14
Path Effort
=
F
=
f g h
i i
Vishal Saxena
15
H
GH
h1
h2
F
=
=
=
=
=
15
90
5
15
Vishal Saxena
90
16
=1
H
GH
h1
h2
F
= 90 / 5 = 18
= 18
= (15 +15) / 5 = 6
= 90 / 15 = 6
= g1g2h1h2 = 36 = 2GH
15
90
Vishal Saxena
15
90
17
Branching Effort
Introduce branching effort
Accounts for branching between stages in path
b=
B = bi
Note:
= BH
Vishal Saxena
18
Multistage Delays
Path Effort Delay
DF = f i
P = pi
Path Delay
=
D
d
=
Vishal Saxena
DF + P
19
d
=
i
DF + P
=
f g=
F
i hi
1
N
Vishal Saxena
20
d
=
i
DF + P
=
f g=
F
i hi
1
N
=
D NF + P
This is a key result of logical effort
Find fastest possible delay
Doesnt require calculating gate sizes
Vishal Saxena
21
Gate Sizes
How wide should the gates be for least delay?
Cout
=
f gh
= g Cin
gi Couti
Cini =
f
Working backward, apply capacitance transformation to
find input capacitance of each gate given load it drives.
Check work by verifying input cap spec is met.
Vishal Saxena
22
x
y
x
A
45
Vishal Saxena
45
23
Logical Effort
Electrical Effort
Branching Effort
Path Effort
Best Stage Effort
Parasitic Delay
Delay
Jan 20, 2014
y
45
y
45
G = (4/3)*(5/3)*(5/3) = 100/27
H = 45/8
B=3*2=6
F = GBH = 125
=
f
=
F 5
P=2+3+2=7
D = 3*5 + 7 = 22 = 4.4 FO4
Vishal Saxena
24
x
y
x
A P:
84
N: 4
45
45
P:
x 4
N: 6
Vishal Saxena
P:
y 12
N: 3
45
45
25
2.8
16
D = NF1/N + P
= N(64)1/N + N
23
64
Datapath Load
N:
f:
D:
Vishal Saxena
1
64
65
64
2
8
18
64
3
4
15
Fastest
64
4
2.8
15.3
26
Derivation
Consider adding inverters to end of path
How many give least delay?
n1
D= NF + pi + ( N n1 ) pinv
1
N
Logic Block:
n1Stages
Path Effort F
N - n1 ExtraInverters
i =1
1
1
1
D
=
F N ln F N + F N + pinv =
0
N
1
N
pinv + (1 ln ) =
0
Jan 20, 2014
Vishal Saxena
27
Vishal Saxena
28
Sensitivity Analysis
How sensitive is delay to using exactly the best number
of stages?
D(N) /D(N)
1.6
1.51
1.4
1.26
1.2
1.15
1.0
( =2.4)
(=6)
0.0
0.5
0.7
1.0
1.4
2.0
N/ N
Vishal Saxena
29
Example, Revisited
Ben Bitdiddle is the memory designer for the Motoroil 68W86, an embedded
automotive processor. Help Ben design the decoder for a register file.
Decoder specifications:
16 word register file
Each word is 32 bits wide
Each bit presents load of 3 unit-sized transistors
True and complementary address inputs A[3:0]
Each input may drive 10 unit-sized transistors
Ben needs to decide:
How many stages to use?
How large should each gate be?
How fast can decoder operate?
A[3:0] A[3:0]
Vishal Saxena
16
Register File
16 words
4:16 Decoder
32 bits
30
Number of Stages
Decoder effort is mainly electrical and branching
Electrical Effort:
H = (32*3) / 10 = 9.6
Branching Effort:
B=8
If we neglect logical effort (assume G = 1)
Path Effort:
F = GBH = 76.8
Number of Stages:
N = log4F = 3.1
Vishal Saxena
31
10
A[2] A[2]
10
10
A[1] A[1]
10
10
A[0] A[0]
10
10
word[0]
96 units of wordline capacitance
word[15]
Vishal Saxena
32
Comparison
Compare many alternatives with a spreadsheet
D = N(76.8 G)1/N + P
Design
NOR4
N
1
G
3
P
4
D
234
NAND4-INV
29.8
NAND2-NOR2
20/9
30.1
INV-NAND4-INV
NAND4-INV-INV-INV
3
4
2
2
6
7
22.1
21.1
NAND2-NOR2-INV-INV
20/9
20.5
NAND2-INV-NAND2-INV
16/9
19.7
INV-NAND2-INV-NAND2-INV
16/9
20.4
NAND2-INV-NAND2-INV-INV-INV
16/9
21.6
Vishal Saxena
33
Review of Definitions
Term
Stage
Path
number of stages
logical effort
G = gi
electrical effort
h=
Cout
Cin
H=
branching effort
b=
Con-path +Coff-path
Con-path
B = bi
effort
f = gh
F = GBH
effort delay
DF = f i
parasitic delay
P = pi
delay
d= f + p
D
=
Vishal Saxena
Cout-path
Cin-path
d
=
i
DF + P
34
N = log 4 F
1
N
=
D NF + P
f = F N1
gi Couti
Cini =
f
F = GBH
Vishal Saxena
35
Interconnect
Iteration required in designs with wire
Vishal Saxena
36
Summary
Logical effort is useful for thinking of delay in circuits
Vishal Saxena
37