CMOS Technology Logic Circuit Structures

Download Report

Transcript CMOS Technology Logic Circuit Structures

Sequential CMOS and NMOS Logic Circuits
• Sequential logic circuits contain one or more combinational logic
blocks along with memory in a feedback loop with the logic
– The next state of the machine depends on the present state and the inputs
– The output depends on the present state of the machine and perhaps also
on the inputs
• Mealy machine: output depends only on the state of the machine
• Moore machine: the output depends on both the present state and the inputs
• Topics to be studied in this section:
–
–
–
–
–
–
–
–
Basic memory cell operation
SR Latch
JK Latch
D Latch
Flip-Flops
Clocked CMOS Logic
Cascode Voltage Switch Logic
Clock Distribution
From Chapter 8 in Kang and Leblebici, and
portions of Chapter 5 in West and Eshraghian
R. W. Knepper
SC571, page 5-27
Logic Circuit Classification: Sequential Circuit Types
•
Sequential circuits (also called regenerative
circuits) fall into three types:
– Bistable
– Monostable
– Astable
•
Bistable circuits have two stable operating
points and will remain in either state unless
perturbed to the opposite state
– Memory cells, latches, flip-flops, and
registers
•
•
Monostable circuits have only one stable
operating point, and even if they are
temporarily perturbed to the opposite state,
they will return in time to their stable
operating point
Astable circuits have no stable operating
point and oscillate between several states
– Ring oscillator
R. W. Knepper
SC571, page 5-28
Memory Cell: Two-Inverter Basic Bistable Element
•
•
A memory cell is comprised of two inverters
connected back-to-back, i.e. output of one to
input of the other and vice-versa.
The memory cell (or latch) has two stable
states where the dc voltage transfer curves
cross at the VOH and VOL points, but also
exhibits an unstable state where the VTC’s
cross near their Vth switching points.
– In actual physical circuits the memory cell
will never stay at the unstable point, since
any small electrical noise in the circuit will
trigger it to one side or the other
– In numerical simulation (Cadence Spectre)
the circuit may actually remain in the
unstable state (assuming no noise source)
•
The CMOS SRAM cell at the left will either
be in state “0” with V01 at GND and V02 at
VDD or in state “1” with V01 at VDD and
V02 at GND.
R. W. Knepper
SC571, page 5-29
CMOS SR Latch: NOR Gate Version
•
The NOR-based SR Latch contains the basic
memory cell (back-to-back inverters) built
into two NOR gates to allow setting the state
of the latch.
– If Set goes high, M1 is turned on forcing Q’
low which, in turn, pulls Q high
• S=1  Q = 1
– If Reset goes high, M4 is turned on, Q is
pulled low, and Q’ is then pulled high
• R=1  Q’ = 1
– If both Set and Reset are low, both M1 and
M4 are off, and the latch holds its existing
state indefinitely
– If both Set and Reset go high, both Q and Q’
are pulled low, giving an indefinite state.
Therefore, R=S=1 is not allowed
•
•
The gate-level symbol and truth table for the
NOR-based SR latch are given at left
To estimate Set time, add time to discharge
Q’ + time to charge Q (pessimistic result)
R. W. Knepper
SC571, page 5-30
Depletion Load NMOS SR Latch: NOR Version
•
A depletion load version of the NOR-based
SR latch is shown at left.
– Functionally same as CMOS version
•
The latch is a ratio circuit
– Low side conducts dc current, causing higher
standby power than CMOS version
R. W. Knepper
SC571, page 5-31
CMOS SR Latch: NAND Gate Version
•
A CMOS SR latch built with two 2-input
NAND gates is shown at left
– The basic memory cell comprised of two
back-to-back CMOS inverters is seen
•
The circuit responds to active low S and R
inputs
– If S goes to 0 (while R = 1), Q goes high,
pulling Q’ low and the latch enters Set state
• S=0  Q = 1 (if R = 1)
– If R goes to 0 (while S = 1), Q’ goes high,
pulling Q low and the latch is Reset
• R=0  Q’ = 1 (if S = 1)
– Hold state requires both S and R to be high
– S = R = 0 if not allowed, as it would result
in an indeterminate state
R. W. Knepper
SC571, page 5-32
Clocked SR Latch: NOR Version
•
Shown at left is the NOR-based SR latch with
a clock added.
– The latch is responsive to inputs S and R only
when CLK is high
– When CLK is low, the latch retains its current
state
•
Timing diagram shows the level-sensitive
nature of the clocked SR latch.
– Note four times where Q changes state:
• When S goes high during positive CLK
• On leading CLK edge after changes in S & R
during CLK low time
• A positive glitch in S while CLK is high
• When R goes high during positive CLK
R. W. Knepper
SC571, page 5-33
Clocked CMOS SR Latch: AOI Implementation
•
CMOS AOI implementation of clocked
NOR-based SR latch shown at left with
logic symbol circuit below
– Only 12 transistors required
– When CLK is low, two series legs in N
tree are open and two parallel transistors
in P tree are ON, thus retaining state in the
memory cell
– When CLK is high, the circuit becomes
simply a NOR-based CMOS latch which
will respond to inputs S and R
R. W. Knepper
SC571, page 5-34
Clocked CMOS JK Latch: NAND Version
•
•
The SR latch has a problem in that when both S
and R are high, its state becomes indeterminate
The JK latch shown at left eliminates this
problem by using feedback from output to
input, such all states in the truth table are
allowable
– If J = K = 0, the latch will hold its present state
– If J = 1 and K = 0, the latch will set on the next
positive-going clock edge, i.e. Q = 1, Q’ = 0
– If J = 0 and K = 1, the latch will reset on the next
positive-going clock edge, i.e. Q’ = 1 and Q = 0
– If J = K = 1, the latch will toggle on the next
positive-going clock edge
• Note that in order to prevent the JK Latch above
from oscillating continuously during the clock
active time, the clock width must be kept smaller
than the switching delay time of the latch.
Otherwise, several oscillations may occur before
the clock goes low again. In practice this may be
difficult to achieve.
R. W. Knepper
SC571, page 5-35
JK Master-Slave Flip-Flop
•
A Flip-Flop is defined as two latches connected serially and activated with opposite
phase clocks
– First latch is the Master; Second latch is the Slave
– Eliminates transparency, i.e. a change occurring in the primary inputs is never reflected
directly to the outputs, since opposite phase clocks are used to activate the M and S latches.
•
A JK master-slave flip-flop (NOR-based version) is shown below:
– The feedback paths occur from Q and Q’ slave outputs to the master inputs AOI gates
– does not exhibit any tendency to oscillate when J = K = 1 no matter how long the clock period,
since opposite clock phases activate the master and slave latches separately.
– The NOR-based version can be done with four AOI CMOS gates, requiring 28 transistors
– Can be susceptible to “ones catching”, i.e. a positive glitch in either the J or K input while the
CLK is high, which can change the state of the master latch (and the slave latch on next edge)
R. W. Knepper
SC571, page 5-36
CMOS D-Latch Implementation
•
A D-latch is implemented, at the gate level, by
simply utilizing a NOR-based S-R latch,
connecting D to input S, and connecting D’ to
input R with an inverter.
– When CLK goes high, D is transmitted to output
Q (and D’ to Q’)
– When CLK goes low, the latch retains its
previous state
•
The D latch is normally implemented with
transmission gate (TG) switches, as shown at
the left
– The input TG is activated with CLK while the
latch feedback loop TG is activated with CLK’
– Input D is accepted when CLK is high
– When CLK goes low, the input is open-circuited
and the latch is set with the prior data D
R. W. Knepper
SC571, page 5-37
CMOS D-Latch Schematic View and Timing
•
A schematic view of the D-Latch can be obtained
using simple switches in place of the TG’s
– When CLK = 1, the input switch is closed
allowing new input data into the latch
– When CLK = 0, the input switch is opened and the
feedback loop switch is closed, setting the latch
•
Timing diagram:
– In order to guarantee adequate time to get correct
data at the first inverter input before the input
switch opens, the data must be valid for a given
time (Tsetup) prior to the CLK going low.
– In order to guarantee adequate time to set the latch
with correct data, the data must remain valid for a
time (Thold) after the CLK goes low.
– Violations of Tsetup and Thold can cause
metastability problems and chaotic transient
behavior.
R. W. Knepper
SC571, page 5-38
Alternate CMOS D-Latch Implementation
•
•
An alternate (preferred) version of the CMOS
D-Latch (shown at left) is implemented with
two tri-state inverters and a normal CMOS
inverter.
Functionally it is similar to the previous chart
D-Latch
– When CLK is high, the first tri-state inverter
sends the inverted input through to the second
inverter, while the second tri-state is in its high
Z state.
• Output Q is following input D
– When CLK is low, the first tri-state goes into
its high Z state, while the second tri-state
inverter closes the feedback loop, holding the
data Q and Q’ in the latch.
R. W. Knepper
SC571, page 5-39
CMOS Static Latches with Single Phase Clock
•
Various types of D latch circuit with
single phase clocks
– (a) shows the use of a weak inverter with
long L (low W/L) devices to allow
removal of feedback loop X-gate but
retain static latch function
– (b) D latch ckt with input inverter buffer
– (c) implementation of (b) utilizing tristate buffer/inverter circuits with clocks
at center of tri-state
– Alternate schematic of (c) indicating
layout convenience due to common tie
point at output of tri-state buffers
•
Clock skew problems can be solved onchip by using buffering in clock nets
– Inverter buffers to generate neg clk
– Transmission gate buffers for true clk
R. W. Knepper
SC571, page 5-40
Construction of D Register (Flip-Flop) in CMOS
•
Two level-sensitive latches are
combined to form a positive edgetriggered register, as is used to build a
D register
– (a) shows negative level sensitive latch
(valid when clock is negative)
– (b) shows positive level sensitive latch
(valid when clock is positive)
– (c) shows positive edge-triggered D
register (also called a Flip-Flop)
comprised of a negative latch feeding a
positive latch
• First latch is the Master
• Second latch is the Slave
•
D register timing:
– Output Q valid at Tq (clock-to-Q) delay
after clock edge
– Data must be valid Ts (setup time) prior
to clock edge and Th (hold time) after
clock edge
R. W. Knepper
SC571, page 5-41
CMOS D Flip-Flop: Falling Edge-Triggered
•
Shown below is a D Flip-Flop, constructed by cascading two D-Latch circuits from the
previous chart
– Master latch is positive level sensitive (receives data when CLK is high)
– Slave latch is negative level sensitive (receives data Qm when CLK is low)
•
The circuit is negative-edge triggered
– The master latch receives input D until the CLK falls from high to low, at which point it sets
that data in the master latch and sends it through to the output Qs
R. W. Knepper
SC571, page 5-42
Clocked CMOS Logic (C2MOS)
•
•
•
Clocked CMOS logic has been used for very
low power CMOS and/or for minimizing hot
electron effect problems in N-FET devices
Clocking transistors allow valid logic output
only when clk is high
Clocking transistors may be at output end of
logic trees (maximum performance) or at
power supply end of logic trees (maximum
protection from hot electrons)
R. W. Knepper
SC571, page 5-43
Cascade Voltage Switch Logic (CVSL)
•
CVSL is a differential type of logic circuit whereby both true and complement inputs are
required
– For example, true inputs are applied to left pull-down leg below and complement inputs are
applied to right leg
•
•
•
•
N pull-down trees are the dual of each other
P pull-up devices are cross-coupled to latch output
Both true and complement outputs are obtained
Input pull-down trees may be intermixed, depending on the logic to be implemented
R. W. Knepper
SC571, page 5-44
Clocked CVSL (Cascade Voltage Switch Logic)
•
•
Clocked CVSL circuit type shown at left
Example in (b) is an implementation of Q =
a XOR b XOR c XOR d
– Some similarity to a current steering circuit
in bipolar
– When clock is low, nodes are precharged;
When clock goes high, one leg pulls the
internal output to ground, while opposite leg
is non-conducting
– Complement outputs Q and –Q are obtained
R. W. Knepper
SC571, page 5-45
Sample-Set Differential Logic (SSDL):
Dynamic CVSL with a Latching Sense Amp
•
•
•
SSDL utilizes a latching sense amplifier
to latch output when clock goes high,
much like a DRAM sense amplifier
When clock is low P1 & P2 precharge
while N1 pulls down the N tree logic
causing a differential voltage on the
internal output nodes
When clock goes high, N3-N5 cause the
sense amplifier to set and latch
R. W. Knepper
SC571, page 5-46
CMOS Schmitt Trigger Circuit
•
The Schmitt Trigger circuit,
shown at left, has a dc transfer
characteristic like an inverter, but
with different switching thresholds
depending on whether Vin is
increasing or decreasing
– Hysteresis effect
• If Vin is increasing, high Vth
• If Vin is decreasing, low Vth
•
SPICE simulated VTC waveforms
with increasing and decreasing
input voltage are shown at right.
• increasing Vin  Vth = 3.5 V
• decreasing Vin  Vth = 1.4 V
R. W. Knepper
SC571, page 5-47
Clocking Strategies for Finite State Machine &
Pipelined Systems
•
•
VLSI systems universally make use of storage elements and states, with clock(s) to
control the sequencing
(a) shows a Finite State Machine
– at positive clock edge, the next state bits get stored as the current state bits and the current
state bits combined with inputs generate new next state bits
•
(b) shows a pipelined system indicative of today’s microprocessors and logic systems
R. W. Knepper
SC571, page 5-48
Timing a Pipelined System
•
•
Pipelined system typically has registers separated by combinational logic
Minimum cycle time Tc obtainable given by
Tc = Tq + Td + Ts
– Tq is the clock-to-Q output delay of Register A
– Td is the total worst case delay through the combinational logic
– Ts is the set-up delay time of Register B
•
In order to increase frequency in superpipelined and superscalar machines, long
combinational logic blocks can be split into smaller combinational blocks and latches
used to separate the blocks (rather than full registers)
– Improves overall frequency of processor, but adds some delay penalty due to added latches
R. W. Knepper
SC571, page 5-49
The Effect of Clock Skew on a Pipeline
•
•
Design of a pipelined machine assumes
that clock edges will appear at each
register at a precise time to
If delay occurs in clock distribution due to
RC wire delays, LC ringing on the clock
nets, or buffer delay, the pipeline timing
will be skewed.
– Can cause a latch or register to be set with
incorrect data (as shown at right)
•
Example:
– Register M1 is set by the clock at Tc1,
providing data inputs to the combinational
logic and then to register M2
– Register M2 is supposed to latch in old
data at the same clock edge
– But, if the delay to Tc2 > Tc1 + Tq1 + logic
delay, M2 will incorrectly store the new
data rather than the previous data.
R. W. Knepper
SC571, page 5-50
Clock Synchronization Using Phase Locked Loops
•
Phase Locked Loop
(PLL) is used to
synchronize an on-chip
generated clock with a
system clock at some
point on the chip
– Reduces clock skew to
zero at the sensing
point
•
•
•
•
(a) no PLL – clock skew
(b) with PLL on chip
(c) using PLL with
divide by 4 scheme to
achieve 4X freq on-chip
(d) use of PLL approach
to synchronize data
across several chips
R. W. Knepper
SC571, page 5-51
Charge Pump Phase Locked Loop
•
One implementation of a PLL using a
phase detector and charge pump ckt
with a freq multiplier of n times
– A phase difference is measured
between the reference clock and the onchip clock
– Charge pump pumps a ref voltage up or
down depending on phase difference
– Loop filter to clean up voltage
– Variable Controller Oscillator (VCO) is
used to obtain exact frequency clock
•
•
(b) VCO frequency is a function of
control voltage applied to N pull-downs
and current mirror
(c) another approach to control
frequency by using a variable delay line
– MOS capacitance load on each stage is
varied by NFET gate voltage
R. W. Knepper
SC571, page 5-52
Latch Metastability
•
Consider the problem of setting a latch when the data is late and/or has a very long
rise/fall time and is still changing during the clock transition
– if data change is delayed and overlaps clock edge (below), latch may set with new data
rather than valid prior data
• Data delay = 2.2 ns  latch sets correctly at Q=1
• Data delay = 2.3 ns  latch hangs momentarily at metastable point, but then sets correctly at Q=1
• Data delay = 2.4 ns  latch hangs momentarily and sets incorrectly at Q=0
•
Metastable point: non stable point in a latch where Vleft = Vright (neither “0” or “1”)
– thermal noise will cause latch to move off metastable point and set at a “0” or a “1”
•
How to fix?
– speedup the data (register-based synchronizer)
– delay the clock (introduce an intentional clock delay ---- risky!!)
R. W. Knepper
SC571, page 5-53
Clock Tree Distribution
•
•
To prevent clock skew problems on a
chip, clock distribution networks are
designed very carefully
Example shown: linear (E-W) clock
tree distribution network
– Clock is buffered several times before
driving FO=3
– Each FO3 buffer drives another high FO
(FO=4 shown) buffer
– Finally another single buffer is used for
each linear clock line to drive across
chip or functional island on a chip
•
H tree distribution network often used
on chips with area pads (solder bumps)
– Master clock is brought on board chip
near central part of chip and driven
outward with large H interconnection
arrangement
R. W. Knepper
SC571, page 5-54
JK MS Flip-Flop Problem: One’s Catching
•
Although the JK Master-Slave FlipFlop can be considered edge-triggered
in regards to a change in Qs at the
negative CLK edge, it is actually level
sensitive in regards to noise on J (or K)
during the CLK high interval.
– Note positive glitch in J which
erroneously Sets the Master latch at
Qm = 1 during the CLK high interval
and then also reflects itself in Qs = 1 at
the negative-going CLK edge.
• Called “One’s Catching”
– Same problem can occur with a glitch
in K during CLK high, causing a Reset
operation
– Since the master latch actually sets and
latches on the noise glitch, the error is
then transmitted to the slave latch
during CLK’
R. W. Knepper
SC571, page 5-36a
A Positive-Edge Triggered D Flip-Flop
•
Why is the NAND-based D Flip-Flop shown at left edge-triggered and not level
sensitive?
– There is no master latch
– The two NAND gate pairs are clocked with opposite phase clocks, and therefore act similar to
the transmission gates in the TG-based D flip-flop
• The 1st NAND pair is clocked with CLK’
• The 2nd NAND pair is clocked with CLK’’ = CLK
•
Result:
– Q changes on the positive-going CLK edge
– NAND #1 pair locks in the valid data at the negative CLK edge
– The master latch is essentially dynamic, holding the state as charge at the inputs of the two
inverters
R. W. Knepper
SC571, page 5-36b
Monostable Multivibrator Circuit with Depletion Loads
•
•
The monostable multivibrator circuit at left
has only one stable state (Vout low)
Operation (Reset):
– Pull Vin high momentarily to reset to Vout
high, pulling left node down to some VOL
– Capacitor immediately pulls gate of right
NMOS down turing it OFF
– Vout immediately charges high to Vdd
•
Operation (Timed return to Set):
– Capacitor slowly charges to roughly Vdd
through NMOS depletion transistor
– After capacitor charges sufficiently towards
Vdd, right-most NMOS transistor turns ON
and switches the latch back to Vout low
R. W. Knepper
SC571, page 5-47b
An NMOS Schmitt Trigger Circuit
•
Transistor Sizes:
–
–
–
–
•
W/L)M1 = 1
W/L)M2 = 0.5
W/L)M3 = 10
W/L)M4 = 1
How does the circuit work?
R. W. Knepper
SC571, page 5-47a
Clocked SR Latch: NAND Version
•
NAND version of clocked SR latch with
active high clock is shown
– Circuit is implemented with four NAND gates,
not with an AOI or OAI
• 16 transistors required
– The latch is responsive to S or R only if CLK
is high
– When CLK is low, the latch retains its present
state
R. W. Knepper
SC571, page 5-31c
JK Register Implemented in CMOS
•
•
JK register is implemented by adding
logic to front of a D register
Operation:
– If JK = 01, Q goes to 0 on rising clock
edge
– If JK = 10, Q goes to 1 on clock edge
– If JK = 00, Q retains prior state
– If JK = 11, Q toggles on clock edge
– When clock is down, Q and QN hold
prior state
R. W. Knepper
SC571, page 5-47
T Register CMOS Implementation
•
T (Toggle) Register is shown below (note error in Weste & Eshraghian text)
–
–
–
–
•
Output Q toggles (changes state) on each positive clock edge
Used as a divide by two counter
Comprised of D register with –Q connected to the input
Clear function is added to the T reg below by replacing 1st inverter in slave latch with a NAND
Operation:
– When clk goes up, output Q is complemented (and master latch is set)
– When clk goes down, slave latch is set. No change occurs to Q
– When clear goes high, QM is set to a “1” (Q to a “0”)
R. W. Knepper
SC571, page 5-46
D Register Implementation in CMOS
•
CMOS implementation of the popular positive edge-triggered D register is shown
– Comprised of four transmission gates and five inverters
•
Operation
– Clock = 0:
• Master latch is connected to input to receive new D data
• Slave latch is holding previous data on output and is isolated from input
– Clock = 1:
• Master latch stops sampling input, latches up the D data at the positive clock edge, and sends it
through to the output Q
R. W. Knepper
SC571, page 5-45
CMOS Latch Symbolic Layouts
•
Typical layouts of D latch circuits
– (a) layout of tri-state buffer D latch
shown on previous slide
– (b) & (c ) two alternate layouts of
conventional D-latch circuit
R. W. Knepper
SC571, page 5-51
Static Registers Based on CVSL and SRAM Structures
•
(a) shows a static D register designed
around CVSL circuits
– Latch #1 is formed with PFET’s cross
coupled and is clocked with NFET’s
pulling down to cause latch to set
– Latch #2 is formed with NFET’s cross
coupled and uses PFET transistors to
pull the output nodes toward Vdd to set
the latch when Clk is low
•
(b) is a D latch based on an SRAM cell
with NFET pull-downs to set latch when
Clk goes high
R. W. Knepper
SC571, page 5-51a
Differential Split-Level CVSL
•
Vref is applied to gates of cascode NFET’s to
isolate the logic signal inputs from the high
speed output nodes
– Vref is designed to be approximately equal to
(Vdd/2) + Vtn
– By using Vref, the signal swing on the N logic
trees connected to nodes d and –d is reduced to a
small voltage of roughly Vdd/2
•
P pull-up devices are wired as a cross-coupled
latch designed with a full Vdd signal
– Gates of P pull-up transistors are connected
below the N cascode transistors for maximum
speed
•
•
(a) shows a simple inverter
(b) shows open drain pull-down complementary
outputs
– N logic trees connect to d and -d
R. W. Knepper
SC571, page 5-36
Registers with Asynchronous Set and Reset
•
Asynchronous Set and Reset are
added to the D Register by replacing
inverter gates with 2-input NAND
gates in forward or feedback latch
legs (as shown at left)
– (a) Asynchronous Reset only
– (b) Asynchronous Set and Reset
– Both registers have an input buffer
added
R. W. Knepper
SC571, page 5-52
Dynamic Latches with a Single Clock
•
Dynamic latches eliminate dc feedback leg by storing data on gate capacitance of
inverter (or logic gate) and switching charge in or out with a transmission gate
– Minimum frequency of operation is typically of the order of 50-100 KHz so as not to lose data
due to junction or gate leakage from the node
– Can be clocked at high frequency since very little delay in latch elements
•
Examples:
– (a) or (b) show simple transmission gate latch concept
– (c ) tri-state inverter dynamic latch holds data on gate when clk is high
– (d) and (e) dynamic D register
R. W. Knepper
SC571, page 5-53