( ESNUG 405 Item 2 ) --------------------------------------------- [01/29/03]

Subject: ( ESNUG 404 #7 ) Rectilinear Blocks In PhysOpt/Apollo/Astro Flows

> For our upcoming hierarchical design chip, I see that our blocks will be
> well utilized based on the connectivity and functionality -- if our blocks
> are allowed to be rectilinear (non rectangular) in shape -- rather than
> the conventional rectangular shapes.  Even though the EDA tools out there
> claim that they can handle rectilinear shapes, I am very positive that I
> will run into a lot of implementation and integration issues in doing so.
> So I am wondering if your readers have experience in handling rectilinear
> blocks, especially with Synopsys (PhysOpt)/ Avanti (Jupiter/Apollo) tools.
>
> Some stuff that I am curious about are
>
>  1. How difficult is it in getting the pins assigned when the number of
>     edges exceeds 4?
>  2. Is power routing capable of dropping straps of different lengths
>     because of different dimensions in one direction or do I have to
>     manually alter the lengths?
>  3. Will writing out the GDSII have any problems?
>  4. Can the parasitic extractor handle arbitrary shaped blocks?
>
> Plus is there anything else that would make my life miserable here?
>
>    - Jay Pragasam
>      Brecis Communications                       San Jose, CA


From: Jon Stahl <the.one=jstahl the.many=avici pot domme>

Hi John,

We taped out a design last April using Jupiter/Physopt/Apollo and one "U"
shaped rectilinear block.  The block had pins on 6 of the 8 sides.  We taped
out with Avanti version 2000.2.3.4.0.8.4_64.

Surprisingly we found only one problem with the entire rectilinear flow.  At
the time, the Jupiter function to align the pins of adjacent blocks didn't
work on our "U" block.  I don't know if this has been fixed or not in later
rev.'s.

    - Jon Stahl
      Avici

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

From: Joerg Landmann <user=lama domain=oaktech.de cowcowcow>

John,

Here's some info about the rectilinear topic.  In one of our latest designs,
we had done a U-shape core in a PhysOpt/Apollo flow.

  - Pin assignment was semi-automatic using Jupiter and hand-placements.
    Jupiter is hard to use, so we had to do a lot of manual tweaking.

  - I can not remember any power routing problems.  But since this can vary
    so dramatically, this is not representative.

  - GDSII: no problems.

  - StarRC-XT: no problems.

But generating the keepout regions for PhysOpt (especially wiring) can be
a bit tricky.

    - Joerg Landmann
      Oak Technology                             Germany

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

From: Neel Das <mongol=neel.das horde=corrent squat qualm>

Hi John,

I wanted to send in my 2 cents in response to this query on rectilinear
clusters.

We at Corrent have the dubious distinction of having to deal with numerous
such clusters, using Cadence First Encounter (for tapeouts) and Synopsys
FloorPlan Compiler (currently in eval).  We use a PhysOpt/Apollo flow to
implementation our clusters themselves.

My advice is to avoid them altogether and simplify your life.  If you can't
do that,

  a. don't trust marketing slides from your EDA vendor: make sure you
     review pin assignments thoroughly on these.

  b. make sure whatever floorplanner you're using has manual editing
     capabilities(pin locations/geometries/layer etc).

  c. if you have 'over-the-cluster' routing channels, make sure they're
     getting built properly and are getting pushed down properly for
     cluster implementation.

  d. neither of the two design planning tools (Cadence nor Synopsys) I
     mentioned above could deal well with multiply instantiated blocks
     initially.  We've had to spin mega hours with lots of people from
     both companies concerning on this issue; fortunately the tools do
     a pretty decent job for most cases.

  e. if you have pins that are unconnected (or reserved for future logic,
     eg. scan pins), prepare to place these by hand.

  f. PhysOpt has trouble handling repeater-insertion type problems in
     some cases, for long, thin floorplans.  I've posted on this issue
     in ESNUG 385 #11.  What we do is place a max_cap constraint on the
     design: PhysOpt seems to work better with a DRC constraint rather
     than a timing constraint in such cases.

  g. a general comment: watch out for congestion!  Post-route optimization
     doesn't work well (particularly for DRCs) if there is congestion. 
     This will continue to be the case until the routing algo's within and
     outside PhysOpt converge.

  h. we didn't run into specific issues wrt extraction/ phys verification
     on these.  Our issues were in the areas of design planning and
     implementation (PhysOpt).

Hope this helps: good luck!

    - Neel Das
      Corrent Corp.                              Tempe, AZ

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

From: Andy Tan <wolf=atan pack=synopsys yacht palm>

Hi John,

PhysOpt supports rectilinear macros that is described as combination of
multiple rectangles.  Each rectangle must be modeled as overlap layers
in the physical library.  A rectilinear outline around the multi-rectangle
shape is created and areas around the shape can be used to place cells.
You specify keepout margins for the resulting rectilinear shape as well.
The rectilinear outline and keepout margins are used for placement and
legalization of leaf cells around the macros.

The variable that supports rectilinear shapes is

      set physopt_rectilinear_macros true

By default, this variable is FALSE in version 2001.08.  This variable will
be set to TRUE in version 2002.05, and onwards.
 
To handle these macros, a special library syntax is needed.  We need to use
LEF OVERLAP syntax to model the strange shapes.  This defines a "placement
blockage layer" in addition to the  standard routing layers that are
normally declared.

A MACRO OBS statement can contain an obstruction with a LAYER type of
"OVERLAP".  If a MACRO has a OBStruction of a layer with type OVERLAP, this
forms the placement obstructions for the MACRO and the MACRO bounding box
is no longer applicable for placement obstructions.  This is usually already
described in your Physical Library (LEF) that you get from your ASIC vendor.

The number of RECT statements in the OBS construct can be 1 or more.  Using
more than 1 RECT statement forms a rectilinear shape that defines the
placement region for the macro.  LEF syntax (and PLIB syntax) also allows
for the use of POLYGON statements to describe the OVERLAP outline.

1) Layer declaration LEF: 
------------------------

