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

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
 
On Jan 31, 5:36 am, fritz.k...@gmail.com wrote:
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.
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-
 
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

fritz.karl@gmail.com wrote:
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
 
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()
 
On Jan 31, 8:36 am, fritz.k...@gmail.com wrote:
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
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
 

Welcome to EDABoard.com

Sponsor

Back
Top