Debugging LVS issues such as Seed Promotions

Version 1

    Seed promotion
    Hierarchy manipulation
    Pseudo cells
    ICV cells
    Device push down
    Layer derivation



    Here is a technique to look at layers involved in hierarchical manipulations to facilitate debug.


    1)  Identify layers of interest, for example, view the logfile and look at the SEED PROMOTION
         statement.  Note the seed layer and layer touched.


    2)  Use Calibre DRC to write out the layers to an OASIS (or GDS) database.
         a)  Write an SVRF file to be included in the main LVS rules file with these statements.
              1)  DRC RESULTS DATABASE drc.oas OASIS PSEUDO
                   DRC MAXIMUM RESULTS ALL
                   seed_layer {COPY seed_layer} DRC CHECK MAP seed_layer OASIS 3000
                   layer_touched {COPY layer_touched} DRC CHECK MAP layer_touched OASIS 3001


                    (Note, PSEUDOis very important to preserve hierarchy exactly matching LVS.  And OASIS
                    output is preferred simply because the layer names are listed in the DESIGNrev layer list.
                    Make sure to pick layer numbers that are not already used in the LVS rules file.)
              2)  List hcells used in LVS in the include file.  Use HCELL or LAYOUT PRESERVE CELLS LIST.
              3)  Include the file in the LVS rules file.

         b)  Write another SVRF file to be included that copies out all the original layers from the LVS run
              to exactly reproduce hierarchy.  Below is a useful script to do this.  Execute "layrul rules > z"
              and include z in the original LVS rules file.


         c)  Comment out any rule checks in the LVS rules file (do not use DRC SELECT CHECK!)  (Search
              for curly braces to find rule checks.)


    3)  Execute Calibre
              calibre -drc -hier -turbo rules | tee drc.log


    4)  Load the output OASIS file into DESIGNrev and turn layers off and on, stepping through the
         hierarchy using > and <, to see any interactions that might explain the promotion or hierarchical


    5)  Use Calibre Interactive to show tree derivation for layers of interest.  COPY these layers out to
         the DRC OASIS database too.


    # Generate drc checks and drc check map statements from LAYER statements in a rule file. 
    # Example: layrul rules 
    # Note: it may be necessary to add names of layer sets. 
    cat $1 | grep -i '^ *LAYER ' | grep -v -i ' MAP ' | grep '[ ][0-9]' | awk '{ print "drc check map " $2 " " $3 }' > zlayrul1 
    cat $1 | grep -i '^ *LAYER ' | grep -v -i ' MAP ' | grep '[ ][0-9]' | awk '{ print $2 " { copy " $2 " }" }' > zlayrul2 
    cat zlayrul1 
    cat zlayrul2 
    rm zlayrul1 zlayrul2