( ESNUG 393 Item 10 ) -------------------------------------------- [04/25/02]

Subject: Three Engineers On Why Apollo Timing Differs From PrimeTime Timing

> I don't understand why the slack report that my ASIC vendor gives me via
> Apollo are different from what I get after analyzing it by Synopsys
> PrimeTime?  I mean, Apollo does have all the information, how can it give
> results that are less accurate than PrimeTime?
>
>     - Nahum Barnea


From: Lars Rzymianowicz <larsrzy@ti.uni-mannheim.de>

Well, if you have done a pre-layout synthesis with wire load models, your
synthesis tool is only guessing the length (and capacitance) of nets.
This can differ a lot from the actual placement/routing of the design.

    "I mean, Apollo does have all the information, how can it give
     results that are less accurate than PrimeTime?"

It's the other way 'round.  Apollo's results are more accurate, since
it has all the logical and physical information. PrimeTime only knows the
netlist, not the placement.

That's the problem of timing closure the EDA industry is attacking with
tools for physical synthesis.

I've seen pre/post layout mismatches on timing of 300% on our latest design.
With the standard ASIC flow: DC with WLMs, Apollo with length-driven P&R.
The flow is simply outdated for today's technologies...

    - Lars Rzymianowicz
      University of Mannheim                     Mannheim, Germany

         ----    ----    ----    ----    ----    ----   ----

From: jcooley@TheWorld.com (John Cooley)

There's two reasons for this, Nahum.  The first reason is that you're
probably using PrimeTime post-synthesis but pre-P&R (i.e. with front-
annotated delays), while Apollo is giving you timing reports post-P&R.
Front-annotated delays are essentially "best guesses" based on your block
size (if you're just using Design Compiler).  You can get better "best
guesses" early on in your design cycle if you use physical synthesis tools
like PhysOpt/Magma/PKS -- but there will still some timing differences
even using these tools because they use only placement info; not final
legal P&R.

The other reason why you're seeing timing differences between PrimeTime
and Apollo is that they use different timing algorithms within the tools
themselves.  That is, even if you take post-P&R Apollo generated netlists
and time them in PrimeTime, you're going to find a small difference in
the timing delays each tool reports.  (This difference is usually under
3%, so it's not something to lose sleep over, Nahum.)

    - John Cooley
      the ESNUG guy

         ----    ----    ----    ----    ----    ----   ----

From: [ The Man With One Red Shoe ]

John,

Keep me anonymous, please, if you decide to run this in ESNUG.

The major reasons for timing differences between Apollo and PrimeTime, in
addition to the ones that you described in your post, are:

  1. Is the design latch or flop based?  Flop based designs are trivial
     from a timing analysis perspective and the differences between Apollo
     and Primetime should be under 5% max (assuming that the same
     parasitics etc are used). 

     On the other hand if the design is latch based, the devil that is
     time-borrowing enters the picture.  PrimeTime being a "pure" timing
     analysis tool, does physical/greedy borrowing.  On the other hand
     from a design implementation tool's perspective such as Apollo, you
     need to do some sort of time-borrow balancing to ensure that the tool
     is not wasting cycles trying to optimize the snowballed slack at the
     hard timing endpoint (output port or a flop data pin).

  2. Propagation of constants across sequentials.  Apollo HAD a "feature"
     that would propagate constants across sequentials, while PrimeTime
     does not.  This could mean that a path reported by PrimeTime, is
     not "seen" by Apollo.

  3. Worst case slew propagation.  PrimeTime used the worst case input slope
     when reporting timing, not the actual slope.  For example, if you have
     a two input AND gate with inputs A and B and output O.  For a moment
     assume that the transition times at pins A and B are 5 and 10 units
     respectively.  PrimeTime used to (now they have a switch to control the
     behaviour) always use the "10" units of trans time, when timing through
     pin "A".  So the timing analysis is kind of pessimistic.  Apollo, I
     think, uses the "5" units trans time for paths through pin "A" and "10"
     for paths through "B".  (I have some very preliminary indications that
     the latest Apollo might have the same behaviour, but I have not fully
     investigated this.)

  4. For Apollo timing to match PrimeTime, a couple of other parameters
     enter the picture.  The Apollo timer does not use the ECS/Effective cap
     model for computing cell delays (the old story of resistive shielding
     etc) by default.  For it to match PrimeTime, ensure that the "ntECSOn"
     is set appropriately (the actual command might be slightly different.) 

  5. I think that Apollo uses AWE for interconnect delay while PrimeTime
     uses something like Adaptive Arnoldi or something like that... 

One last issue that a lot of designers tend to over look is characterization
range.  For example if you are operating your cell outside of its
characterization limits, all bets are off.  In general its, NOT a safe
assumption that the extrapolation is always linear.

I have seen Apollo behave kind of counter-intutively.

    - [ The Man With One Red Shoe ]


 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)