COMP541 Flip-Flop Timing. Montek Singh Feb 27, 2012. Topics. Lab 6: Feedback VGA Display Timing Generator Timing analysis flip-flops sequential systems clock skew. Lab 6: Helpful VGA Links. VGA Timing Recommended: http://tinyvga.com/vga-timing
COMP541Flip-Flop Timing Montek Singh Feb 27, 2012
Topics • Lab 6: • Feedback • VGA Display Timing Generator • Timing analysis • flip-flops • sequential systems • clock skew
Lab 6: Helpful VGA Links • VGA Timing • Recommended: http://tinyvga.com/vga-timing • http://www.epanorama.net/documents/pc/vga_timing.html • Interesting • http://www.howstuffworks.com/tv.htm • http://computer.howstuffworks.com/monitor.htm • http://www.howstuffworks.com/lcd.htm • http://plc.cwru.edu/
Lab 6: Tips • One resolution does not work with most monitors • 1024x768: removed from the list • Be careful about the “Sync Polarity” • A “1” means a downward going pulse • sync signal is normally high, but goes low during the pulse • A “0” means an upward going pulse
Lab 6: Questions? • Anyone having trouble with it?
Input Timing Constraints • Setup time: tsetup = time before the clock edge that data must be stable (i.e. not changing) • Hold time: thold = time after the clock edge that data must be stable • Aperture time: ta = time around clock edge that data must be stable(ta = tsetup + thold)
Output Timing Constraints • Propagation delay: tpcq= max time after clock edge by which output Q is guaranteed to have stabilized (i.e., not changing anymore) • Contamination delay: tccq= min time after clock edge during which Q will not have started changing yet
Dynamic Discipline • The input to a synchronous sequential circuit must be stable during the aperture (setup and hold) time around the clock edge • Specifically, the input must be stable • at least tsetup before the clock edge • at least until thold after the clock edge
Implications on Design • Constrains operation • Given a clock period, constrains circuit delays • Given a circuit, constraints clock period • The delay between registers (clock period and rate) has a minimum and maximum delay, dependent on the delays of the circuit elements • Delays of both comb. logic and flip-flops must be taken into account
Setup Time Constraint • Setup time • input to R2 must be stable at least tsetup before the clock edge • constrains max delay from R1 through combinational logic • What’s min clock period? What’s Tc? Tc ≥ tpcq + tpd + tsetup tpd ≤ Tc – (tpcq + tsetup) • So, clock period constrained by: • Delay in CL • Delay in previous regs • Setup requirement of R2
Hold Time Constraint • Hold time • input to R2 must be stable for at least thold after clock edge • constrains the minimum delay from register R1 through the combinational logic • often try to design circuits with 0 hold time requirement thold < tccq + tcd tcd > thold - tccq
Timing Analysis Timing Characteristics tccq = 30 ps (FF contamination) tpcq = 50 ps (FF propagation) tsetup = 60 ps thold = 70 ps tpd = 35 ps tcd = 25 ps tpd = tcd = Setup time constraint: Tc≥ fc = tpd = 3 x 35 ps = 105 ps tcd = 25 ps Setup time constraint: Tc≥ (50 + 105 + 60) ps = 215 ps fc = 1/Tc = 4.65 GHz Hold time constraint: tccq + tcd > thold ? (30 + 25) ps > 70 ps ? No!
Fixing Hold Time Violation Add buffers to the short paths: Timing Characteristics tccq = 30 ps tpcq = 50 ps tsetup = 60 ps thold = 70 ps tpd = 35 ps tcd = 25 ps tpd = 3 x 35 ps = 105 ps tcd = 2 x 25 ps = 50 ps Setup time constraint: Tc≥ (50 + 105 + 60) ps = 215 ps fc = 1/Tc = 4.65 GHz Hold time constraint: tccq + tpd > thold ? (30 + 50) ps > 70 ps ? Yes!
Hold Time • Often flip-flops are designed for a hold time of zero • To avoid these tricky problems
Clock Skew • Clock doesn’t arrive at all registers at the same time • Skew is the difference between the arrival times of the clock edge at two different (typically neighboring) flip-flops • Examine the worst case: • guarantee that discipline is not violated for any register pair • many registers in a system!
Setup Time Constraint with Clock Skew Worst case: CLK2 is earlier than CLK1 Tc ≥ tpcq + tpd + tsetup + tskew tpd ≤ Tc – (tpcq + tsetup + tskew)
Similar Issue w/ Hold Time • We won’t go over example • Have a look in book
Next Time • Read Section 3.5.1-3.5.3 • Then we’ll move on to memories • Section 5.5