Debugging LVS issues such as Seed Promotions

Document created by matthew_killinger on Sep 7, 2012
Version 1Show Document
  • View in full screen mode

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.
               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