( ESNUG 309 Item 2 ) ---------------------------------------------- [1/27/99]

From: erikt@bnr.ca (Erik Trounce)
Subject: Any Way To Speed Up This DC Script To Find Clock Domain Crossings ?

I've got an existing design and I need to find all of the clock domain
crossings in order to insert lockup latches for DFT.  I could probably read
through the code and find most of them, but I was hoping to automate it
and catch all of them.  I've written a dc_shell script that will do this,
however the run time for this script is several days, even on an Ultra-10.

Here is the script I am currently running (for the past 14 hours):

 ckList = all_clocks()

 foreach (ck, ckList) {
 echo "Investigating" ck "registers..." >> clock_xdomain_list

 Dplst = {""}
 foreach (tock, ckList - ck) {
 Dplst = Dplst + all_registers (-clock tock -data_pins -edge_triggered)
 }

  foreach (Qpin, all_registers (-clock ck -output_pins -edge_triggered)) {
    foreach (fanout, all_fanout (-from Qpin -flat -endpoints_only)) {
      foreach (Dpin, Dplst) {
        if (fanout == Dpin) {
          echo "Path:" Qpin "to" Dpin "exists" >> clock_xdomain_list
        }
      }
    }
  }
}

Anybody have a faster script that can do the same thing?  It can be a
dc_shell script, perl or dc_perl or csh or whatever would be great.  It
just needs to be complete and fast(er).

    - Erik Trounce
      Nortel (Northern Telecom)                   Ottawa, Ontario, Canada



 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)