A change in netlisting of coordinates for parasitic capacitors in v2012.3 release affects the CalibreView flow

Version 3

    With RLOCATION set and also  "Parasitic Placement: Layout Location"  selected on the CalibreView Setup Panel in Virtuoso,

    parasitic capacitors get unexpectedly arrayed in the Calibre View in v2012.3 but they get placed as expected in layout locations

    in v2012.2 and prior releases.
       

     

    Coordinates of parasitic capacitors are missing from the Calibre xRC parasitic netlist in CALIBREVIEW format in the v2012.3

    release when RLOCATION is set.  In v2012.2 and prior releases these capacitor coordinates are intentionally netlisted in the

    Calibre xRC CALIBREVIEW format parasitic netlist along with the parasitic resistor coordinates when RLOCATION is set.


    This difference affects the use of:


       Showing Parasitic Polygons in Calibreview

    and


       Specifying Extracted netlist Annotation of Net geometries to Calibre View

    For more information on these capabilities, consult the
    Calibre Interactive and Calibre RVE User's Manual

    The effect of the missing C coordinates is that the parasitic capacitors get arrayed in the CalibreView being generated

    instead of being placed at their layout locations, and the functionality cited above will not display the parasitic capacitors.


    In Calibre 2012.2 and later releases you can request coordinates for parasitic capacitors by adding the CLOCATION keyword to the PEX NETLIST rule file statement.


    The Calibre Interactive GUI does not yet have this feature as a user selectable item, however.


    Until this capability is provided in the Calibre Interactive GUI, as is planned for the 2013.1 release,

    the parasitic capacitors in the calibreview will be arrayed only when running the 2012.3 and 2012.4 Calibre releases.
       

     

    This does not affect Spectre netlists derived from the celibreview.  Therefore simulation steps can still be performed in this design flow as usual.



    A way around this problem exists
    by running the calibreview flow in a batch manner.


    This is done using a unix run script.


    If you have already run the calibreview flow using the Calibre Interactive GUI approach,
    you can quickly get a run script by saving the stdout log file from the "Run PEX" action within Calibre Interactive PEX.


    This is done in Calibre Interactive PEX by:


        Transcript  >  Echo to File >  my-transcript-for-Run-PEX


    The run script is obtained by searching for your rule file name in the top portion of the transcript:


        %  head -15  my-transcript-for-Run-PEX   |  grep -i _rules45_ > my-run-script
        %   cat my-run script
        $MGC_HOME/bin/calibre -lvs -hier -hcell hcells -spice svdb/opamp.sp  _rules45_
        $MGC_HOME/bin/calibre -xrc -pdb -rcc _rules45_
        $MGC_HOME/bin/calibre -xrc -fmt -all _rules45_  
        %


    Using your usual UNIX editor, add the CLOCATION keyword to the PEX NETLIST rule file statement within the rule file cited in your run script. 

     

    In the example above the rule file is called: _rules45_.


    Edit this line:


        % grep -ni "PEX NETLIST" _rules45_ | grep -i CALIBREVIEW
        21:PEX NETLIST "nets45.cv" CALIBREVIEW 1 SCHEMATICONLY RLOCATION RWIDTH RLAYER
        %
        

    Change it by adding CLOCATION on the right end of the statement.


    After editing it should look like this:


        % grep -ni "PEX NETLIST" _rules45_ | grep -i CALIBREVIEW
        21:PEX NETLIST "nets45.cv" CALIBREVIEW 1 SCHEMATICONLY RLOCATION RWIDTH RLAYER CLOCATION
        %


    Now, run the runscript:  my-run-script  in the 2012.2 or later Calibre release


        % ./my-run-script
        %


    This action will produce the parasitic extraction netlist from Calibre  xRC called by the name in the PEX NETLIST statement. 

    In this example the Calibre xRC output  file is called:  "nets45.cv"


    It contains coordinates for parasitic capacitors as can be seen using this method:


        % grep -i "c " nets45.cv | grep -vi cc_ | head -2 | tail -1
        mr_pp 'c "ciNET37_48" '("c_22_n" "0") 40.0468f '( ("location" "33.24 19.79") )
        %


    In Virtuoso you create the CalibreView from this Calibre xRC netlist by entering into the CIW the following command:


         'mgc_rve_create_cellview("./nets45.cv")'


    This action pops up the Calibre View Setup Panel in Virtuoso. 


    When you now select:  "Parasitic Placement: Layout Location"  on the CalibreView Setup Panel
    and click OK to generate the Calibre View as you do normally,
    you will see that the capacitors in
    the CalibreView will have layout locations instead of being arrayed.