Declare a layer of type OVERLAP along with the other layer declarations 
in the LEF. Here a layer BLOCK_OVLP is declared, which is of type OVERLAP.

  LAYER BLOCK_OVLP
     TYPE OVERLAP ;
  END BLOCK_OVLP

2) Placement Obstruction
------------------------
Inside the MACRO definition, along with the obstruction declaration for
all the metal layers, also put the obstruction for the above declared
layer. This layer obstruction is treated as a placement obstruction.

  MACRO BLOCK
        :
        :
        :all pin location declarations
        :
        :
      OBS
          LAYER MET5;
              :
              : all metal layer obstructions in layer 5
              :
          :
          :
          :other Layer obstructions
          :
          :
          LAYER BLOCK_OVLP
              RECT 0.0 0.0 440.0 4386.0 ;
              RECT 440.0 559.875 2443.0 4386.0 ;
              RECT 2443.0 312.0 4546.0 4386.0 ;
              RECT 4546.0 2186.0 5292.0 4386.0 ;        
      END
  END BLOCK

When the LEF is converted to PLIB format, the OVERLAP statements also are
translated.  Then, when PhysOpt uses the cell, it recognizes the placement
obstruction being rectilinear and correctly handles the cell's rectilinear
outline.  You can see this by looking at the leaf cell(s) using psyn_gui.
 
    - Andy Tan
      Synopsys

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

From: Yung Wuu <teacher=yung school=synopsys ought bomb>

Hi, John,

Here's the Astro/JupiterXT flow on the blocks with rectilinear floorplans:

  . Readnetlist/expand/bind

  . Create rectilinear floorplan: axgRectiPlanner 
     . Automatic shape generation for L shape, T shape, U shape and 
       Cross shape 
     . User can draw (or using Scheme) for other rectilinear shapes 
       manually. 

  . Specify pin location in TDF file 
      rPin "urcs"     28 0.28 0.28 1 1 4.9 
      rPin "addr[10]" 28 0.28 0.28 1 2 6.02 
      rPin "addr[7]" 28 0.28 0.28 1 3 7.14 
      rPin "addr[5]" 28 0.28 0.28 1 4 234.5 
      rPin "addr[4]" 28 0.28 0.28 1 5 238.98 
      rPin "addr[3]" 28 0.28 0.28 1 6 240.1 
      rPin "addr[2]" 28 0.28 0.28 1 7 244.58 

  . Place pins on rectilinear boundary in scheme command 
      (axRectiPinPlacement (geGetEditCell)) 

  . The down stream commands support the rectilinear floorplan 
      . Power/Ground Routing (axgCreateCustomWires) 
      . placement 
      . optimization 
      . routing 
      . PARA view 
      . gdsII out 
      . netlist out 


In JupiterXT: 

  . customer can generate the above shapes during the hierarchical
    floorplanning. 
  . do pin assignment/opt for chanel-based or abut-based for the
    rectilinear shapes 
  . cut PG down for the rectilinear shapes

Hope this helps.

    - Yung Wuu
      Synopsys


 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)