Domino Logic
Domino Logic
We can replace pfet pullup network with pseudo-NMOS load (pfet with
grounded gate) but
dissipate static power when output is low
have to make load fet small to ensure that
VOL is low enough to cut off nfets in next stage
reduces static power consumption (good!) A B
increases output rise time (bad!)
CLK
nfets nfets
CLK
When CLK is low, dynamic node is precharged high and buffer inverter output
is low. Nfets in the next logic block will be off. When CLK goes high, dynamic
node is conditionally discharged and the buffer output will conditionally go
high. Since discharge can only happen once, buffer output can only make
one low-to-high transition.
When domino gates are cascaded, as each gate “evaluates”, if its output
rises, it will trigger the evaluation of the next stage, and so on… like a line
of dominos falling. Like dominos, once the internal node in a gate “falls”, it
stays “fallen” until it is “picked up” by the precharge phase of the next cycle.
Thus many gates may evaluate in one eval cycle.
6.371 – Fall 2002 10/9/02 L11 – Domino Logic 5
More Domino-style Circuits
weak pfet “keeper” keeps dynamic node pulled high
during evaluate phase if it’s not being pulled down
through nfets Ö gate is static in both clock
phases.
CLK
nfets
nfets nfets
Since domino gate outputs are low during the precharge phase, gates which
have only domino output nodes as inputs don’t need the “evaluate” nfet
since all the nfets in the pulldown will be off anyway.
small large
Some designers also
“grade” the sizes of
the nfets, smallest large
at the top (increase small
nfets
in R offset by
decrease in C)
CLK
If we make the nfet in the output inverter much smaller than the pfet then
the load on the internal node decreases, and
the switching threshold of the inverter increases
Both effects make the gate evaluate sooner. If large >> small, the gate delay
can be cut almost in half! However, the other edge is very slow, so ripple
precharge is a problem.
6.371 – Fall 2002 10/9/02 L11 – Domino Logic 9
“Flies in the ointment”
OUT
OUT
t
CLK
When using multiple-input gates as the Domino buffer
changes in the “other” input during evaluate phase can
cause dynamic node voltage to sag due to capacitive
coupling, leading to unintended transition on OUT
Coupling
Couplingcan
canalso
alsooccur
occurbetween
betweenother
othersignal
signalwires
wiresand
andlong
longdynamic
dynamic
nodes
nodes(e.g.,
(e.g.,ones
onesthat
thatspan
spanmultiple
multiplebits
bitsininaadatapath).
datapath). Solutions:
Solutions: on
on
long
longroutes
routesaddadd“twists”
“twists”to
toavoid
avoidcontinguous
continguousroutes
routesor
orroute
routedynamic
dynamic
signals
signalsbetween
betweenmutually
mutuallyexclusive
exclusiveor
orcomplementary
complementarysignals.
signals.
6.371 – Fall 2002 10/9/02 L11 – Domino Logic 12
Domino Logic Design (I)
use Demorgan’s law
To convert to Domino-style design
A we need to create schematic that
B X
uses non-inverting gates:
C (1) look for CMOS gates followed
D by inverter
E Y (2) use Demorgan’s Law to create
F
G non-inv gates
H
Convert to Domino OR gate
Domino AND
A
B X
C
D
E Y
F
G
H Domino AND-OR
Domino OR
6.371 – Fall 2002 10/9/02 L11 – Domino Logic 13
X Y
Domino Logic
8/2 8/2
Design (II)
A E G
B D F
C nfet W/L = 4
pfet W/L = 8
CLK
s = static
d = domino (W/L = 4)
dd = domino (W/L = 8)
CLK
A CLK
A B
B
CLK
A A
A
B B
CLK
A CLK
A B
B
CLK
CLK
Gi = AiBi C4
Pi =Ai + Bi P4 G4
C1 = G1 + P1C0 C3
C2 = G2 + P2G1 + P2P1Co P3 G3
C3 = G3 + P3G2 + P3P2G1 + C2
P3P2P1C0 P2 G2
C4 = G4 + P4G3 + P4P3G2 + C1
P4P3P2G1 + P4P3P2P1C0 P1 G1
C0
CLK
The cross-coupled pfets serve as
“keepers” for the output which is high
making the gate static rather than
dynamic! During precharge both
keepers are off; during the evaluate
A
phase, the output that goes low
A
switches on the keeper for the output
B
B that is staying high. Really solves
capacitive coupling problems with
dynamic logic in datapaths.
CLK
If we turn a dynamic gate “upside down” and use pfets to build the logic
block, we get a logic gate that “precharges” low and “discharges” high. By
using these gates in an alternating sequence with regular nfet dynamic gates
we can eliminate the race problem we had with nfet-only dynamic gate
sequences and hence we don’t need the buffer inverter present in domino
gates.
Removing the buffer is a mixed blessing since we may need it for drive reasons
and to keep compatibility with other domino gates. It also makes NORA logic
very susceptible to noise since during the evaluate phase all information is
stored dynamically.
6.371 – Fall 2002 10/9/02 L11 – Domino Logic 18
Dynamic Logic Summary
Advantages of dynamic logic:
This makes dynamic logic a
smaller area than fully static gates good choice for those parts
smaller parasitic capacitances hence of a circuit where the extra
higher speed engineering investment is
justified, e.g., along the
reliable operation if correctly designed. critical timing paths.
Life
2
Cycle
Waiting for precharge Waiting for data
(holding output value) (holding precharge)
4 3 4
3 CLK
Actively evaluating
1 2
The “9 O’clock” state is very interesting: once a Domino gate has finished
evaluating, the gate’s immediate predecessors can start to precharge
(forcing the gate’s inputs low) without affecting the value of the gate’s
output. The gate is acting as latch so long as its predecessors don’t start
another evaluate cycle. Perhaps we can build a pipeline of domino stages
where each stage serves as both logic and latch depending on where it is in its
cycle. Need to have each stage supply its own precharge/evaluate timing
dependent on what its neighbors are doing...
6.371 – Fall 2002 10/9/02 L11 – Domino Logic 20
0 = precharged
1 = evaluation done
Self-timed
Pipelines
F1 F2 F3
P/E
Pdone Hey! Hasn’t the Muller C-
Element been around since
Sdone the days of Petri Nets?
F1 F2 F3
In the forward direction by how long it takes for the evaluate edge in
one stage to trigger the evaluate edge in the next stage:
LF = tFÇ + tDÈ + tCÇ
In the reverse direction by how long it takes for the precharge in one
stage to trigger a new evaluate in the stage after first evaluating the
previous stage (remember not double count!):
LR = 0.5*(tCÈ + tFÈ + tDÇ + tCÇ + tFÇ + tDÈ)
6.371 – Fall 2002 10/9/02 L11 – Domino Logic 24
Further Improvements
We don’t have to delay evaluation until successor has finished its precharge
(signaling that it’s finished with our values). We can just check that
successor has started precharging… Even with this improvement, the
correct sequencing will still happen for any combination of precharge and
evaluate times for all the gates. We can modify the control element like so:
S P/E