13 December 2019 at 15:53 #5912
I’m looking at Nazca as an alternative to the software I’ve been previously using. I’d like to know if it is possible to easily create a negative pattern of the structures/polygons.
In my current software (PICwriter), I can simply create an MMI structure and give it a trench width. It generates the inner structure and outer trench structure on separately defined layers which can be subtracted (in PICwriter or in KLayout). I’ve seen the xsection tutorial, which does what I want on waveguides. But I don’t see an equivalent method for polygons.14 December 2019 at 13:27 #5917
There is a discussion related to polygon inversions in this postand on growing polygons in this post. Personally, I consider trenching as you describe more a mask post-processing step and I would keep/define both polygon layers at first and do the logical operation at the end. Even though Nazca has its own gds manipulation, at the moment it does not (have to) dive too deep into the specifics of polygon boolean operations as this step can be handled very well by Kayout as a post-process without loosing any design efficiency or inconvenience. Your flow may differ though.
When checking out the PICwriter tool you mentioned, I see it uses gdspy. I guess gdspy handles the polygon inversion in that case. I haven’t used gdspy but I guess you can send the polygons to it, e.g. from Nazca, and get the inversion back. This method should most certainly be doable utilizing Klayout, which can be imported as a Python module. A little code wrapper can make that syntax Nazca conform so you do not have to deal with two interfaces.
Ronald18 December 2019 at 16:47 #5924
The growing polygons example looks promising. I’ve managed to create a polygon (MMI) and waveguide on one layer, grow the polygon on a second layer and do a layer subtraction in KLayout. It’s not a straight forward as PICWriter, but then I’m unable to create polygons in PICwriter, so it’s a small tradeoff.
Thank you for your help.19 December 2019 at 16:26 #5941
For the sake of completeness, you could do the full inversion in Nazca and I created a tutorial which reproduces roughly the Inverted MMI in the picture you posted.
Still, I would prefer to keep the waveguide and trench-overlay layers during the design process and do a post-design mask boolean operation in Klayout, i.e. do “Edit / Layer / Boolen operation” on the original waveguide and trench layer, or script that operation.
You must be logged in to reply to this topic.