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
print(help(nd.load_gds))
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.
…
Ronald