Forum Replies Created

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • in reply to: Finding the width of a pin #6432
    LaserJon
    Participant

    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.

    in reply to: Create trial cells when using minimizer algorithm? #6431
    LaserJon
    Participant

    To 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

    in reply to: Finding the width of a pin #6430
    LaserJon
    Participant

    Dear Ronald,

    Thank you! This also won’t be much effort to update once the new version comes out with the radius attribute.

    Jon

    in reply to: Finding the width of a pin #6424
    LaserJon
    Participant

    Hello, 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
    • This reply was modified 2 weeks ago by LaserJon. Reason: html pasted code didn't look right
    • This reply was modified 2 weeks ago by LaserJon.
    in reply to: Finding the width of a pin #6419
    LaserJon
    Participant

    Thanks 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

    in reply to: Procedure to create a flexible interconnect type #6286
    LaserJon
    Participant

    Hi 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

Viewing 6 posts - 1 through 6 (of 6 total)