( ESNUG 299 Item 8 ) ---------------------------------------------- [9/21/98]

Subject: (ESNUG 296 #9 297 #10) Cadence's PB-OPT Trounces reoptimize_design

> With regard to Cadence's PB-OPT, I implemented this tool flow (in a former
> life) and used it on very high performance designs.  The results seemed to
> match Cadence's claims and this option enabled me to achieve a one-pass,
> timing-convergent, design flow from RTL->layout.  This additional feature
> allowed me to replace my  previous methodology, which was to iterate
> (sometimes > 15 times) through Design Compiler's reoptimize_design and
> Cell3/Silicon Ensemble's ECO place and route.
>
>   - Brian Arnold
>     Fusion Networks Corp.                       Longmont, CO


From: Chakki Kavoori [chakki@Aureal.com]
To: Brian Arnold <briana@SiTera.com>

Hi Brian

	I read your response on the ESNUG post regarding generating gcf files
from Synopsys constraints file.  I was just curious if you used the sdf
constraints file, or was it some other report that Synopsys generated?
(could you be more specific on the command, too?)

	We're just starting to migrate to the Cadence recommended Timing Driven
Flow (including PB-Opt) - one of the things I find missing from PB-Opt is
an equivalent of the Synopsys "don't touch" command -- where I know better
than to resize some of the elements because I have them "spiced".  Did you
face any such  issues/problems?

	Were you using Silicon Ensemble (SE) in a flat mode or did you do any
hierarchies -- and if you used hierarchies -- did you use Design Planner (DP)
as the floor planner?  I'm interested in finding out about your experiences.

  - Chakki Kavoori
    Sr. Design Engineer,
    Aureal Semiconductor                              Fremont, CA

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


 [ Editor's Note: Before Brian answers these questions, I thought I'd
   provide a set of definitions for the Synopsys users to better understand
   the Cadence tools being discussed.

      DP - Design Planner.  DP typically refers to LDP.

      LDP - Logical Design Planner.  Reads in Verilog and produces groups
      and a pin placement that assists QP in doing a better job.  It also
      generates custom wire load models for you.  This package is priced
      in the "arm or leg" realm.

      PDP - Physical Design Planner.  Incorporates the functionality of LDP
      and provides an interface for you into SE (Silicon Ensemble), the CCT
      router (Cooper & Chan Technologies) as well as Cadence's back end
      analysis tools (I think).  This package is priced in the "arm & leg
      plus your first born child" realm.

      SE - Silicon Ensemble.  It is the replacement for Cell3 and includes
      QP (Quadratic Place) and Wroute (Warp Router).  PBOPT (Placement Based
      Optimization) is an option to SE as is CTGEN (Clock Tree Generation).
      This package is priced in the "arm & leg plus your first born child
      plus the Devil gets your soul" realm.

   Hope this makes the following reply more understandable now.  - John  ]


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

From: Brian Arnold <briana@SiTera.com>
To: Chakki Kavoori [chakki@Aureal.com]

Chakki,

The great thing about using the GCF format is you do not need an SDF
file.  The GCF format accomplishes the same result as does the Synopsys
constraint file.  GCF defines clocks, input and output delays, input
slopes and output loading, then the internal timing engine (Pearl in the
case of PBOPT) performs the appropriate calculations between all timing
begin/end points, which is comparable to Design Compiler calculating
timing arcs during a compile.  However, Pearl/PBOPT is also able to
analyze the routing of the wires and get a very good idea of the load on
each wire and appropriately size/split/move_cells on each net.  The
default mode for PBOPT is to generate an RSPF file from a global route,
however, I found this to not be as accurate as I needed.  Therefore, I
modified the PBOPT flow so it used an RSPF file from a first pass timing
driven P&R run.  Therefore, the layout data seen by PBOPT was as
realistic as possible.  The entire tool flow from HDL->GDS does become
rather complex when you have to maintain consistency between the HDL and
Synopsys db files and schematics and artwork layout, but it is manageable
just as long as the PBOPT Verilog writer produces the results you need.

In order to reduce the amount of complexity seen by the users, I wrapped
this tool flow (from HDL->Synthesis->floorplanning->P&R->GDS) into a GUI
that allowed a designer to "easily" navigate their block through all the
steps.  I didn't think of this idea (kudos to Steve Rich), I just
implemented my own version (thanks for the toolkit Dave Clark).  When you
have a lot of people using a complex tool flow, this is a great path to
take.  The amount of up front work, really pays off in the amount of
day-to-day support you have to provide and the increase in productivity
seen by the designers.

Getting back to your SDF question, I do not personally like to use SDF
as it has three main problems:

   1) The files take a long time to create/read
   2) The file size is huge for large designs
   3) SDF misses paths and does not provide complete coverage, which leads
      to problems for timing driven placement

I know most of the Synopsys constraint commands has an equivalent in the
GCF realm, but I don't know about dont_touch, I'm sure it does but I
don't have my GCF spec handy, call your local PBOPT AE and ask him for a
GCF spec.  I don't have an example of a GCF file for you or I would send 
it.  As I did just change jobs I couldn't take any of this with me, bummer.

No, I didn't use DP as the floorplanner, I wrote my own that helped designers
create a custom floorplan on a block-by-block basis.  My wrapper around the
Silicon Ensemble (SE) flow extracted the floorplan information and fed 
it into SE during a floorplanning step.  This allowed a designer much 
tighter control over what their block looked like.  With this capability 
they could insert things into the floorplan like pre-placed wires, 
preplaced cells, blockages, groups and regions very easily.  The 
composed blocks were then connected together at a higher level and 
eventually routed with the full chip.  LDP didn't help me out at all, 
mostly because of the type of designs that I ran through SE.  However, 
for very large designs I can see how LDP would be beneficial as it has 
capabilities to automatically determine pin placements, create groups 
and run through QP, and I was told that PDP is a good interface if you 
continue on and use CCT for your top level route.

The designs I fed into SE were flat, but in general, the designs were 
very hierarchical.  The process I used that generates DEF flattens the 
hierarchy to one level.  However, those blocks that did utilize PBOPT 
were flattened in synthesis (which may have alleviated a lot of problems 
for me, I don't know).  Therefore, I'm not sure how good of a job the 
PBOPT Verilog writer does at generating hierarchical Verilog as I never 
needed to test it out.

  - Brian Arnold
    SiTera Incorporated                               Longmont, CO



 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)