Soln Endsem 21 2
Soln Endsem 21 2
Give a logic diagram for the 4 phase dynamic logic implementation of this function, specify-
ing the type of each gate, subject to the constraint that no more than 2 inputs are permitted
for each gate. The design should minimize delay, complexity and input loading (in that or-
der of preference).
The diagram should be neatly drawn.
Soln. 1)
– [3]
Q–2 We want to design a 3-4 fork to drive a large output driver using logical effort based con-
siderations to equalize and optimize the delays through the two inverter chains.
VDD
Datain
Out
(The unit of time is τ , the delay of a unit inverter driving another without including the
parasitic delay. The unit of width is the width of the nMOS transistor in the unit inverter
and the unit of capacitance is the input capacitance of the unit inverter).
You are given that the width of the final nMOS transistor is 512 units. The mobility
correction factor γ is 2, and therefore the width of the final pMOS load is 1024 units. The
parasitic delay of an inverter is 2.25 units. The total load presented by the two branches at
the input should be 4.5 units.
1
a) Find the input capacitances of the first inverters in the two branches such that the
total load presented by the input is 4.5 units and delay through the inverter chains is
equal and optimum. (Iterative solution may be needed. All intermediate results for
the iterative solution should be reported in your written answer. Your answer should
be accurate at least to two places of decimal).
Soln. 2-a) Let the input capacitance of the first inverter in the upper branch be 4.5r, while
that of the first inverter in the lower branch is 4.5(1 − r). This ensures that the total
capacitive load at the input is 4.5.
1024/3
G = 1, B = 1, H = = 75.85185/r F = GBH = 75.85185/r
4.5r
Since there are three stages, fˆ1 = (75.85185)1/3 r −1/3 = 4.233069r −1/3
Delay in the upper branch = 3fˆ1 + 3pinv = 12.69921r −1/3 + 6.75
In the lower branch, the nMOS load is a width of 512, which is equivalent to 512/3
inverters.
512/3
G = 1, B = 1, H = = 37.92593/(1 − r) F = GBH = 37.92593/(1 − r)
4.5(1 − r)
– [Q2: 4 + 2 + 1 = 7 marks]
Q–3 In a Brent Kung logarithmic adder, Generate and Pass signals are successively computed
over groups of 1 bit, 2bits, 4bits, . . . in a tree structure. Assume that logic functions AND,
XOR, A + B.C as well as A.B + C.(A+B) take the same amount of time, which will define
1 slot of time for this question.
Internal carry signals are required for computing the sum outputs and are generated from
the input carry with P and G signals, using the logic functions listed above. We map G00 to
a0 · b0 + c0 · (a0 + b0 ) (which is actually c1 ) instead of just a0 · b0 .
a) For a 32 bit Brent Kung adder, list which of the P and G signals and internal carries
will be generated from which inputs in each slot of time.
Soln. 3-a) The single Bit G and P values are given by
All these functions can be computed in one unit of time from ai , bi and input carry
c0 . So these are all ready at the end of the first time slot.
c1 = G00 . Therefore c1 is ready at the end of first slot.
G = Gu + Pu · Gl , P = Pu · Pl
where u and l stand for upper half range and lower half range for a range of bit indices.
These also can be computed within one time slot. Thus a higher order of G and P
values, (successively covering twice the range of indices for the previous order) will be
3
available in each time slot.
Computation of internal carries can be carried out using the function
C = G + P · Cin
This also takes one time slot, but can be performed only after the needed Cin , P and
G values are available.
G and P values for single bits are available at the end of first slot.
G and P values spanning groups of 2 bits are available at the end of second slot.
G and P values spanning groups of 4 bits are available at the end of third slot.
G and P values spanning groups of 8 bits are available at the end of fourth slot.
G and P values spanning groups of 16 bits are available at the end of fifth slot.
Finally, G and P values spanning the full word of 32 bits are available at the end of
sixth slot.
The lowest index G value for any order i is automatically the carry value for bit index
2i . Given this information, we can show the sequence of generation of carry values by
the following diagram:
32 Cout
00 Cin
Carry input to bit number:
31
30
29
28
27
26
25
24
23
22
21
20
09
08
07
06
05
04
03
02
01
19
18
17
16
15
14
13
12
11
10
0
1 G0 P0
2 G1 P1
3 G2 P2
4 G3 P3
Time slot
5 G4 P4
6 G5
7
8
9
• at time =7, all G and P values for groups of 1, 2, 4, 8 and 16 bits are already
available.
0 and c .
c15 ← c14 using G014 , P14 14
0 0
c19 ← c18 using G18 , P18 and c18 .
4
c21 ← c20 using 0 and c .
G020 , P20 20
c22 ← c20 using 1
G121−20 , P21−20 and c20 .
c25 ← c24 using 0 and c .
G024 , P24 24
c26 ← c24 using 1
G125−24 , P25−24 and c24 .
c28 ← c24 using 2 2
G27−24 , P27−24 and c24 .
– [3]
b) Taking the example of adding B7A56893H to 506A980CH with an input carry of ‘1’,
list the P, G, carry and sum bits generated in each time slot.
Soln. 3-b) This answer is very detailed and such detail is not expected in student solutions.
It is adequate if just a list of bit values generated are provided in each slot.
1. In the first slot, we generate the single bit P and G values.
a 1011 0111 1010 0101 0110 1000 1001 0011
b 0101 0000 0110 1010 1001 1000 0000 1100
P 0 1110 0111 1100 1111 1111 0000 1001 1111
G0 0001 0000 0010 0000 0000 1000 0000 0001†
Pi0 = ai ⊕ bi , G0i = ai · bi †G00 is generated as a0 · b0 + c0 · (a0 + b0 )
c1 = G00 = 1
2. In the second slot, we generate P and G values spanning two bits each.
m+1 = P m · P m ,
From now on, Prange Gm+1 m m m
u l range = Gu + Pu · Gl ,
where u represents the upper half range and l represents the lower half range.
P 0 1110 0111 1100 1111 1111 0000 1001 1111
G0 0001 0000 0010 0000 0000 1000 0000 0001
P1 1 0 01 10 11 11 00 00 11
G1 0 1 00 01 00 00 10 00 01
c2 = G11−0 = 1
s0 = P00 ⊕ c0 = 1 ⊕ 1 = 0, s1 = P10 ⊕ c1 = 1 ⊕ 1 = 0.
4
6. In the sixth slot, we compute G531−0 = G431−16 + P31−16 5
· G415−0 . P31−0 is not re-
quired.
s10 = P100 ⊕c 0
10 = 0 ⊕ 0 = 0, s12 = P12 ⊕ c12 = 1 ⊕ 1 = 0,
0
s16 = P16 ⊕ c16 = 1 ⊕ 1 = 0,
7. In the seventh slot, All the required values of P and G are already available. We
can compute:
0 ·c
c15 = G014 + P14 0 0
14 = 0 + 1 · 1 = 1 c19 = G18 + P18 · c18 = 0 + 1 · 1 = 1
c21 = G020 + P20
0 ·c 1 1
20 = 0 + 0 · 1 = 0 c22 = G21−20 + P21−20 · c20 = 1 + 0 · 0 = 1
0 0 1 1
c25 = G24 + P24 · c24 = 0 + 1 · 1 = 1 c26 = G25−24 + P25−24 · c24 = 0 + 1 · 1 = 1
c28 = G227−24 + P27−24
2 · c24 = 0 + 0 · 1 = 0
0
s11 = P11 ⊕ c11 = 0 ⊕ 0 = 0, s13 = P13 0 ⊕c
13 = 1 ⊕ 1 = 0,
0 0
s14 = P14 ⊕ c14 = 1 ⊕ 1 = 0, s17 = P17 ⊕ c17 = 1 ⊕ 1 = 0,
0 ⊕c
s18 = P18 0
18 = 1 ⊕ 1 = 0, s20 = P20 ⊕ c20 = 0 ⊕ 1 = 1,
0
s24 = P10 ⊕ c24 = 1 ⊕ 1 = 0,
0 ·c
9. In the ninth slot, we can compute c31 = G030 + P30 30 = 0 + 1 · 1 = 1,
and the sum values
6
s23 0 ⊕c
= P23 = 1 ⊕ 1 = 0,
23
s27 0 ⊕c
= P29 = 0 ⊕ 1 = 1,
29
s29 0 ⊕c
= P29 = 1 ⊕ 1 = 0,
29
s30 0
= P30 ⊕ c30 = 1 ⊕ 1 = 0,
0 ⊕c
10. Finally in the tenth slot, we can evaluate s31 as s31 = P31 31 = 1 ⊕ 1 = 0.
– [3]
– [Q3: 3 + 3 = 6 marks]
Q–4 The Bit and Bit lines of a static RAM using a six transistor storage cell are pulled up using
nMOS transistors, so they will pre-charge only to VDD − VT n . Assume that the word line
of a selected row is raised all the way to VDD
Bit Bit
Word Select
VDD
VDD = 1.8V, VT n = |VT p | = 0.4V, µn /µp = 2.3
M3 M4 W/L = 1 for M1 and M2.
M5 M6
M1 M2
Gnd
a) Both Bit and Bit lines are pre-charged to VDD − VT n during a read operation. Assume
that a ‘0’ is stored in the cell, so that the drain of M1 is at 0V while the drain of
M2 is high. When the word line goes high, drains of M1 and M2 are connected to
the pre-charged Bit and Bit lines through M5 and M6. As a worst case condition, as-
sume that the drain of M2 remains at VDD −VT n during the entire read cycle due to this.
To prevent read upset, we want to ensure that the drain of M1 rises no higher than
VT n . Find the maximum W/L ratio for M5 which will ensure this.
Soln. 4-a) VDD − VT n = 1.8 − 0.4 = 1.4V
During the read operation, M2 and M3 are OFF.
Drain of M5 is at VDD − VT n = 1.4V , the gate is at VDD = 1.8V while its source is
at VT n = 0.4V. Thus VDS = 1.0V and VGS = 1.4V for M5 and therefore it is just in
saturation.
1
2
Equating currents, Kn5 (1.4 − 0.4) /2 = Kn1 (1.4 − 0.4) × 0.4 − 0.42
2
Assume that the W/L values for M5 and M6 are as calculated in the part above.
Therefore the drain of M2 will rise no higher than VT n . Thus M1 will remain OFF
during the entire write cycle. Find the maximum W/L value for the pMOS transistor
M3, such that the drain of M1 can be pulled below VDD /2 through M5.
Soln. 4-b) In this case, M1 and M4 are OFF, while M2 and M3 are ON in the beginning.
When M5, is turned ON, we want the voltage at the drain of M1 to drop below VDD /2.
Drain of M5 is then at VDD /2 = 0.9V, its gate is at 1.8V, while its source is at 0V.
Thus VDS = 0.9V, VGS = 1.8V for M5. Therefore it is in linear mode.
Source of M3 is at 1.8V while its gate is at 0.4V and the drain is at 0.9V. Thus
|VDS | = 0.9V, |VGS | = 1.4V for M3. So it is also in linear mode. Equation currents,
we get
1 2 1 2
Kn5 (1.8 − 0.4)0.9 − 0.9 = Kp3 (1.4 − 0.4)0.9 − 0.9
2 2
Kp3 (1.4 × 0.9 − 0.81/2)
=
Kn5 (1.0 × 0.9 − 0.81/2)
We have W5 /L5 = 0.64 for M5. So