How to produce distributed RCC net models for floating test shapes with Calibre xRC.

Version 1

    Lumped capacitance for test shapes in a layout can easily be  produced by running a C only parasitic extraction using Calibre xRC.

    An example run script to achieve this is shown below in runx-c.

     

    Floating net capacitance can  be obtained running C only parasitic extraction with the following settings made  prior to the PEX run:

     

    In Calibre xRC releases:

        Prior to  v2007.2 set the environment variable:      PEX_EXTRACT_FLOATING_NETS   to   YES.
        v2007.2 through v2008.2 use SVRF statement:   PEX FILL  HANDLING FLOATING
        v2008.3 and following use SVRF  statement:       PEX EXTRACT FLOATING NETS

     

    In order to extract R, RC or RCC net  models for floating nets, a direction of current flow must be established  within each floating polygon net shape.

     

    Establishing a direction of current flow requires further  preparation of the data.

     

    For  example:

     

    Consider a set of four identical shapes that are metal4 rectangles in a layout cell, the larger  dimension being the horizontal one.

     

    In  this example there is no hierarchy, just the testcase cell containing the test  shapes and text.

    In this testcell layer 4 is metal4 and each shape has a text on metal4  located on the shape.

    The texts are A, B, C, D each located on a different  shape.

     

    The objective in this example is  to produce C, R, RC, and RCC net models for these test shapes.

     


    One method to produce  distributed net models for isolated test shapes is to provide a
    dummy device at the end of each shape.  This connects the test  shape to a device on each end
    allowing Calibre xRC to  determine a current flow direction and render an RC or RCC or R-only net model  for the test shape.

     

    You can  achieve this by adding three statements to your rule file:

     

       Layer testlayer 3333
       Device testdev testlayer metal4(I)
        CONNECT testlayer metal4

     

    You will also  need to add a 1 micron wide shape on layer 3333 across the end of each
    test polygon spanning the entire dimension of the shape on that  end.

     

    There is nothing special about  this added device shape being 1 micron wide. 

    It can be any reasonable desired  width, lower bounded by one database unit.

    It should be made to span the entire  width of the metal4 shape in order to causes Calibre xRC

    to consider the resistance from edge-center to edge-center across each metal4  shape.

     

    If the texts A, B, C, D happen  to be on a port layer, they will
    appear as ports of the top  level cell, but it is not necessary to
    this exercise that  they be ports.

     

    The device, testdev, is  a dummy device using a non-design layer called testlayer on layer 3333.
    The device has no property computation section.
    It only has one pin called "I" on metal4 so it can connect to  the metal4 shapes

     

    There are run scripts  shown below:  runx-c, runx-rc, runx-rcc, runx-r  

     

    If you run runx-c you will get lumped intrinsic capacitance in the  top_lpe_lumped.net, and coupling
    capacitance in the  top_lpe_lumped.net.TOP.pxi file.

     

    runx-r     will produce R   netmodels in the *.pex file.
    runx-rc   will produce RC netmodels in the *.pex file.
    runx-rcc  will produce coupling capacitors in the *.pxi file as well as
    intrinsic caps within the RC net models in the *.pex file for each  net.

     


    runx-c
    -------------------------------------------------------------------------
    #!/bin/csh -f

     

    setenv  MGC_HOME  <path-to-Calibre-xRC>
    setenv PATH  $MGC_HOME/bin:$PATH

     

       /bin/rm -r  svdb  *.log
     
    calibre -xrc  -phdb       rules >&! phdb.log
    calibre -xrc -pdb    -c   rules >&! fmt.log
    calibre -xrc -fmt    -c    rules >&! pdb.log
    -------------------------------------------------------------------------

     


    runx-r
    -------------------------------------------------------------------------
    #!/bin/csh -f

     

    setenv  MGC_HOME  <path-to-Calibre-xRC>
    setenv PATH  $MGC_HOME/bin:$PATH

     

       /bin/rm -r  svdb  *.log
     
    calibre -xrc -phdb           rules >&! phdb.log
    calibre -xrc -pdb   -r        rules >&! fmt.log
    calibre -xrc -fmt    -r       rules >&! pdb.log
    -------------------------------------------------------------------------

     


    runx-rc
    -------------------------------------------------------------------------
    #!/bin/csh -f

     

    setenv  MGC_HOME  <path-to-Calibre-xRC>
    setenv PATH  $MGC_HOME/bin:$PATH

     

       /bin/rm -r  svdb  *.log

     
    calibre -xrc -phdb         rules >&! phdb.log
    calibre -xrc -pdb   -rc    rules >&! fmt.log
    calibre -xrc -fmt    -rc   rules  >&! pdb.log
    -------------------------------------------------------------------------

     


    runx-rcc
    -------------------------------------------------------------------------
    #!/bin/csh -f

     

    setenv  MGC_HOME  <path-to-Calibre-xRC>
    setenv PATH  $MGC_HOME/bin:$PATH

     

        /bin/rm -r  svdb  *.log
     
    calibre -xrc -phdb           rules >&! phdb.log
    calibre -xrc -pdb   -rcc     rules >&! fmt.log
    calibre -xrc -fmt    -rcc     rules >&! pdb.log
    -------------------------------------------------------------------------

     


    A second  method to produce net models for test structures is to connect them between the  pins of cell instances.

    Such cells could be empty cells.
    In  such a scenario, the test shapes would be in the top level cell.
    The empty cells would be instantiated in the top cell also,  with the test shapes connecting between them.

    The same run scripts could be  used in this second method.