( ESNUG 385 Item 11 ) -------------------------------------------- [12/19/01]

Subject: ( ESNUG 382 #9 ) PhysOpt/DFT Spends A *Long* Time Fixing DRC's

> I want to alert your readers to the recent changes in the DFT Compiler /
> PhysOpt flow in the new 2001.08 release.
>
>     - Vandana Kaul
>       Synopsys, Inc.                             Mountain View, CA


From: "Neel Das" <neel.das@corrent.com>

Hi John,

Some time back we saw this update from Synopsys on the new insert_dft flow.
We're seeing some interesting things in our flow, and I wanted to check if
some other readers have seen similar stuff, and could (of course!) suggest
some workarounds...

  1) insert_dft seems to spend a *long* time, fixing DRC violations.  We
     are getting better runtimes and lower gatecounts with insert_scan
     followed by a 'physopt -incremental -eco'.

  2) One of our clusters (floorplan units) needs to have

       a) a set of pre-placed registers, which get placed in Apollo,
          then show up in the PDEF's as FIXED cells
       b) also a set of registers that we place with 'set_bounds', and
          are hard bounded.

     In both (a) and (b), the registers inherit the dont_touch attribute.
     insert_scan then skips these cells during scan stitching: which is
     not good!

To work around (a), I removed the FIXED attributes from the PDEF file, then
applied 'set_cell_location' for each register I wanted in a specific
location.  Then I ran insert_scan followed by 'physopt -inc -eco'.  The cells
did not remain at *exactly* the original spots, but they're close enough.

I don't have a workaround for (b) yet...  any pointers, anyone??


Here's an interesting aside:

If I do a 'report_cell -verbose -physical' on one of the cells from (a)
or (b), I can see that dont_touch is set to TRUE.  

  ****************************************
  Report : cell
          -physical
          -verbose
  Design : ddr_oeddr
  Version: 2001.08-1
  Date   : Tue Dec 11 00:39:45 2001
  ****************************************

  cell 'ddrc/io/address_0/ffr':
    Loc:             (5095.20, 183.36)    ORIENT:           180-mirror
    Area:               48.384
    dont_touch:         TRUE
    blah blah blah ...
    1

However, if I do a report_attribute or a remove_attribute, PhysOpt reports
that a dont_touch attribute DOES NOT exist on the cell!

    psyn_shell-t> get_attribute ddrc/io/address_0/ffr dont_touch
    Warning: Attribute 'dont_touch' does not exist on cell
             'ddrc/io/address_0/ffr'. (UID-101)

I'm waiting to get Synopsys support respond on this one...

    - Neel Das
      Corrent Corp.                              Tempe, AZ


 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)