Home Forums Nazca Import GDS with cell name already in layout Reply To: Import GDS with cell name already in layout


Dear Douglas,

In GDS a cellname must be unique. It’s the ID.

Nazca always avoids two different cells having the same name. When you load a GDS file it may have any cellname in there, possibly conflicting with an existing cellname in your design. For more info on what happens see

import nazca as nd

Which shows this and more (v0.5):

load_gds(filename, cellname=None, newcellname=None, asdict=False, select=’top’, layermap=None, cellmap=None, scale=1.0, prefix=”, instantiate=True, native=True, bbox=False, bboxbuf=0, connect=None, flat=False)

Load GDS cell ‘cellname’ (and its instances) from ‘filename’ into a Nazca cell.

By default, load_gds returns a single cell in the specified gds file.
However, when using a gds file as a library, i.e. accessing multiple cells
in the file individually, it is more efficient to call, load (and internally)
store the gds file only once by setting asdict=True. This makes makes load_gds
return a dictionary with a references to each Cell by name:

{‘topcells’: {cellname: Cell}, ‘subcells’: {cellname: Cell}}

This method checks for cellname clashes, i.e. a cell(tree)
loaded into the layout can not contain a cell name that already exists
in the layout. There are three ways to avoid name clashes in case they occur:

1. Set a ‘newcellname’: changes only the name of the top cell;
Note ‘newcellname’ is ignored if a is provided,
i.e. add any a topcell renaming to the cellmap in this case.

2. Provide a ‘cellmap’: maps original cell names one-by-one to new cell
names. Cells names omitted will not be renamed.

3. Provide a cell name : applies to all cells in a branch,
except those in ‘newcellname’ or ‘cellmap’.

Note, if you need to create a building block from GDS with pins and stubs,
and you have the pin and xsection info available already (for example in a
file) then you may prefer to use method ‘load_gdsBB’ instead.