Is there anyway to compare two GDS files layer by layer?

Discussion in 'Cadence' started by fritz.karl, Jan 31, 2007.

  1. fritz.karl

    fritz.karl Guest

    Hi,
    Has anybody developed a way, using Cadence or not to compare two sets
    of GDSII data? I would like to compare what I have done versus what I
    had, making sure that I have only changed the layers that I wanted to,
    and that I haven't changed any other layers by accident.

    thanks
     
    fritz.karl, Jan 31, 2007
    #1
  2. fritz.karl

    jayl-news Guest

    Of course. Every DRC program in existence (one way or another) can,
    layer-by-layer, read data from each of two GDSII files and XOR them.

    In Assura, the hook is layerDefs2(). In Hercules, the hook is
    CHECK_POINT{} and COMPARE_GROUP{} (very cool). I've never
    done it in Calibre. In all cases, if you go to the vendors customer-
    help-site
    and search for something like "xor compare", there will be an app note
    of some kind.

    -Jay-
     
    jayl-news, Jan 31, 2007
    #2
  3. Usually you can do this with DRC tools which are operate at GDSII level.
    For Mentors Calibre the command is 'compare_gds'.
    I believe Cadence Assura offers such capability as well.

    Bernd
     
    Bernd Fischer, Jan 31, 2007
    #3
  4. fritz.karl

    Andy Guest

    For Cadence LE function
    (0) loop LPP pair by pair
    (1) leLayerOr() from source 1 and source 2
    (2) leLayerXor()

    For Calibre
    (1)gdsComp buildin Calibre RVE
    (2)use XOR in Calibre
    LAYOUT SYSTEM
    LAYOUT SYSTEM2
    LAYOUT BUMP2

    For Assura
    (1) use 2dbXor
    layerDefs()
    layerDefs2()
    geomXor()
     
    Andy, Feb 1, 2007
    #4
  5. fritz.karl

    gerry Guest

    Note that you need to be VERY CAREFUL when layers are overloaded.

    GDSII data is typically found on layer numbers with and additional
    layer type number.

    If your data is restricted to one ( or a few) types, the methods
    described are straight forward. I have written several EXOR programs
    that show the extents of layer changes
    for Chip revisioning.

    Assura ( and Dracula, Vampire, Caliber, Hercules etc. )
    can (by default) glom together several undefined layer types onto the
    default
    layer type 0 (Zero).

    If you have this type of situation, I cannot stress how important it
    is to test
    all possilble layer types in the EXOR code.

    My code generally created 3 sets of DATA per layer/type pair

    which I refer to as:

    A_AND_B ... ( this is where all the data should be if the two files
    are identical )
    A_NOT_B ... ( This is where data is/was in A and is not in B )
    B_NOT_A ... ( This is where dats is not in A, but is in B )

    Usually people consider A to be the intial design and B to be the new
    design.

    I have also created a layer/pair plotting tool that would show where
    the additions and deletions were done.
    ( usually with:
    a borderless cyan A_AND_B
    a black_outlined_magenta A_NOT_B
    a back outlined yellow B_NOT_A )
    and then we have graphical evidence of the changes.
    (only plotted when changes are only expected in a known area. )

    Tools also were written to check that changes were limited to expected
    areas as
    very tiny polygons are not always visible on plots!

    YMMV
     
    gerry, Feb 20, 2007
    #5
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.