Presentation is loading. Please wait.

Presentation is loading. Please wait.

Timing Override Verification (TOV) Erik Seligman CS 510, Lecture 18, March 2009.

Similar presentations


Presentation on theme: "Timing Override Verification (TOV) Erik Seligman CS 510, Lecture 18, March 2009."— Presentation transcript:

1 Timing Override Verification (TOV) Erik Seligman CS 510, Lecture 18, March 2009

2 Agenda  What is Timing Override Verification (TOV)?  Multicycle Paths  False Paths  Deploying TOV Methods

3 Agenda  What is Timing Override Verification (TOV)?  Multicycle Paths  False Paths  Deploying TOV Methods

4 Review: Timing Closure  Check delays of all paths Signals must be fast enough for frequency Flag paths that miss, make circuit changes

5 Do We Care About All Paths?  Timing overrides: relax checking of path Multicycle Path: May take >1 clk cycle –Often due to crossing to slower clk domain –May be consequence of logic False Path: Infinite time allowed –Path never matters logically  Usually specify in ‘SDC’ format set multicycle path -from … -to … set false path –from … -to …

6 Dangers of Timing Overrides  What if false or multicycle path is wrong? i.e., logically not really false / multicycle  Chip will not meet frequency Long path operates incorrectly Must slow down clock for proper function  Important to verify!

7 Verifying Timing Overrides  Often ad hoc: designer inspect manually  Better: create assertions Since SDCs manual, designer can create –Introduce as requirement on design team! Can automate to some extent with scripts Generally hard to FPV –Cross top-level blocks, specified at netlist  CAD tools Fishtail, RealIntent, Atrenta, BluePearl Some claim specialized FPV engines –Optimized to be able to prove SDCs

8 Agenda  What is Timing Override Verification (TOV)?  Multicycle Paths  False Paths  Deploying TOV Methods

9 Multicycle Path set_multicycle_path 3 –from f2 –to f3  What assertions might help verify?

10 Multicycle Path set_multicycle_path 3 –from f2 –to f3  What assertions might help verify? Value at f2 is always held 3 cycles (or 4)? And… ?

11 Multicycle Path set_multicycle_path 3 –from f2 –to f3  What is needed for this to be valid? Value at f2 is always held 3 cycles f2 transition  stable 3 cycles before some ck2 capture edge

12 Be careful about capture edge! set_multicycle_path 3 –from f2 – to f3  Bad data is stable for a long time But never stable 3 cycles before capture edge

13 Sensitization Issue set_multicycle_path 3 –from f2 –to f3  OR rather than XOR: change situation?

14 Sensitization Issue set_multicycle_path 3 –from f2 –to f3  OR rather than XOR: change situation? Path may not be sensitized In general case, may need to check this condition

15 General Multicycle Assertion  Important conditions: Input flop to path transitions Path sensitized –not masked by mux or ORed with 1, for example Destination flop samples  Key assertion: (Dest samples & sensitized)  (!Transition for last cycles)

16 Agenda  What is Timing Override Verification (TOV)?  Multicycle Paths  False Paths  Deploying TOV Methods

17 False Path Example set_false_path –from f2 –to f3  What assertions would be useful here?

18 False Path Example set_false_path –from f2 –to f3  What assertions would be useful here? Path never sensitized: !(s1==0 && s2==1) Any others?

19 False Path Example set_false_path –from f2 –to f3  What assertions would be useful here? Path never sensitized: !(s1==0 && s2==1) Sensitization condition correct: (!(s1==0 && s2==1))[*2] ##0 $stable(d2) |-> $stable(n1) (if not sensitized && other inputs stable  output stable)

20 False Path Example set_false_path –from f2 –to f3  What assertions would be useful here? Path never sensitized: !(s1==0 && s2==1) Sensitization condition correct: (!(s1==0 && s2==1))[*2] ##0 $stable(d2) |-> $stable(n1) (if not sensitized && other inputs stable  output stable) Or just “$stable(d2) |-> $stable(n1)”?

21 Agenda  What is Timing Override Verification (TOV)?  Multicycle Paths  False Paths  Deploying TOV Methods

22 Generating TOV Asserts  Simple method: Designers write + Designers write SDCs, so know design + Low overhead to introduce - May not be accurate, complete  CAD tools + Automatic - Additional tool in flow– is output saved? - May be noisy

23 Checking TOV Asserts  Simulation + Automatic if asserts added to RTL - Depends on test suite  FPV + High confidence, fuller coverage - Hard to prove - often specified at top level of large blocks - (vendors claim specialized engines)

24 One more wrinkle  Designers generate SDCs on netlists Not on RTL Assertions involve non-rtl signals  Solutions? DEs can manually convert to RTL asserts –Should be late in project, FEV mapping available Tool solutions: Fishtail “refocus” Generate & check asserts on netlist –Gate-level simulation

25 Other Complications  “-through” exceptions? Make asserts more complex: ensure that ‘through’ node is controlling transition when checking  Multicycle path at asynchronous CDC Bad luck: might hit metastability window Be careful to hold value an extra cycle

26 A Further Opportunity  Auto-identify false/multicycle paths? Capability in some tools (Fishtail, RealIntent) Both identify and prove the paths Lots of TOVs  easier to close timing  But is this too risky? Tools get thousands of these paths DEs nervous if unreviewed paths in design Low impact on timing closure –Small set of critical paths are what matter  Few design teams adopt auto-TOV methods

27 Conclusions  Multicycle / False paths are risky But needed for timing closure  Can generate asserts for safety  Several choices in strategy Manual asserts or CAD tool Simulation or formal RTL or netlist level  Plenty of reasonable sets of choices give much increased level of TOV confidence!

28 References / Further Reading    s/spyglass_constraints.htm s/spyglass_constraints.htm  ts/cobalt.html ts/cobalt.html  hp?articleId=1136&issueId=21 hp?articleId=1136&issueId=21


Download ppt "Timing Override Verification (TOV) Erik Seligman CS 510, Lecture 18, March 2009."

Similar presentations


Ads by Google