Home Forums Nazca rebuild cell Reply To: rebuild cell

#6033
paul
Member

Hi Ronald,

Thanks for your answer. Yes your solution works and I have been using the same idea so far, only that it isnt very flexible as export_gds() must be called whenever the layermap changes.

Say that I have a cell, CellA, which must be placed at different locations on the wafer and on different layers. My idea was to create a generic CellA on a dummy layer and then instantiate it on the approriate layer.

For instance, if I wanted to create an array of cells based on CellA placed on different layers, the code would look like:

with nd.Cell(name='CellA') as cellA: 
    nd.strt(length=2, width=2, layer=0).put()

grid_points = [(0, 0), (4, 0), (0, 4), (4, 4)]

for i, (x,y) in enumerate(grid_points):
    # cellA.put(x,y)
    new_cell = cellA.rebuild(layermap={0:i}) # this is the intended usage, doesnt currently work
    new_cell.put(x,y)

nd.export_gds()

where each “copy” of cellA would be on a different layer.
Of course, there are more efficient solutions for such a simple design, but I’d like to use this mechanic for importing generic cells from a gds file and do the layermaping in nazca. For now, I’m using something like :

generic_cell = 'path_to_generic_cell.gds'  # a gds file containing generic cell placed on layer 0

for i, (x,y) in enumerate(grid_points): 
    new_cell = nd.load_gds(generic_cell, layermap={0:i})
    new_cell.put(x,y)

This isn’t really efficient as I must reimport the file for each layer. That’s why I thought that importing it once and remapping in Nazca would be a better idea.

Thanks,

Paul