Sequential Circuit Design: Part 1 • Design of memory elements – Static latches – Pseudo-static latches – Dynamic latches • Timing parameters • Two-phase clocking • Clocked inverters
James Morizio 1 Sequential Logic Φ
FFs
LOGIC
tp,comb Out In
2 s torage mechanis ms • pos itive feedback • charge-bas ed
James Morizio 2 Sequencing • Combinational logic – output depends on current inputs • Sequential logic – output depends on current and previous inputs – Requires separating previous, current, future – Called state or tokens – Ex: FSM, pipeline clk clk clk clk
in out CL CL CL
Finite State Machine Pipeline
James Morizio 3 Sequencing Cont.
• If tokens moved through pipeline at constant speed, no sequencing elements would be necessary • Ex: fiber-optic cable – Light pulses (tokens) are sent down cable – Next pulse sent before first reaches end of cable – No need for hardware to separate pulses – But dispersion sets min time between pulses • This is called wave pipelining in circuits • In most circuits, dispersion is high – Delay fast tokens so they don’t catch slow ones.
James Morizio 4 Sequencing Overhead
• Use flip-flops to delay fast tokens so they move through exactly one stage each cycle. • Inevitably adds some delay to the slow tokens • Makes circuit slower than just the logic delay – Called sequencing overhead • Some people call this clocking overhead – But it applies to asynchronous circuits too – Inevitable side effect of maintaining sequence
James Morizio 5 Sequencing Elements • Latch: Level sensitive – a.k.a. transparent latch, D latch • Flip-flop: edge triggered – A.k.a. master-slave flip-flop, D flip-flop, D register
• Timing Diagrams clk clk h p c t o D Q D l Q a F – Transparent L – Opaque clk D – Edge-trigger Q (latch)
Q (flop)
James Morizio 6 Flip-Flop: Timing Definitions
Φ
t
tsetup thold In
DATA STABLE t
tpFF Out
DATA STABLE t
James Morizio 7 Maximum Clock Frequency Φ
FFs
LOGIC
tp,comb
James Morizio 8 Latch Design
• Pass Transistor Latch φ • Pros + Tiny D Q + Low clock load • Cons Used in 1970’s
– Vt drop – nonrestoring – backdriving – output noise sensitivity – dynamic – diffusion input
James Morizio 9 Latch Design
φ • Transmission gate D Q + No Vt drop - Requires inverted clock φ
James Morizio 10 Latch Design φ X • Inverting buffer D Q + Restoring φ + No backdriving φ + Fixes either D Q
• Output noise sensitivity φ • Or diffusion input – Inverted output
James Morizio 11 Latch Design
φ • Buffered input X D Q + Fixes diffusion input φ φ + Noninverting
φ
James Morizio 12 Latch Design
φ Q X • Buffered output D + No backdriving φ φ
φ • Widely used in standard cells + Very robust (most important) - Rather large - Rather slow (1.5 – 2 FO4 delays) - High clock loading
James Morizio 13 Latch Design
φ • Tristate feedback X D Q + Static φ – Backdriving risk φ
• Static latches are now essential φ
James Morizio 14 Latch Design
φ Q • Datapath latch X D + Smaller, faster φ φ - unbuffered input
φ
James Morizio 15 Design of Memory Elements
D C C Φ C Φ C Φ Φ Q Q
Positive edge-triggered D flip-flop Why use inverters on outputs? Skew Problem : Φ may be delayed with respect to Φ (both may be 1 at the same time) This is what happens- Q D
Eliminating/Reducing skew: Q
Φin Φ 1 Transmission gate acts a buffer, should have same C Φ delay as inverter
James Morizio 16 Latch design
C Q D Q D C Φ C Φ Φ Φ
Static D latch “Jamb” latch Weak inverter
James Morizio 17 Latch Design
Variant of D latch C C D
Φ Q Φ
Φ Φ D Q Φ Φ
James Morizio 18 Flip-Flop Design • Flip-flop is built as pair of back-to-back latches φ φ X D Q
φ φ
φ φ Q X D Q φ φ φ φ
φ φ
James Morizio 19 Enable • Enable: ignore clock when en = 0 – Mux: increase latch D-Q delay – Clock Gating: increase en setup time, skew
Symbol Multiplexer Design Clock Gating Design φ en
φ φ h h D 1 h c c c t D t Q t Q D Q a a a L L 0 L
en en
φ en φ
φ D 1 p o
l Q 0 F p p o o l D l Q D Q F F en en
James Morizio 20 Reset • Force output low when reset asserted • Synchronous vs. asynchronous φ φ S y m h p c b t o l
o D Q D Q a F l L
reset reset S y n c
h φ Q φ φ Q r o n
o reset reset u Q s D
D R φ φ
e φ s φ φ φ e t
φ φ φ
A Q Q s φ y φ φ n c
h reset
r reset o D n
o D φ
u φ φ
s φ
φ φ R e s
e reset
t reset φ φ φ
James Morizio 21 Set / Reset
• Set forces output high when enabled • Flip-flop with asynchronous set and reset
φ φ reset set Q D φ φ φ φ set reset φ φ
James Morizio 22 Dynamic Latches
• So far, all latches have been static-store state when clock is stopped but power is maintained • Dynamic latches reduce transistor count • Eliminate feedback inverter and transmission gate • Latch value stored on the capacitance of the input (gate capacitance)
James Morizio 23 Dynamic Latch and Flip-Flop
D C Q C Dynamic D latch Data stored as Φ Charge on gate capacitance
D C C Q Dynamic negative edge-triggered D Φ flip-flop Φ
• Difficult to ensure reliable operation • Similar to DRAM • Refresh cycles are required
James Morizio 24 Charge-Based Storage
Q Φ
D Q
Φ Non-overlapping clocks
Schematic diagram P s e udo -s tatic Latc h
James Morizio 25 Master-Slave Flip-Flop
Φ Φ Q A D B
Φ Φ
To reduce skew: generate complement of clock within the cell Extra inverter per cell
Overlapping Clocks Can Caus e • Race Conditions • Undefined Signals
James Morizio 26 Two-Phase Clocking
• Inverting a single clock can lead to skew problems • Employ two non-overlapping clocks for master and slave sections of a flip-flop • Also, use two phases for alternating pipeline stages
James Morizio 27 Two-Phase Clocking
Φ
1 D C C Q Φ
2 Φ 1 Φ2 Φ1(t) . Φ2(t) = 0
Φ1=1, Φ2 = 0 D Q
Φ1=0, Φ2 = 1 D Q
James Morizio 28 2-phase non-overlapping clocks
Φ Pseudo-static Φ1 2 Q D flip-flop D
Φ2 Φ1
Φ1 Important: Φ2 Non-overlap time t must be kept small t
James Morizio 29 2-phase dynamic flip-flop
φ1 φ2
D Q
Input Sampled
φ1
φ2
Output Enable
James Morizio 30 Use of “p” Leakers Φ1 Φ2 No need to route Flip-flop D Q Φ signals based on nMOS pass gates
Degraded voltage VDD-Vt
Φ1 Φ2 D Q
pMOS leaker transistors provide full-restored logic Problem: Increased delay levels (extra inverter)
James Morizio 31 Clocked Inverters Φ Similar to tristate buffer Φ = 1, acts as inverter Φ = 0, output = Z
Φ Φ Q D i1 i2 i3 Φ D Q Φ D Latch
James Morizio 32 Flip-flop insensitive to clock overlap
VDD VDD
M2 M6
φ M4 φ M8 X In D C C φ M3 L1 φ M7 L2
M1 M5
φ−section φ−section
C2MOS flip-flop
James Morizio 33 C2MOS avoids Race Conditions
VDD VDD VDD VDD
M2 M6 M2 M6
0 M4 0 M8 X X In D In D 1 M3 1 M7
M1 M5 M1 M5
(a) (1-1) overlap (b) (0-0) overlap
James Morizio 34