API Reference#
LAYout with Gridded Object 2 (laygo2) is an open-source project that offers libraries for automating the creation of custom circuit layouts, which satisfy design rules, performance and area efficiency in advanced CMOS processes. laygo2 aims to 1) streamline the layout design process through automation, while 2) provide rich parameterization capability and 3) compability with cutting-edge technologies such as FinFET, making it easier for circuit/mask designers to enhance their design productivity.
laygo2 is implemented with a comprehensive collection of layout object classes and methods, written in the Python programmanging language, rending it suitible for code-based layout generation.
laygo2 is composed of the following subpackages, each serving a distinct purpose:
laygo2.object: houses the core object classes, responsible for defining physical layout structures and design hierarchies.
laygo2.interface: implements the interfaces to external data structures and EDA tools (yaml, skill, BAG, GDS, matplotlib and others).
laygo2.util: provides a range of utility functions for internal use.
For further information regarding the subpackages and modules in laygo, please refer the provided link:
- laygo2.object package
- laygo2.object.physical module
- PhysicalObject class
PhysicalObject
PhysicalObject.__init__()
PhysicalObject._get_xy()
PhysicalObject._set_xy()
PhysicalObject._update_pointers()
PhysicalObject.summarize()
PhysicalObject._xy
PhysicalObject.bbox
PhysicalObject.bottom
PhysicalObject.bottom_left
PhysicalObject.bottom_right
PhysicalObject.center
PhysicalObject.left
PhysicalObject.master
PhysicalObject.name
PhysicalObject.params
PhysicalObject.pointers
PhysicalObject.right
PhysicalObject.top
PhysicalObject.top_left
PhysicalObject.top_right
PhysicalObject.xy
- IterablePhysicalObject class
IterablePhysicalObject
IterablePhysicalObject.__init__()
IterablePhysicalObject._get_xy()
IterablePhysicalObject._set_xy()
IterablePhysicalObject._update_elements()
IterablePhysicalObject._update_pointers()
IterablePhysicalObject.ndenumerate()
IterablePhysicalObject.summarize()
IterablePhysicalObject._xy
IterablePhysicalObject.bbox
IterablePhysicalObject.bottom
IterablePhysicalObject.bottom_left
IterablePhysicalObject.bottom_right
IterablePhysicalObject.center
IterablePhysicalObject.elements
IterablePhysicalObject.left
IterablePhysicalObject.master
IterablePhysicalObject.name
IterablePhysicalObject.params
IterablePhysicalObject.pointers
IterablePhysicalObject.right
IterablePhysicalObject.shape
IterablePhysicalObject.top
IterablePhysicalObject.top_left
IterablePhysicalObject.top_right
IterablePhysicalObject.xy
- PhysicalObjectGroup class
PhysicalObjectGroup
PhysicalObjectGroup.__init__()
PhysicalObjectGroup._get_xy()
PhysicalObjectGroup._set_xy()
PhysicalObjectGroup._update_elements()
PhysicalObjectGroup._update_pointers()
PhysicalObjectGroup.ndenumerate()
PhysicalObjectGroup.summarize()
PhysicalObjectGroup._xy
PhysicalObjectGroup.bbox
PhysicalObjectGroup.bottom
PhysicalObjectGroup.bottom_left
PhysicalObjectGroup.bottom_right
PhysicalObjectGroup.center
PhysicalObjectGroup.elements
PhysicalObjectGroup.left
PhysicalObjectGroup.master
PhysicalObjectGroup.name
PhysicalObjectGroup.params
PhysicalObjectGroup.pointers
PhysicalObjectGroup.right
PhysicalObjectGroup.shape
PhysicalObjectGroup.top
PhysicalObjectGroup.top_left
PhysicalObjectGroup.top_right
PhysicalObjectGroup.xy
- Rect class
Rect
Rect.__init__()
Rect._get_xy()
Rect._set_xy()
Rect._update_pointers()
Rect.align()
Rect.summarize()
Rect._xy
Rect.bbox
Rect.bottom
Rect.bottom_left
Rect.bottom_right
Rect.center
Rect.color
Rect.height
Rect.height_vec
Rect.hextension
Rect.layer
Rect.left
Rect.master
Rect.name
Rect.netname
Rect.params
Rect.pointers
Rect.right
Rect.size
Rect.top
Rect.top_left
Rect.top_right
Rect.vextension
Rect.width
Rect.width_vec
Rect.xy
- Path class
Path
Path.__init__()
Path._get_xy()
Path._set_xy()
Path._update_pointers()
Path.summarize()
Path._xy
Path.bbox
Path.bottom
Path.bottom_left
Path.bottom_right
Path.center
Path.extension
Path.layer
Path.left
Path.master
Path.name
Path.netname
Path.params
Path.pointers
Path.right
Path.top
Path.top_left
Path.top_right
Path.width
Path.xy
- Pin class
Pin
Pin.__init__()
Pin._get_xy()
Pin._set_xy()
Pin._update_elements()
Pin._update_pointers()
Pin.export_to_dict()
Pin.ndenumerate()
Pin.summarize()
Pin._xy
Pin.bbox
Pin.bottom
Pin.bottom_left
Pin.bottom_right
Pin.center
Pin.elements
Pin.height
Pin.height_vec
Pin.layer
Pin.left
Pin.master
Pin.name
Pin.netname
Pin.params
Pin.pointers
Pin.right
Pin.shape
Pin.size
Pin.top
Pin.top_left
Pin.top_right
Pin.width
Pin.width_vec
Pin.xy
- Text class
Text
Text.__init__()
Text._get_xy()
Text._set_xy()
Text._update_pointers()
Text.summarize()
Text._xy
Text.bbox
Text.bottom
Text.bottom_left
Text.bottom_right
Text.center
Text.layer
Text.left
Text.master
Text.name
Text.params
Text.pointers
Text.right
Text.text
Text.top
Text.top_left
Text.top_right
Text.xy
- Instance class
Instance
Instance.__init__()
Instance._get_xy()
Instance._set_xy()
Instance._update_elements()
Instance._update_pins()
Instance._update_pointers()
Instance.get_p()
Instance.get_pitch()
Instance.get_spacing()
Instance.ndenumerate()
Instance.set_p()
Instance.set_pitch()
Instance.set_spacing()
Instance.summarize()
Instance.update_netname()
Instance._pitch
Instance._xy
Instance.bbox
Instance.bottom
Instance.bottom_left
Instance.bottom_right
Instance.cellname
Instance.center
Instance.elements
Instance.height
Instance.height_vec
Instance.left
Instance.libname
Instance.master
Instance.name
Instance.p
Instance.params
Instance.pins
Instance.pitch
Instance.pointers
Instance.right
Instance.shape
Instance.size
Instance.spacing
Instance.top
Instance.top_left
Instance.top_right
Instance.transform
Instance.unit_size
Instance.viewname
Instance.width
Instance.width_vec
Instance.xy
Instance.xy0
Instance.xy1
- VirtualInstance class
VirtualInstance
VirtualInstance.__init__()
VirtualInstance._get_xy()
VirtualInstance._set_xy()
VirtualInstance._update_elements()
VirtualInstance._update_pins()
VirtualInstance._update_pointers()
VirtualInstance.get_element_position()
VirtualInstance.get_p()
VirtualInstance.get_pitch()
VirtualInstance.get_spacing()
VirtualInstance.ndenumerate()
VirtualInstance.set_p()
VirtualInstance.set_pitch()
VirtualInstance.set_spacing()
VirtualInstance.summarize()
VirtualInstance.update_netname()
VirtualInstance._pitch
VirtualInstance._xy
VirtualInstance.bbox
VirtualInstance.bottom
VirtualInstance.bottom_left
VirtualInstance.bottom_right
VirtualInstance.cellname
VirtualInstance.center
VirtualInstance.elements
VirtualInstance.height
VirtualInstance.height_vec
VirtualInstance.left
VirtualInstance.libname
VirtualInstance.master
VirtualInstance.name
VirtualInstance.native_elements
VirtualInstance.p
VirtualInstance.params
VirtualInstance.pins
VirtualInstance.pitch
VirtualInstance.pointers
VirtualInstance.right
VirtualInstance.shape
VirtualInstance.size
VirtualInstance.spacing
VirtualInstance.top
VirtualInstance.top_left
VirtualInstance.top_right
VirtualInstance.transform
VirtualInstance.unit_size
VirtualInstance.viewname
VirtualInstance.width
VirtualInstance.width_vec
VirtualInstance.xy
VirtualInstance.xy0
VirtualInstance.xy1
- PhysicalObject class
- laygo2.object.template module
- Template class
- NativeInstanceTemplate class
NativeInstanceTemplate
NativeInstanceTemplate.__init__()
NativeInstanceTemplate.bbox()
NativeInstanceTemplate.export_to_dict()
NativeInstanceTemplate.generate()
NativeInstanceTemplate.height()
NativeInstanceTemplate.pins()
NativeInstanceTemplate.size()
NativeInstanceTemplate.summarize()
NativeInstanceTemplate.width()
NativeInstanceTemplate._abc_impl
NativeInstanceTemplate._bbox
NativeInstanceTemplate._pins
NativeInstanceTemplate.cellname
NativeInstanceTemplate.libname
NativeInstanceTemplate.name
- ParameterizedInstanceTemplate class
ParameterizedInstanceTemplate
ParameterizedInstanceTemplate.__init__()
ParameterizedInstanceTemplate.bbox()
ParameterizedInstanceTemplate.generate()
ParameterizedInstanceTemplate.height()
ParameterizedInstanceTemplate.pins()
ParameterizedInstanceTemplate.size()
ParameterizedInstanceTemplate.summarize()
ParameterizedInstanceTemplate.width()
ParameterizedInstanceTemplate._abc_impl
ParameterizedInstanceTemplate._bbox
ParameterizedInstanceTemplate._pins
ParameterizedInstanceTemplate.cellname
ParameterizedInstanceTemplate.libname
ParameterizedInstanceTemplate.name
- UserDefinedTemplate class
UserDefinedTemplate
UserDefinedTemplate.__init__()
UserDefinedTemplate.bbox()
UserDefinedTemplate.generate()
UserDefinedTemplate.height()
UserDefinedTemplate.pins()
UserDefinedTemplate.size()
UserDefinedTemplate.summarize()
UserDefinedTemplate.width()
UserDefinedTemplate._abc_impl
UserDefinedTemplate._bbox
UserDefinedTemplate._generate
UserDefinedTemplate._pins
UserDefinedTemplate.name
- routing module
- RoutingMeshTemplate class
RoutingMeshTemplate
RoutingMeshTemplate.__init__()
RoutingMeshTemplate.add_node()
RoutingMeshTemplate.add_track()
RoutingMeshTemplate.bbox()
RoutingMeshTemplate.generate()
RoutingMeshTemplate.height()
RoutingMeshTemplate.pins()
RoutingMeshTemplate.size()
RoutingMeshTemplate.summarize()
RoutingMeshTemplate.width()
RoutingMeshTemplate._abc_impl
RoutingMeshTemplate.grid
RoutingMeshTemplate.name
RoutingMeshTemplate.nodes
RoutingMeshTemplate.tracks
- RoutingMeshTemplate class
- laygo2.object.grid module
- Core methods
- CircularMapping class
CircularMapping
CircularMapping.dtype
CircularMapping.__init__()
CircularMapping.append()
CircularMapping.concatenate()
CircularMapping.copy()
CircularMapping.flip()
CircularMapping.get_elements()
CircularMapping.set_elements()
CircularMapping.summarize()
CircularMapping._elements
CircularMapping.elements
CircularMapping.shape
- CircularMappingArray class
CircularMappingArray
CircularMappingArray.dtype
CircularMappingArray.__init__()
CircularMappingArray.append()
CircularMappingArray.concatenate()
CircularMappingArray.copy()
CircularMappingArray.flip()
CircularMappingArray.get_elements()
CircularMappingArray.set_elements()
CircularMappingArray.summarize()
CircularMappingArray._elements
CircularMappingArray.elements
CircularMappingArray.shape
- _AbsToPhyGridConverter class
- _PhyToAbsGridConverter class
- OneDimGrid class
OneDimGrid
OneDimGrid.dtype
OneDimGrid.__init__()
OneDimGrid.append()
OneDimGrid.concatenate()
OneDimGrid.copy()
OneDimGrid.export_to_dict()
OneDimGrid.flip()
OneDimGrid.get_elements()
OneDimGrid.set_elements()
OneDimGrid.summarize()
OneDimGrid._elements
OneDimGrid.abs2phy
OneDimGrid.elements
OneDimGrid.name
OneDimGrid.phy2abs
OneDimGrid.range
OneDimGrid.shape
OneDimGrid.width
- Grid class
Grid
Grid.__init__()
Grid._get_hgrid()
Grid._get_vgrid()
Grid._set_hgrid()
Grid._set_vgrid()
Grid.bbox()
Grid.bottom()
Grid.bottom_left()
Grid.bottom_right()
Grid.center()
Grid.copy()
Grid.crossing()
Grid.get_range()
Grid.hflip()
Grid.hstack()
Grid.left()
Grid.overlap()
Grid.right()
Grid.set_range()
Grid.summarize()
Grid.top()
Grid.top_left()
Grid.top_right()
Grid.union()
Grid.vflip()
Grid.vstack()
Grid._xy
Grid.abs2phy
Grid.elements
Grid.h
Grid.height
Grid.height_vec
Grid.hgrid
Grid.m
Grid.mn
Grid.n
Grid.name
Grid.phy2abs
Grid.range
Grid.shape
Grid.v
Grid.vgrid
Grid.width
Grid.width_vec
Grid.x
Grid.xy
Grid.y
- PlacementGrid class
PlacementGrid
PlacementGrid.__init__()
PlacementGrid._get_hgrid()
PlacementGrid._get_vgrid()
PlacementGrid._set_hgrid()
PlacementGrid._set_vgrid()
PlacementGrid.bbox()
PlacementGrid.bottom()
PlacementGrid.bottom_left()
PlacementGrid.bottom_right()
PlacementGrid.center()
PlacementGrid.copy()
PlacementGrid.crossing()
PlacementGrid.get_range()
PlacementGrid.hflip()
PlacementGrid.hstack()
PlacementGrid.left()
PlacementGrid.overlap()
PlacementGrid.place()
PlacementGrid.right()
PlacementGrid.set_range()
PlacementGrid.summarize()
PlacementGrid.top()
PlacementGrid.top_left()
PlacementGrid.top_right()
PlacementGrid.union()
PlacementGrid.vflip()
PlacementGrid.vstack()
PlacementGrid._xy
PlacementGrid.abs2phy
PlacementGrid.elements
PlacementGrid.h
PlacementGrid.height
PlacementGrid.height_vec
PlacementGrid.hgrid
PlacementGrid.m
PlacementGrid.mn
PlacementGrid.n
PlacementGrid.name
PlacementGrid.phy2abs
PlacementGrid.range
PlacementGrid.shape
PlacementGrid.type
PlacementGrid.v
PlacementGrid.vgrid
PlacementGrid.width
PlacementGrid.width_vec
PlacementGrid.x
PlacementGrid.xy
PlacementGrid.y
- RoutingGrid class
RoutingGrid
RoutingGrid.__init__()
RoutingGrid._get_hgrid()
RoutingGrid._get_vgrid()
RoutingGrid._set_hgrid()
RoutingGrid._set_vgrid()
RoutingGrid.bbox()
RoutingGrid.bottom()
RoutingGrid.bottom_left()
RoutingGrid.bottom_right()
RoutingGrid.center()
RoutingGrid.copy()
RoutingGrid.crossing()
RoutingGrid.get_range()
RoutingGrid.hflip()
RoutingGrid.hstack()
RoutingGrid.left()
RoutingGrid.overlap()
RoutingGrid.pin()
RoutingGrid.right()
RoutingGrid.route()
RoutingGrid.route_via_track()
RoutingGrid.set_range()
RoutingGrid.summarize()
RoutingGrid.top()
RoutingGrid.top_left()
RoutingGrid.top_right()
RoutingGrid.union()
RoutingGrid.vflip()
RoutingGrid.via()
RoutingGrid.vstack()
RoutingGrid._xy
RoutingGrid.abs2phy
RoutingGrid.elements
RoutingGrid.h
RoutingGrid.height
RoutingGrid.height_vec
RoutingGrid.hextension
RoutingGrid.hextension0
RoutingGrid.hgrid
RoutingGrid.hlayer
RoutingGrid.hwidth
RoutingGrid.m
RoutingGrid.mn
RoutingGrid.n
RoutingGrid.name
RoutingGrid.phy2abs
RoutingGrid.pin_hlayer
RoutingGrid.pin_vlayer
RoutingGrid.primary_grid
RoutingGrid.range
RoutingGrid.shape
RoutingGrid.type
RoutingGrid.v
RoutingGrid.vextension
RoutingGrid.vextension0
RoutingGrid.vgrid
RoutingGrid.viamap
RoutingGrid.vlayer
RoutingGrid.vwidth
RoutingGrid.width
RoutingGrid.width_vec
RoutingGrid.x
RoutingGrid.xcolor
RoutingGrid.xy
RoutingGrid.y
RoutingGrid.ycolor
- laygo2.object.database module
- BaseDatabase class
- Library class
- Design class
- append() method
- place() method
- route() method
- route_via_track() method
- via() method
- pin() method
- export_to_template() method
Design
Design.__init__()
Design.append()
Design.export_to_template()
Design.get_cellname()
Design.get_i()
Design.get_libname()
Design.get_matched_rects_by_layer()
Design.get_p()
Design.get_r()
Design.get_vi()
Design.items()
Design.keys()
Design.pin()
Design.place()
Design.route()
Design.route_via_track()
Design.set_cellname()
Design.set_i()
Design.set_libname()
Design.set_p()
Design.set_r()
Design.set_vi()
Design.summarize()
Design.via()
Design.bbox
Design.cellname
Design.elements
Design.i
Design.instances
Design.libname
Design.name
Design.noname_index
Design.p
Design.params
Design.paths
Design.pins
Design.r
Design.rects
Design.texts
Design.vi
Design.virtual_instances
- laygo2.object.physical module
- laygo2.interface package
- laygo2.util package