( ESNUG 306 Item 6 ) ---------------------------------------------- [12/3/98]

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

> 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: chris.bohm@analog.com ( Chris Bohm )

Hello John,

The following UNIX shell script can examine a report_net report file and
will filter out all nets which have no annotated capacitances:

 touch annotated_nets.report
 /usr/bin/rm annotated_nets.report
 touch annotated_nets.report

 touch not_annotated_nets.report
 /usr/bin/rm not_annotated_nets.report
 touch not_annotated_nets.report

 nawk '
 BEGIN{
 if (FILENAME == "-")
   print "ERROR: specify input file (report containing report_net section)."
 else {
   print "examining report file: " FILENAME
   approaching_report_net_section = 0
   in_report_net_section = 0
   annotated_count = 0
   not_annotated_count = 0
   while ((getline < FILENAME) >0) 
      {
      if (next_line_is_in_report_net_section == 1)
         {
         if ($1 == "----------------------------------------------------")
            {
            approaching_report_net_section = 0
            next_line_is_in_report_net_section = 0
            print "... found end of report_net section"
            }
         }

      if (next_line_is_in_report_net_section == 1)
         {
         if ($7 == "c" || $7 == "c,")
            {
            print $1, $4 >> "annotated_nets.report"
            annotated_count = annotated_count + 1
            }
         if ($7 != "c" && $7 != "c,")
            {
            print $1, $4 >> "not_annotated_nets.report"
            not_annotated_count = not_annotated_count + 1
            print "not annotated " $0
            }
         }

      if ($3 == "annotated" && $4 == "capacitance")
         {
         approaching_report_net_section =1
         }

      if (approaching_report_net_section == 1)
         {
         if ($1 == "----------------------------------------------------")
            {
            approaching_report_net_section = 0
            next_line_is_in_report_net_section = 1
            print "... found start of report_net section"
            print "... examining"
            }
         }
      }
      print "   "
      print "Summary:"
      print "========"
      print "Annotated nets:    "annotated_count
      print "Not annotated nets:"not_annotated_count  
      print "for more information see output files"
      print "not_annotated_nets.report & annotated_nets.report"
   }

 }' $*

 echo "  "
 echo "... finished."


To use it, do the following:

  1) In design compiler do a

           report_net -nosplit -transition_times >> report_file

  2) run the UNIX script (giving it the "report_file" as an input parameter)

The script will walk through the report file and examine each line.  Please
consider the following excerpt from a report_net:

> Attributes:
>     c - annotated capacitance
>     d - dont_touch
>     p - includes pin load
>
> Net           Fanout     Fanin      Load   Resistance    Pins   Attributes
> --------------------------------------------------------------------------
> NET__65            1         1      0.04         0.00       2   c, d, p

If there is an attribute 'c' then this means that a cap value has been
annotated.

Please be aware of the fact that I use the script in a slightly different
way -- you may have to make some minor modifications.  It's a good idea to
try it on a small test case.  And, of course, I can't accept any legal
responsibility for misinformation reported by this script, use at your
own risk, objects in mirror are larger than they appear, etc., etc., etc.

    - Chris Bohm
      Analog Devices B.V.                            Limerick, Ireland



 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)