( ESNUG 305 Item 12 ) -------------------------------------------- [11/18/98]

Subject: ( ESNUG 304 #3 ) How To Find 3 Unloaded Nets Out Of 300,000 Nets ?

> I have a huge file of set_load commands, obtained from the layout tool.
> The command report_internal_loads can confirm what nets have been assigned
> via the set_load command.
> 
> I am looking for a command, or script, to report the nets that have NOT
> been loaded by a set_load command.  This is because I want to determine if
> there is any net that escaped the set_load command, and hence the timing
> report may be erroneous.
> 
>     - Andi Carmon
>       Orckit Communications Ltd.                  Tel Aviv, Israel


From: Jean-Marc Calvez <jean-marc.calvez@st.com>

John,

One possibility is to use the following dc_shell script snippet:
	foreach(netname, find(-hier,net)) {
		if (get_attribute(-quiet,netname,load) == {}) {
			echo "net" netname "not backannotated"
		/* or whatever processing */
		}
	}

Note that the find(-hier,net) is usually very time consuming (alas, I would
like Synopsys spending some time optimizing those "find" and "filter" 
functions that are really handy but really slow too), unreasonably so wrt
the time spend in synthesis IMO. Also you may want to redirect the output
to /dev/null to avoid too much clutter in your output file/console.

    - Jean-Marc Calvez
      STMicroelectronics                       Grenoble, France

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

From: Jay McDougal <jaym@hpcvcdt.cv.hp.com>

Hi John,

In dc_shell, try the check_design -post_layout command.  It will generate
lots of other info about sdf annotations etc., but you can find the
non-annotated nets in the report that is produced.

In pt_shell try the "report_annotated_parasitics -list_not_annotated"
command.

    - Jay McDougal
      Hewlett-Packard

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

From: jeffb@el.nec.com (Jeff Buckles)

John,

The "-post_layout" option of "check_design" will do this for you, if you're
using 1997.01 or newer.

% man check_design
...
...
          -post_layout   Checks the design for annotated
                         information in a Links-to-Layout flow.
                         This information is annotated on the
                         design after the design has been placed
                         and routed by the back-end tool. This
                         includes delay back-annotation,
                         resistance back-annotation, capacitance
                         back-annotation, and PDEF back-
                         annotation (for example, clusters, cell
                         locations, and so on). This option lists
                         designs or instances that have any of
                         these annotations missing. The
                         -post_layout option must be used at
                         least once for a design flow to validate
                         the back-annotation part of the Links-
                         to-Layout flow.

One note: depending on how your asic vendor models I/O delays, it may
be OK to have missing net or capacitance annotation on the external
side of I/O buffers.  

    - Jeff Buckles
      NEC Electronics                            Portland, OR

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

From: Scott Evans <scott@NPLab.Com>

John,

If your design is flat, then you can use "report_net" to get a report which
looks something like:

Attributes:
    c - annotated capacitance
    r - annotated resistance
 
Net                 Fanout     Fanin      Load   Resistance    Pins
Attributes
---------------------------------------------------------------------------
B                        1         1      7.36         0.00       2   
BBOT                     1         1      7.36         0.00       2   
BBOT_int                 1         1      0.28         0.29       2   c, r
BIN0_int[0]              1         1      0.10         0.14       2   c, r

The c,r in the last column shows that a capacitance and resistance have
been annotated to the net.  Just delete all the lines that contain c,r and
you are left with those nets that haven't been annotated.

If hierarchical you need to do something like:

	report_net find(net -hier"*")

Not terribly efficient but works.

    - Scott Evans
      NeoParadigm Labs                              San Jose, CA



 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)