pdkmaster.io.klayout package¶
pdkmaster.io.klayout.export¶
-
class
pdkmaster.io.klayout.export.
FileExporter
(*, tech: pdkmaster.technology.technology_.Technology, export_name: Optional[str] = None, gds_layers: Dict[str, Union[int, Tuple[int, int]]])[source]¶ Bases:
object
-
pdkmaster.io.klayout.export.
export2db
(obj: Union[pdkmaster.technology.geometry._Shape, pdkmaster.technology.geometry.MaskShape, pdkmaster.technology.geometry.MaskShapes, pdkmaster.design.layout._Layout, pdkmaster.design.library.Library], *, export_fullshape: Optional[bool] = None, add_pin_label: bool = False, gds_layers: Optional[Dict[str, Union[int, Tuple[int, int]]]] = None, cell_name: Optional[str] = None, merge: bool = False)[source]¶ This function allows to export PDKMaster geometry/layout objects to a klayout Layout object
- Parameters:
obj – This is the object to export. There are two different call types. 1) a _Shape geometry object without mask provided 2) a MaskShape geometry or an object that contains maskshapes.
export_fullshape – only to be specified when obj is a _Shape object. If True the full MultiPartShape shape will be exported when a MultiPartShape._Part object is met. It defaults to False
add_pin_label – If True a label will exported on top of layers that are pin layers of one of the technology’s MetalWire primitives.
gds_layers – Has to be specified when obj is a MaskShape or a collection of them and should not be provided otherwise. It contains the lookup table to get the corresponding KLayout layer information for PDKMaster _DesignMask objects.
cell_name – Only to be provided when obj is a MaskShape or a collection of them but not a Library. If specified the name of the cell in which the MaskShape(s) will be exported. By default ‘anon’ will be used.
merge – Wether to merge the exported shapes or not.
- Returns:
An equivalent KLayout database object if obj is a _Shape geometry or a KLayout Layout object when obj is a MaskShape or a collection of MaskShapes. If obj is a Library a Cell will be added for each _Cell in the Library. If there are cell instances in the PDKMaster _Layout object these cells will also be exported to the output KLayout Layout object as a cell even if it is from another PDKMaster Library. An exception will be generated when two instances need to be exported to the same cell name but in a different Library.
pdkmaster.io.klayout.merge¶
-
pdkmaster.io.klayout.merge_.
merge
(obj: Union[pdkmaster.design.layout._Layout, pdkmaster.design.library._Cell, pdkmaster.design.library.Library, pdkmaster.technology.geometry.MultiShape, pdkmaster.technology.geometry.MaskShape, pdkmaster.technology.geometry.MaskShapes]) → Union[pdkmaster.design.layout._Layout, pdkmaster.technology.geometry._Shape, pdkmaster.technology.geometry.MaskShape, pdkmaster.technology.geometry.MaskShapes, None][source]¶ This function allows to use the KLayout engine to merge PDKMaster _Shape objects; either directly or as part of another PDKMaster object
Althouogh it will be tried to merge shapes there is no guarantee given that merge-able shapes are effectively merged. Currently RepeatedShape objects are retained as is and not merged with other shapes.
- Parameters:
obj – the PDKMaster object from which the shape(s) needs to be merged. obj can also be an iterable of Shape objects.
- Returns:
Return same type of object; the object may have been simplified; e.g. merging a MultiShape with all shapes overlapping can result in a Polygon or a Rect. Currently RepeatedShape and _InstanceSubLayout will not be merge and returned as is. For object of type _Cell and Library the merging will be done on the provided object and no value is returned.