Forum Replies Created
-
AuthorPosts
-
LaserJonParticipant
Adding for anyone using the forum as a reference, this line from the example above can be replaced:
cell.properties[‘parameters’][‘length’] = pathlength
Instead use:
cell.length_geo = pathlength
This enables the path length to be used in the nazca.trace module to find total path lengths of several elements’ paths.
LaserJonParticipantTo add some more information:
I set up a problem using trial cells with the purpose of finding path length & exact output port location. The approach does work. But I still haven’t figured out how to remove a cell from the netlist.
I get very many warnings like this:
WARNING: netlist.py: ND-342: Duplicate cell name in nd.Cell(name=’trial bot’) renamed to ‘trial bot_1506’.I realized that cell.close() is automatically called when I use the “with nd.Cell(…) as cell:” formation, so that is not the method I’m looking for.
Standard python “del cell” does not seem to work.
The unused trial cells don’t show up in my GDS hierarchy, so they aren’t increasing my GDS file size. The only issue remains that if I adopt this practice of making trial cells and build bigger layouts with it, I’ll run out of memory or have slower compiles.
Thanks, Jon
LaserJonParticipantDear Ronald,
Thank you! This also won’t be much effort to update once the new version comes out with the radius attribute.
Jon
LaserJonParticipantHello, I have a follow-on question here.
I’m trying to do some interconnects where I make all curvature changes continuous, and log the total path length in the cell. Below is an example of how I did it.
Do you see any issue with adding to the dictionary cell[‘properties’]? For instance I was afraid it might mess up use of the @hashme decorator.
Thanks, Jon
with nd.Cell(hashme=True, autobbox=True) as cell: curve = nd.Polygon(points=poly_pts, layer=layer).put(0) nd.Pin('a0', width=width).put(0, 0, 180) nd.Pin('b0', width=width).put(x1, y1, ang1) nd.put_stub() cell.properties['parameters']['curvature'] = {'a0':curve_in, 'b0':curve_out} cell.properties['parameters']['length'] = pathlength
LaserJonParticipantThanks Xaveer. I’m not sure how I missed this. I probably tried it on a pin where the width was not defined, and got ‘None’ back. Anyway I will use this from now on.
Jon
LaserJonParticipantHi Ronald,
I had a chance to try replacing all my custom curves with Vipers. It worked in some cases, but there’s a case for which it doesn’t apply:
My code has a flag called “flat” which effectively makes the inputs and outputs horizontal. I had drawn a taper which can be described as follows: Inputs and outputs are different widths. One waveguide edge is a straight line. The other waveguide edge is a parabolic curve.
Would there be a way to render this using the standard Nazca library of functions?
Also: Do ports store curvature information, so that if I do an IC.Interconnect, does it automatically match the curvature of the ports it is connected to?
Thank you!
Jon
-
AuthorPosts