( ESNUG 428 Item 6 ) -------------------------------------------- [04/28/04]

Subject: ( ESNUG 427 #3 ) That PrimeTime Magic Switch Is Tricky To Use!

> One problem that cropped up recently was when a user was checking his
> clock-to-output times and started getting a blank report.  PrimeTime
> simply did not report any paths from the clock to the output!  Come
> to find out that the user didn't constrain that path, and the newer
> versions of PrimeTime just don't report on unconstrained nets.
>
> I quickly came to the conclusion that this was a bad thing.
>
> A quick call to Synopsys turned up the magic switch, which is:
>
>              set timing_report_unconstrained_paths true
>
> Which I now set in my default .synopsys_pt.setup files.
>
>     - David Bishop
>       Kodak                                      Rochester, NY


From: Vijay Raghavan <vijay.raghavan=user  domain=synopsys spot calm>

Hi John,

Wishing you well.  I'm a Synopsys Instructor in PrimeTime.

David is quite correct about turning this variable (printvar *unconstrain*)
to true in order to:

  + report an unconstrained data path, clock/reset paths,
  + have backward compatibility with older (than U-2003.03) PT versions

and

  + have DC like default behavior

As you know, defaults are always with a reason.  The advantage of keeping
the default (false) value of this variable is to avoid timing updates due
to unconstrained paths as explained by man UITE-413.

Some Guidelines:

  1. Prefer the "true" usage for interactive (vs. batch) analysis only
  2. Avoid placing non-default settings in the .synopsys_pt.setup
     file.  Prefer setting it within a PrimeTime script or use it
     interactively.  Keeping the .synopsys_pt.setup file simple, means
     bringing up the pt_shell quicker.  :)
  3. If the design is completely unconstrained, default report_timing
     only reports the longest path to an output port (vs. longest path
     delay in the design).

A more efficient methodology is to constrain *all* the timing paths within
PrimeTime, ensure the same using check_timing and report_analysis_coverage
reports before invoking timing reports.

Hope this is helpful.  Thanks to my fellow Instructor and our PT CAE.

    - Vijay Raghavan
      Synopsys, Inc.                             Marlboro, MA

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

From: Offer Kaye <oferk=user  domain=oren.co.il>

Hi John,

We had the exact same problem here, and came up with the same "magic
switch".  However note that it is not generally considered a good idea to
keep this variable true all the time, since report_timing will run slower
if this variable is true and there are lots of unconstrained paths in the
design. See:
                     man timing_report_unconstrained_paths

from the pt_shell or the documentation.

    - Offer Kaye
      Oren Semiconductor                         Israel

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

From: Shin Wu <sywu=user  domain=atmel spot calm>

Hi John,

I recently took a full-chip STA training class that was conducted by
Synopsys Education Services.  The instructor happened to mention about
this switch saying that starting from U-2003.03 PrimeTime will not report
any unconstrained paths (commands affected report_timing and
get_timing_paths).

I am also trying to setup some guidelines and structured template scripts
to do STA and I was wondering if I should set this switch.  But,
personally, I feel switching back to old behavior would encourage
designers to get away with incomplete constraints which is a significant
problem in STA.

    - Shin Wu
      Atmel Corporation                          Columbia, MD

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

From: Chris Papademetrious <chrispy=user  domain=synopsys spot calm>

Hi, John,

I noticed in ESNUG 427 #3 where David mentions putting the following
in his .synopsys_pt.setup file:

      set timing_report_unconstrained_paths true

Before every ESNUG reader puts this in their setup file, I would like
to provide a little background on this variable.  It was introduced in
PrimeTime 2003.03 to speed up the report_timing and get_timing_paths
commands.  It works by limiting PrimeTime's path searching algorithms
to constrained paths.  In cases where no constrained paths are found,
this avoids the runtime penalty of searching through the unsorted
unconstrained paths to find the longest one.  (I'm sure we have all seen
how long this can take when doing timing reports on large clock and
reset trees!)  Note that in such a case, PrimeTime specificially
states:

      No constrained paths.

which is different than the message:

      No paths.

During batch runs, limiting you analysis to constrained paths is
reasonable, and the runtime improvement is quite desirable.  However,
when working interactively, it can be useful to poke around unconstrained
paths (clock, resets, unusued I/Os, etc.) to explore various areas of the
design.  I also temporarily turn this on when obtaining PLL feedback
paths with get_timing_paths.

I personally keep the variable's default value of 'false', and add the
following line to the .synopsys_pt.setup file in my *home* directory:

      alias un set timing_report_unconstrained_paths true

Then, if I encounter the dreaded "No constrained paths." message during an
interactive session while working in any directory, I can flip this
variable with just a few keystrokes, and repeat the report with !rep.
It doesn't require a timing update to take effect, so there's no penalty
for turning it on in mid-session.  This way, you'll get the best of
both worlds.

   - Chris Papademetrious
     Synopsys, Inc.                              Brodheadsville, PA


 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)