Acknowledgements
We encourage you to put the Nazca logo in your mask layout and share a picture with us if you can.
Show your appreciation for Nazca Design by acknowledging it in your work, publications or materials with the following sentence:
Nazca Design was used to generate the mask layout in this work.
2024-09-23: nazca.0.6.0
– Automated ribbon interconnect
– GDS instances that provide their exact location in the source code
– Pathtracer netlist visualization
– And over 100 others!
2021-04-27: nazca.0.5.13
including information on 0.5.12.post releases leading up to 0.5.13
2020-12-07: 0.5.12.post1:
- -Connections:
- – Added the option to copy a Node “in place” with Node.copy(inplace=True), i.e. into the cell of the source node instead of into the active cell.
- – Updated pathfinder to handle callable edges.
- – Added compact model integration to mask_elements strt and bend methods.
- – Added log warning message when using a negative length in strt().
- Nazca tree and export:
- – Added branch ID to named tuple returned by cell_iter() under “branch” to obtain the full path in the Nazca tree. The branch is a list of Nodes, first a cell, them instances, like [cnode, inode, inode, …].
- – Added option to apply a global layermap to load_gds (cfg.layermap), which can help to force a mapping onto a deeper load_gds call. Reset after user to cfg.layermap = {} or False.
- – Fixed rare case in bend_strt_bend_p2p() to check if the shortest interconnect solution out of maximum of four was actually found.
- – Added export_gds() option “bbpath” to indicate path to load a gds building block from. Use with “bb=True” to create and export the building block as a module.
- – Improve cell reuse in load_gds(). The method now accepts keyword “cellsreused”, a list of cell names that are to be reused.
2020-12-15: 0.5.12.post2:
- – Fix reuse in load_gds() to avoid creating cell duplicated within a load.
- – Added compact model integration to mask_elements taper methods.
- – Moved criterion for valid automated pin connections to cfg.autoconnectdistance.
2021-01-21: 0.5.12.post3:
- – geometry:
-
- – Added radius attribute to pins.
- – Added “strokewidth” to text to ensure a minimum text thickness.
- – Fixed geometrical length in the Euler bend.
- – Extended and improved clipper polygon boolean functionality.
– Added check if the pinfile exist in load_gdsBB().
– Added stubs to the building block module generated via export_gds(bb=True)
2021-01-25: 0.5.12.post4:
- – Added summary plot of logfile content to visualize warnings and errors.
- – Extended text() method to accept a list of layers, not only a single layer.
- – Updated export_gds(bb=True) to add the original Cell default_pins to the building block generated this setting.
- – Fix in interconnect rot2ref() to make “cw” keyword work correctly.
- – Update in Euler bend calibration concept. This makes it easy to draw Euler bends following the same path up to different angles.
2021-04-27: 0.5.13:
- – GDS and polygons:
- – Added merge step for polygons of imported images (like for logos).
- – Implemented GDS scaling based on database unit in the loaded GDS. It automatically scales to the database as set in Nazca gds_base.gds_db_unit.
- – Added name_layer option to change the mask layer of the BB cellname text polygon (useful to bypass foundry reserved naming polygons). This overrides ‘bbox_name’ of the bounding box via the “layer_name” cell attribute.
- – Fix in load_gds() to track visited cellnames
- – Fix in cell renaming message during load_gds().
- – Added polyline2polygons(), next to the existing polyline2polygon(), to limit the maximum number of points per polygon.
- – Handle GDS integer overflow more gently with a warning and a 1e9 value instead of an Exception.
- – Added GDS polygon splitter to ensure a maximum number of points. The GDS standard specifies a maximum of 600 points (including the closing point). This should be correct for all implementations. However, a larger number of points is typically accepted. The absolute maximum is 8191. The default value for Nazca is now set at 4000 points and can be changed by setting cfg.maxpolypoints.
- – Interconnects
- – Added “anglei” and “angleo” keywords to the Tp_viper and viper to set the exact in and out angles of the viper guide for accurate polygon generation at the end points.
- – Improved Euler bend discretization based on the maximum curvature.
- – Added gridpatch option to mask_element strt() to ameliorate snapping notches across a cell hierarchy.
- – Added a lateral shift option to the mask_element taper for a skewed taper shape.
- – Updated mask_element tube to handle empty structures.
- – Implemented handling of pin.radius into mask_elements and option to changing the radius in Node translations.
- – Export:
- – Added bb_util method “validation_style” to set a common global cell export style, useful for a simplified building block (black box) style for validation.
- – Added a global option for export_plt() to provide the matplotlib axis to draw to plot in via cfg.plot_fig = fig, ax