( ESNUG 377 Item 21 ) ------------------------------------------- [09/19/01]

Subject: ( ESNUG 375 #6 ) PrimeTime Reports Ignored Exceptions; But Not WHY

> PrimeTime reports "ignored exceptions" yet doesn't state -WHY- the
> exception was ignored.  Nor is there any capability to help debug the
> cause for the ignored exception.  I'm painfully aware of all the reasons
> why the exception *may* be ignored, but what would be really nice would
> be for PrimeTime to give me the answer so when I push the button on a new
> customer's design I won't be faced with days of work to analyze reams of
> ignored exceptions.
>
> I've requested this enhancement from Synopsys yet there has been no
> action.  Anyone out there have a home grown solution?  Does Ambit also
> have this shortcoming?
>
>    - [ Feeling Exceptionally Ignored ]


From: [ A Synopsys PrimeTime CAE ]

Hi John,

PrimeTime currently allows you to report ignored exceptions but does not
list a reason why an exception was ignored.  Admittedly, it would be nice
to report the reason why it was ignored to help in the debug of PrimeTime 
analysis scripts.

Much of the reason why PrimeTime only lists the ignored exceptions is 
for the sake of memory efficiency; PrimeTime drops or does not save the 
information that would be needed to determine the reason why, thereby
reducing memory usage.  In a future release, Synopsys will investigate 
some method of maintaining the information needed to report a reason for 
an ignored exception, but such behavior needs to be balanced with how 
much it impacts memory usage.

Most ignored exceptions are caused by invalid startpoints or endpoints
or non-existent paths, so here are some basic tips for writing proper
exceptions:

  1. Ensure all *-from* points are valid startpoints:
     - Primary input ports
     - Register clock pins
     - Segmented path startpoints
  2. Ensure all *-to* points are valid endpoints:
     - Primary output ports
     - Register data input pins
     - Segmented path endpoints
  3. Avoid excessive use of -through option or excessive use of wildcards,
     which can result in many redundant or invalid exceptions.

Here is an example of a bad exception that will result in lots of ignored
exceptions:

     set_multicycle_path 2 -setup -end -from A_reg*/CP -to B_reg*/*

Since the exception terminates at ALL of the pins associated with registers
B_reg, most of the exceptions will be ignored because invalid endpoints 
have been included in the "to" list.  The "-to B_reg*/*" includes the clock
pin and data output pins of B_reg, which are all invalid endpoints.  Only 
the data input pin is a valid endpoint.  This bad example should be written
like this:

   set_multicycle_path 2 -setup -end -from A_reg*/CP -to B_reg*/D

Lastly, users can use the following checklist to locate the root of ignored
timing exceptions: 

  - check to see if the timing path might not exist 
  - check for invalid startpoint and endpoint 
  - check if a set_disable_timing command blocks the path specified by the
    exception
  - check the output of check_timing -ignored_attributes 
  - check the order of precedence for timing exceptions 
  - check if the exception is applied on an unconstrained path 
  - path segmentation might have been specified incorrectly 

Understanding and writing good exceptions at the start is *key* to reducing
the amount of ignored exceptions by PrimeTime.

    - [ A Synopsys PrimeTime CAE ]


 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)