1 April 2021 at 21:33 #6433lumicoParticipant
I am using the interconnect.euler() function to generate Euler bends of arbitrary angle. I have found that when the bend angle is set to certain angles (in this example, I will say 25 degrees), the pin at the lower radius of curvature end does not align with the edge of the waveguide – thus not allowing the Euler cell to connect to other cells.
Here is the bend (500nm width, 2um minimum bend radius, 25 degrees):
Here is a zoom in of the lower radius of curvature end pin:
I am interested in aligning this pin with the edge of the waveguide so that it can connect to other guides. Any help would be greatly appreciated!1 April 2021 at 22:25 #6435RonaldKeymaster
This is the same/similar effect as the snapping discussed in this post.
The delta is in the order of the grid resolution or smaller.
The simplest way to align the pin with the end line is to add a polygon point to the waveguide at the pin location. This is something that may be added to Nazca, mainly to avoid this visual misalignment (mostly harmless). Note this phenomena is not specific for the Euler bends but something that tends to show up for floating point positioning and subsequent snapping to a grid.
The above is optically and process-technically mostly not an issue, but floating point rotations and/or translations in combination with hierarchical (gds) design can lead to (grid resolution) notches after flattening a design for mask manufacturing. In silicon photonics the DRC tends to be relatively unforgiven and it flags these notches (they can be waived, typically). The reason is that these DRC rules are based on previously existing “multiples of 90 deg” kind of geometries and not on photonic floating point geometry. In Nazca we created methods that force cells to ultimately snap polygons to the same top cell grid. These are not in the public Nazca release branch at present.
Ronald1 April 2021 at 22:49 #6436lumicoParticipant
I saw that post, but couldn’t figure out how to use growx/growy to benefit without changing the dimensions of my waveguide. The dimension changes are less than the grid resolution, but I’d like it to be correct before sending anything out.
I am also not sure how to go about adding polygon pins. Could you provide any code snippets on this? Perhaps the grow too, if it’s not trouble?
Thanks!1 April 2021 at 23:58 #6437
- You must be logged in to reply to this topic.