( ESNUG 315 Item 3 ) ---------------------------------------------- [3/24/99]

From: david_johnson@paging.mot.com (David Johnson)
Subject: A Workaround Script For The Design Compiler check_design Bug

John,

I definitely get some useful information from ESNUG (and I appreciate the
humor too!) so I'd like to contribute something.  I ran into a problem
with Design Compiler check_design.  For hierarchical designs, check_design
does not warn about an output port being not connected _external_ to the
cell if the port is connected _internally_ to the cell to an output and
an input.   See STAR 69047 (acknowledged as a BUG).

Now Verilint or other similar tools might catch this problem, but for
designers that rely only on Design Compiler for check_design, I have
a work-around script that might help them until Synopsys fixes the bug.

  echo "exeternal pin connection report for " +  _design > 
  _external_pin_report_file
  echo "---------------------------" >> _external_pin_report_file
  echo "" >> _external_pin_report_file
  current_design _design
  _hier_cells = {}
  if (_recursive == 1) {
     _hier_cells = filter(find(-hier,cell, "*"),"@is_hierarchical == true") > 
  /dev/null
  } else {
     _hier_cells = filter(find(cell, "*"),"@is_hierarchical == true") >
  /dev/null
  }

  foreach(_cell, _hier_cells) {
     echo "checking CELL " + _cell >> _external_pin_report_file
     _pin_errors = 0
     foreach(_pin, find(pin, _cell + "/" + "*") {
        all_connected(_pin)
        if (dc_shell_status == {}) {
          get_attribute _pin pin_direction
          foreach (_direction, dc_shell_status) { }
            echo " (WARNING) no external connection for" _direction "port" 
          _pin >> _external_pin_report_file
          _pin_errors = 1
        }
  }

  if (_pin_errors == 0) {
     echo "  all pins connected externally" >> _external_pin_report_file
  }
     echo "" >> _external_pin_report_file
  }


User specified variables:
 
   _design = top-level design name
   _recursive = 1: run check on all cells recursively through the hierarchy
              = 0: top level cells only
   _external_pin_report_file = report file name
 
examples:
 
   dc_shell> _design = cpu
   dc_shell> _external_pin_report_file = ../report/cpu.external_pins.rpt
   dc_shell> _recursive = 0
   dc_shell> include "check_design_one_level.scr"

Use Synopsys Design Compiler 1998.08 (possibly earlier versions as well)

    - Dave Johnson
      Motorola



 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)