Professional Documents
Culture Documents
02 Logic-Design UptoMidSemPpt
02 Logic-Design UptoMidSemPpt
02 Logic-Design UptoMidSemPpt
Dinesh Sharma
EE Department
IIT Bombay, Mumbai
September 7, 2021
1.0
3.0
0.8 for Vgs > VT and Vds ≤ Vgs − VT,
Ids = K (Vgs − VT )Vds − 12 Vds
2
0.6 2.5
0.4
2.0
0.2 1.5
1.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5
Drain Voltage (V)
4.0 4.5 for Vgs > VT and Vds > Vgs − VT ,
(Vgs −VT )2
Ids = K 2
2(V − V )
Drain Current (mA)
gs T
define Vdss ≡ VE 1 + − 1
VE
Vgs − VT
0.6
≃ (Vgs − VT ) 1 −
0.4
2VE
0.2
1 2
and Idss ≡ K (Vgs − VT )Vdss − Vdss
0.0
CMOS Inverter
The simplest of CMOS logic structure is the inverter. This is the basic
gate of CMOS style of design. More complex gates are designed by
mapping them to an ‘equivalent’ inverter.
VDD
The pull up network of the logic gate is made
equivalent to the pMOS of the inverter.
In Out
The pull down network of the logic gate is made
equivalent to the nMOS of the inverter.
Thumb rules are used to map the geometries of
the pull up and pull down networks to single
transistors.
Static Characteristics
Inverter Transfer Curve
VDD
3.0
VoH
2.5
Output Voltage
2.0
In Out
1.5 V +V
Tn Tp
1.0
0.5
VoL
0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0
ViL ViH
Input Voltage
Transistor Currents
As we sweep the input voltage from 0 to VDD , the current through the
nMOS and pMOS can be plotted as a function of Vin and Vout .
VDD 0.4
0.35
Vin = 3.0
0.4
Vin = 0.0
0.35
0.3 0.3
pMOS Id (mA)
0.25 0.25
Vin = 2.5 Vin = 0.5
nMOS Id (mA)
0.2 0.2
In Out 0.15
0.1
Vin = 2.0
0.15
0.1
Vin = 1.0
Output Voltage
2.0
In Out
1.5 V +V
Tn Tp
1.0
0.5
VoL
0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0
ViL ViH
Input Voltage
Output Voltage
2.0
In Out
1.5 V +V
Tn Tp
1.0
0.5
VoL
0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0
ViL ViH
Input Voltage
Output Voltage
2.0
In Out 0.08 nMOS saturated pMOS linear
1.5 V +V
Id (mA)
0.06 Tn Tp
1.0
0.04
Idn = Idp
0.5
0.02 Idn: Vin = 1.0V
VoL
0.0
0 0.0 0.5 1.0 1.5 2.0 2.5 3.0
0 0.5 1 1.5 2 2.5 3 ViL ViH
Vout (V) Input Voltage
1
Idp = Kp (VDD − Vi − VTp )(VDD − Vo ) − (VDD − Vo )2
2
Kn
Idn = (Vi − VTn )2
2
Where symbols have their usual meanings. Equating currents, we get
1 2 Kn
Kp (VDD − Vi − VTp )(VDD − Vo ) − (VDD − Vo ) = (V − VTn )2
2 2 i
1 2 β
(VDD − Vi − VTp )Vdp − Vdp = (Vi − VTn )2
2 2
1 2 β
Vdp − (VDD − Vi − VTp )Vdp + (Vi − VTn )2 = 0
2 2
Solving the quadratic equation above we get Vdp , from which Vo may
be written as:
q
Vo = Vi + VTp + (VDD − Vi − VTp )2 − β(Vi − VTn )2
If Kn = Kp ; (β = 1),
q
Vo = (Vi + VTp ) + (VDD − VTn − VTp )(VDD − 2Vi + VTn − VTp )
Output Voltage
2.0
In Out
1.5 V +V
Tn Tp
1.0
0.5
VoL
0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0
ViL ViH
Input Voltage
√ √
When the input voltage is Vi = (VDD + βVTn − VTp )/(1 + β), both
transistors are saturated.
Currents of both transistors are independent of their drain
voltages.
we do not get a unique solution for Vo by equating drain currents.
Dinesh Sharma (IIT B) Logic Design September 7, 2021 13 / 144
CMOS Static Logic Inverter Static Characteristics
Output Voltage
2.0
In Out 0.08
1.5 V +V
0.06 Idp: Vin = 1.5V Idn: Vin = 1,5V Tn Tp
Id (mA)
1.0
0.04 Range of Vout with Idn = Idp
0.5
0.02
Idn: Vin = 1,5V Idp: Vin = 1.5V VoL
0.0
0 0.0 0.5 1.0 1.5 2.0 2.5 3.0
0 0.5 1 1.5 2 2.5 3 ViL ViH
Vout (V) Input Voltage
√ √
When the input voltage is Vi = (VDD + βVTn − VTp )/(1 + β), both
transistors are saturated.
Currents of both transistors are independent of their drain
voltages.
we do not get a unique solution for Vo by equating drain currents.
The currents will be equal for all values of Vo in the range
Vi − VTn ≤ Vo ≤ Vi + VTp
All output voltages in the range Vi − VTn ≤ Vo ≤ Vi + VTp satisfy the
drain current equations at this input voltage.
So the transfer curve of an inverter shows a drop of VTn + VTp at a
voltage near VDD /2.
2.0
1.5 V +V
Tn Tp
1.0
0.5
VoL
0.0 V
0.0 0.5 1.0 1.5 2.0 2.5 3.0 OL
ViL ViH
Input Voltage
V V
iL iH
Output Voltage
2.0
In Out
1.5 V +V
Tn Tp
1.0
0.5
VoL
0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0
ViL ViH
Input Voltage
Output Voltage
2.0
In Out 0.08 nMOS linear pMOS saturated
1.5 V +V
Tn Tp
Id (mA)
0.06
1.0
0.04
Idn = Idp
0.5
0.02 Idp: Vin = 2.0V
VoL
0.0
0 0.0 0.5 1.0 1.5 2.0 2.5 3.0
0 0.5 1 1.5 2 2.5 3 ViL ViH
Vout (V) Input Voltage
1 2 (VDD − Vi − VTp )2
Vo − (Vi − VTn )Vo + =0
2 2β
with solutions:
s
(VDD − Vi − VTp )2
Vo = (Vi − VTn ) ± (Vi − VTn )2 −
β
s
(VDD − Vi − VTp )2
Vo = (Vi − VTn ) ± (Vi − VTn )2 −
β
We must choose the negative sign, since Vo ≤ Vi − VTn for nMOS to
be in linear regime. So,
s
(VDD − Vi − VTp )2
Vo = (Vi − VTn ) − (Vi − VTn )2 −
β
Output Voltage
2.0
In Out
1.5 V +V
Tn Tp
1.0
0.5
VoL
0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0
ViL ViH
Input Voltage
Noise Margins
Logic Levels
-1.0.
The coordinates of these two points define the values of (ViL ,VoH )
and (ViH ,VoL ).
The region to the left of ViL and to the right of ViH has
| ∂V
∂Vi | < 1, and is suitable for digital operation.
o
∂Vo
From this, we evaluate and set it = -1.
∂Vi
s
∂Vo VDD − VTn − VTp
= −1 = 1 −
∂Vi VDD + VTn − VTp − 2Vi
This gives
3VDD + 5VTn − 3VTp
ViL =
8
7VDD + VTn + VTp VDD − VTn − VTp
VoH = = VDD −
8 8
Dinesh Sharma (IIT B) Logic Design September 7, 2021 25 / 144
CMOS Static Logic Noise margins
Dynamic Characteristics
For the calculation of rise and fall times, we shall assume that only
one of the two transistors in the inverter is ‘on’.
This is more conservative than the static logic levels calculated by
slope considerations.
We shall use the simple model described at the beginning of this
lecture.
Rise time
VoH
τrise
Z
dVo
=
C 0 Idp
Till the output rises to ViL + VTp , the p channel transistor is in saturation.
if VoH > ViL + VTp (which is normally the case), the integration range
can be broken into saturation and linear regimes. Thus
ViL +VTp
τrise
Z
dVo
= Kp
C − ViL − VTp )2
0 2 (VDD
VoH
dVo
Z
+
(VDD − ViL − VTp )(VDD − Vo ) − 12 (VDD − Vo )2
ViL +VTp Kp
2C(ViL + VTp )
τrise =
Kp (VDD − ViL − VTp )2
C VDD + VoH − 2ViL − 2VTp
+ ln
Kp (VDD − ViL − VTp ) VDD − VoH
The first term is just the constant current charging of the load
capacitor.
The second term represents the charging by the pMOS in its
linear range.
This can be compared with resistive charging, which would have
taken a charge time of
VDD − ViL − VTp
τ = RC ln
VDD − VoH
to charge from ViL + VTp to VoH .
Dinesh Sharma (IIT B) Logic Design September 7, 2021 31 / 144
CMOS Static Logic Dynamic Characteristics
Fall Time
VDD
Fall time
voL
τfall dVo
Z
=−
C VDD Idn
The n channel transistor will be in saturation till the output falls to
Vi - VTn . Below this, the transistor will be in its linear regime. We can
divide the integration range in two parts.
Vi −VTn VoL
τfall dVo dVo
Z Z
= − −
C VDD Idn Vi −VTn Idn
VDD
dVo
Z
= Kn 2
Vi −VTn 2 (Vi − VTn )
Vi −VTn
dVo
Z
+
VoL Kn [(Vi − VTn )Vo − 21 Vo2
Fall time
Once the basic CMOS inverter is designed, other logic gates can be
derived from it. The logic has to be put in a canonical form which is a
sum of products with a bar (inversion) on top.
For every ‘.’ in the expression, we put the corresponding n channel
transistors in series and the corresponding p channel transistors
in parallel.
for every ‘+’, we put the n channel transistors in parallel and the p
channel transistors in series.
We scale the transistor widths up by the number of devices (n or
p) put in series.
The geometries are left untouched for devices put in parallel.
A B
B D E
CMOS summary
CMOS summary
Static Characteristics
VDD 0.2
Pseudo nMOS transistor currents
Id(mA)
n−lin−p−lin
Vin n−sat−p−lin
0.05 Vin=1.5V
0
0 0.5 1 1.5 2 2.5 3
Vout (V)
Low input
1 2 β
V1 − V2 V1 + (Vi − VTn )2 = 0
2 2
This quadratic equation can be solved for V1 , which gives the value of
Vo .
1 2 β
V − V2 V1 + (Vi − VTn )2 = 0
2 1 2
The solutions are:
q
V1 = V2 ± V22 − β(Vi − VTn )2
substituting the values of V1 and V2 and choosing the sign which puts
Vo in the correct range, we get
q
Vo = VTp + (VDD − VTp )2 − β(Vi − VTn )2
Range of validity
q
Vo = VTp + (VDD − VTp )2 − β(Vi − VTn )2
VDD − VTp
VTn + √ = 1.1V
β
nMOS will enter linear regime when the output falls to Vi − VTn .
The output voltage will fall to Vi − VTn when
q
Vo = Vi − VTn = VTp + (VDD − VTp )2 − β(Vi − VTn )2
For VDD = 1.8V, VTn = VTp = 0.4V and β = 4, the input voltage
which will cause the nMOS to enter linear region is: 1.085V. The
output voltage at this input is 0.685V.
β −1 2 V
Vo − (β(Vi − VTn ) − VTp )Vo + DD (VDD − 2VTp ) = 0
2 2
We can solve this quadratic equation to get the value of Vo as
p
β(Vi − VTn ) − VTp − (β(Vi − VTn ) − VTp )2 − (β − 1)VDD (VDD − 2VTp )
β−1
As the input voltage is raised still further, the output voltage will fall to
VTp . The pMOS transistor will then enter the saturation regime.
As the input voltage is raised still further, the output voltage will fall to
VTp . The pMOS transistor is now in saturation regime. Equating
currents, we get
1 2 Kp
Kn (Vi − VTn )Vo − Vo = (VDD − VTp )2
2 2
which gives
1 2 (VDD − VTp )2
Vo − (Vi − VTn )Vo +
2 2β
This can be solved to get
q
Vo = (Vi − VTn ) − (Vi − VTn )2 − (VDD − VTp )2 /β
Noise Margins
2
ViH = VTn + √ (VDD − VTp )
3β
and
(VDD − VTp )
VoL = √
3β
Ratioed Logic
To make the output ‘low’ value lower than VTn , we get the condition
2
VDD − VTp
1
β>
3 VTn
Rise Time
VDD
ViL When the input is low, the nMOS is off and the
VoH output rises from ‘low’ to ‘high’.
The situation is identical to the charge up condition
CL of a CMOS gate with the pMOS being biased with its
gate at 0V.
This gives
Fall Time
Vdd
Calculation of fall time is complicated by the fact that
the pMOS load continues to dump current in the
Out
output node, even as the nMOS tries to discharge
the output capacitor.
in The nMOS needs to sink the discharge current as
well as the drain current of the pMOS transistor.
Gnd
Simplifying assumption:
pMOS current remains constant at its saturation value through the
entire discharge process.
(This will result in a slightly pessimistic value of discharge time).
Fall Time
dVo
In − Ip + C =0
dt
which gives
VoL
τfall dVo
Z
=−
C VDD In − Ip
We define V1 ≡ Vi − VTn .
Fall Time
Vdd
The integration range can be divided into two
Out regimes.
nMOS is saturated when V1 ≤ Vo < VDD .
in It is in the linear regime when
VoL < Vo < V1 .
Gnd
Fall Time
V1 VoL
τfall dVo dVo
Z Z
=− 1
−
C VDD
2
2 Kn V1 − Ip V1 Kn (V1 Vo − 21 Vo2 ) − Ip
V1
Kn τfall V − V1 dVo
Z
So = 2 DD +
2C V1 − 2Ip /Kn VoL 2V1 Vo − Vo2 − 2Ip /Kn
The integral can be evaluated using partial fractions.
We define V22 ≡ 2Ip /Kn . The denominator of the integral term can then
be factorized by adding and subtracting V12 .
q 2
2V1 Vo − Vo2 − V12 + V12 − V22 = −(V1 − Vo ) + 2
V12 − V22
q q
= V12 − V22 + V1 − Vo V12 − V22 − V1 + Vo
Fall Time
V1
Kn τfall V − V1 dVo
Z
= 2 DD +
2C V1 − 2Ip /Kn VoL 2V1 Vo − Vo2 − V22
The denominator of the integral term can be factorized as
q q
2 2
V1 − V2 + V1 − Vo 2 2
V1 − V2 − V1 + Vo
Fall Time
On putting the limits for the integral, the upper limit gives 0. So the
integral can be written as
q
1 V 1 − V oL + V12 − V22
q ln q
2 V12 − V22 VoL − V1 + V12 − V22
Fall Time
Thus we can write down the expression for fall time as:
q
Kn τfall V − V1 1 V12 − V22 V1 − VoL +
= 2 DD + q ln q
2C V1 − 2Ip /Kn 2 V 2 − V 2 V − V + V 2 − V 2
1 2 oL 1 1 2
Since Ip = Kp (VDD − VTp )2 /2, 2Ip /Kn is just (VDD − VTp )2 /β.
Fall Time
q
Kn τfall VDD − V1 1 V1 − VoL + V12 − 2Ip /Kn
= 2 + q ln q
2C V1 − 2Ip /Kn 2 V12 − 2Ip /Kn VoL − V1 + V12 − 2Ip /Kn
VDD − VTp )2
2Ip /Kn = and V1 = Vi − VTn
β
This relation was derived using the pessimistic assumption that the p
channel transistor dumps its saturation current over the entire
discharge range.
In any case, this relation is not used for designing the inverter because
the limit on the size of the n channel transistor is put by static
considerations and not by the fall time.
Vdd
Out
A and B are in series.
A C
The pair is in parallel with C which is in
series with a parallel combination of D and
B D E
E.
F (x1 , x2 , . . . , xn ) = xi · f 1 + xi · f 2
For any logic function, we pick one input as the control variable.
Multiplexer inputs are decided by re-evaluating the function,
forcing this variable to 1 and zero respectively.
Since both true and complement outputs are generated by CPL,
we need fewer types of gates.
For example, we do not need separate gates for AND and NAND
functions.
The same applies to OR-NOR, and XOR-XNOR functions.
A A A A
B A.B A A+B
A.B A+B
A B
B A
A.B A+B
A A.B B A+B
AND-NAND OR-NOR
For AND, the mux should output A.B to be inverted by the buffer.
This reduces to B when A = 1 and to 1 (= A) when A = 0.
Implementation of NAND, OR and NOR functions follows along
the same lines.
Consider the equivalent circuit when the inverter output is ‘low’ and the
pMOS is ‘on’.
If the final output is ‘low’, the pMOS pull-up is
‘on’. Now if the multiplexer output wants to go
VDD
‘low’, it has to fight the pMOS pull-up - which is
‘0’
0 1 trying to keep this node ‘high’.
‘0’ ‘1’ ‘0’ In fact, the multiplexer n transistor and the pull
up p transistor constitute a pseudo nMOS
inverter.
Therefore, the multiplexer output cannot be pulled low unless the
transistor geometries are appropriately ratioed.
Vdd Vdd
Out Out
A
A B B
In the pseudo-nMOS NOR circuit on the left, static power is
consumed when the output is ‘LOW’
We would like to turn the pMOS off when A OR B is TRUE.
The OR logic can be constructed by using a Pseudo-nMOS NAND
of A and B as in the circuit on the right.
But then what about the pMOS drive of this circuit?
Vdd Vdd
Out Out
A
A B B
In the pseudo-nMOS NOR circuit on the left, static power is
consumed when the output is ‘LOW’
We would like to turn the pMOS off when A OR B is TRUE.
The OR logic can be constructed by using a Pseudo-nMOS NAND
of A and B as in the circuit on the right.
But then what about the pMOS drive of this circuit?
Out Out
A
A B B
The output of the circuit on the right is ‘LOW’ when both A and B
are ‘HIGH’ (A = B = 0).
We would like to turn its pMOS off when NOR of A and B is
‘TRUE’
But this can be provided by the circuit on the left!
So the two circuits can drive each other’s pMOS transistors and
avoid static power consumption.
Dinesh Sharma (IIT B) Logic Design September 7, 2021 81 / 144
Cascade Voltage Switch Logic
Out Out
A
A B B
The output of the circuit on the right is ‘LOW’ when both A and B
are ‘HIGH’ (A = B = 0).
We would like to turn its pMOS off when NOR of A and B is
‘TRUE’
But this can be provided by the circuit on the left!
So the two circuits can drive each other’s pMOS transistors and
avoid static power consumption.
Dinesh Sharma (IIT B) Logic Design September 7, 2021 81 / 144
Cascade Voltage Switch Logic
Vdd
This kind of logic is called Cascade Voltage
Out Out Switch Logic (CVSL).
It can use any network f and its
A complementary network f in the two
A B B cross-coupled branches.
Like CMOS static logic, there is no static power consumption.
Like CPL, this logic requires both True and Complement signals. It
also provides both True and complement outputs. (Dual Rail
Logic).
Like pseudo nMOS, the inputs present a single transistor load to
the driving stage.
The circuit is self latching. This reduces ratioing requirements.
Dynamic logic
In this style of logic, some nodes are required to hold their logic
value as a charge stored on a capacitor.
These nodes are not connected to their ‘drivers’ permanently.
The ‘driver’ places the logic value on them, and is then
disconnected from the node.
Due to leakage etc., the logic value cannot be held indefinitely.
Dynamic circuits therefore require a minimum clock frequency to
operate correctly.
Use of dynamic circuits can reduce circuit complexity and power
consumption substantially.
Vdd
Ck
Out Ck (A + B) . C = True
A B
X
(A + B) . C = False
X
C X
CL
Ck
Out
Out
Discharge due to
Invalid input
There is no problem when (A+B).C is false. X pre-charges to 1 and
remains at 1.
When (A+B).C is TRUE, X takes some time to discharge. During this
time, charge placed on the output leaks away as the input to nMOS of
the inverter is not 0.
Multi-phase clock
In a multi-phase implementation, the output is pre-charged during
the first phase.
In the next phase, pre-charging is disabled and logic evaluation is
enabled. Output is disconnected from the next stage during
pre-charge as well as evaluation phases.
In the final phase(s), the output holds its correct value. It is
connected to the next stage and disconnected from pre-charge
and evaluate circuits of the current stage.
A minimum of 3 phases are required – pre-charge, evaluate and
valid.
In a 4-phase implementation, the valid state holds for a duration of
two phases.
To implement this kind of dynamic logic, we need a multi-phase
clock.
Dinesh Sharma (IIT B) Logic Design September 7, 2021 87 / 144
Dynamic Logic
We need to generate
various clock signals to
control connection and D0 Q0 D1 Q1 D2 Q2 D3 Q3
disconnection of
sub-circuits during Fast Clock
(4X)
different time slots.
An example scheme for Q0 Ck4 Ck1 Ck2 Ck3 Ck4 Ck1 Ck2 Ck3
generating a 4 phase
clock is shown on the Ck4 Ck1 Ck2 Ck3 Ck4 Ck1 Ck2 Ck3
Q1
right.
As can be seen, each Q Q2 Ck4 Ck1 Ck2 Ck3 Ck4 Ck1 Ck2 Ck3
output is high during a
single phase of a 4 Q3 Ck4 Ck1 Ck2 Ck3 Ck4 Ck1 Ck2 Ck3
phase cycle.
Ck1
Ck2
Ckmn is defined as a clock signal
Ck3
which is ‘high’ during phase m and
Ck4
phase n of the clock.
Ck12
Ck23
Similarly, Ckmn is a clock signal
VDD
which is ‘low’ during phase m and
Ck12 Ck23 phase n of the clock.
P Out
Phase 1 2 3 4
A B
Prev. = 1 False
P
Prev. = 0 True
C CL1 CL2 Prev. = 1 False
Ck12 Out True
Prev. = 0
Gnd
Ck23
from transistors.
Ck12 VDD
Ck23
Node P pre-charges to ‘1’ while the output
P Out holds its old value.
A B
In phase 2, Ck12 = 0, Ck23 = 1.
C
CL1 CL2
pMOS is on, bottom (clocked) nMOS is off
Ck12 and the output capacitor is in parallel with
Gnd
the capacitor on node P.
As a result, node P, as well as the output
node pre-charge to 1.
Dinesh Sharma (IIT B) Logic Design September 7, 2021 90 / 144
Dynamic Logic Four Phase Dynamic Logic
Ck2
bottom (clocked) nMOS is on. Capacitors
Ck3 at node P and at the output are still in
Ck4 parallel.
Ck12
Ck23
If (A + B) · C = 1, both capacitors will
Ck12 VDD discharge to ground through the signal
Ck23
P Out transistors and the bottom (clocked)
A B nMOS. Otherwise the output will remain at
1.
C
CL1 CL2 Thus the gate evaluates in phase 3 and
Ck12
Gnd
acquires the correct output value.
In phase 4, Ck12 = 1, Ck23 = 0. The
output is isolated from transistors and will
hold its valid value.
Dinesh Sharma (IIT B) Logic Design September 7, 2021 91 / 144
Dynamic Logic Four Phase Dynamic Logic
Ck3
Notice that the node P is no more valid in
Ck4 phase 1, since it pre-charges to ‘1’ in
Ck12 phase 1.
Ck23
VDD
This is called a type 3 gate, and needs the
Ck12
Ck23
P Out
inputs to be valid and stable in phase 3.
A B By changing the clocks to Ck23 and Ck34 ,
we shall get a type 4 gate which evaluates
C
CL1 CL2 in phase 4 and whose output remains
Ck12
Gnd
valid in phases 1 and 2.
Similarly, by cyclic permutation of clock
signals, we can get type 1 and type 2
gates.
Dinesh Sharma (IIT B) Logic Design September 7, 2021 92 / 144
Dynamic Logic Four Phase Dynamic Logic
Drive cycles
Drive Sequences
A type 3 gate can drive a type 4 or a
type 1 gate.
Type 1 Type 2
similarly, type 4 will drive types 1
and 2; type 1 will drive types 2 and
3; and type 2 will drive types 3 and
4.
We can use a 2 phase clock if we
stick to type 1 and type 3 gates (or
Type 4 Type 3 type 2 and type 4 gates) as these
can drive each other.
Domino Logic
Domino Logic
Domino Logic
Zipper Logic
Transmission gate
A transmission gate using two pass transistors and a CMOS inverter is
shown below:
Control C
In Out
Input Output
In Out
Control
Tri-stateable Inverter
2 way multiplexer
By shorting the outputs of two tristateable inverters, we can implement
an inverting mux.
VDD
En En
The enable signals of
In0 In1
the two tri-stateable
inverters are Output In0 Output
complementary. In1
So only one of these is
active at any given En En
time.
Depending on the state of the enable signal, the input to the enabled
inverter appears at the output in inverted form.
Dinesh Sharma (IIT B) Logic Design September 7, 2021 102 / 144
Miscellaneous Circuits
“tiny” XOR
A compact XOR circuit can be made using pass gates.
When A = 0, the pass gate on
the right is on and passes B to VDD A A
the output. A xor B
Also, the inverter like circuit in A A B
the middle has 0 applied on B
top and a 1 applied at the
bottom. Both transistors act as A
source followers and thus,
also drive the output to B.
When A = 1, the pass gate is open and the middle circuit has 1 at the
top and 0 at the bottom. So it acts like a regular inverter and provides
B at the output.
By Shannon’s Boolean expansion theorem, this constitutes the XOR
function: A · B + A · B.
Dinesh Sharma (IIT B) Logic Design September 7, 2021 104 / 144
Miscellaneous Circuits
“tiny” XNOR
A compact XNOR circuit can also be made similarly.
When A = 1, the pass gate on A
the right is on and passes B to VDD
the output. A xnor B A
Transparent D Latch
Ck
Q Ck Ck
D Flip Flop
Two transparent D latches with complementary clocks can be
connected in a master-slave configuration to form an edge sensitive D
flipflop
When the clock is low, the first
latch is transparent but the Ck Ck
second latch hold its previous
Q
value. D
When the clock transitions to Ck
high, the first latch captures Ck
the value of D at this instant. Q
The second latch becomes
transparent.
Outputs don’t follow D in either state of the clock.
Q reflects the value of D at the most recent positive transition on
Ck.
Dinesh Sharma (IIT B) Logic Design September 7, 2021 108 / 144
Miscellaneous Circuits
Semi-custom Design
Semi-custom Design
Semi-custom Design
Customizing Interconnects
VDD
Prod0
Each row generates a distinct
product.
By connecting links selectively Prod1
VDD
ABC
In the example shown on the
right, we have generated
products A · B · C, B · C, AC BC
and A · B · D.
To generate A · B · C, links from
AC
drains of transistors with gates
connected to the columns with
A, B and C are connected to ABD
VDD
AB C
BC
AC
AB
A B C
A B C
AB C + B C AC + AB B C +AC + AB
Primary Outputs
Next State
Latches Ck
Primary
Inputs Current State
Sea of Gates
Inv
Ground
D Q
D Latch with Reset
Q
R VDD
Q Q
D Q
Reset Q
Q D
Evolution of FPGAs
Different types of semi-custom design chips have been introduced with
various names. Here is a list:
PLAs: These were the first semi-custom devices to be
introduced in the market by Philips in the early 1970’s.
These are used to implement generic sums of products
and have a programmable AND plane as well as a
programmable OR plane.
Because both AND and OR arrays are programmable in
PLAs, these are rather slow.
PALs: A modification of PLAs in which the product array is
programmable, but the OR plane is fixed were introduced
as Programmable Array Logic or PAL. To cover for the
lack of flexibility due to the OR array being fixed, these
were introduced in different size combinations and
multiple devices were used for different functions.
Dinesh Sharma (IIT B) Logic Design September 7, 2021 137 / 144
Semi-custom Design FPGA
Evolution of FPGAs
Evolution of FPGAs
FPGA Architectures
A field Programmable array allows the logic functions as well as the
interconnect to be programmed.
Switch Box Switch Box Switch Box