laygo2.object package#
laygo2.object package is a collection of core object classes that are used to represent physical layout structures and design hierarchies.
The package consists of four modules:
laygo2.object.physical: This module defines classes for physical objects, which composes the actual IC layout.
laygo2.object.template: This module describes classes for templates, which generate various instance objects based on the target technology and design parameters.
laygo2.object.grid: This module describes grid classes, which provide an abstract representation of placement and routing coordinates and parameters.
laygo2.object.database: This module implements classes for design hierarchy management, enabling users to manage and maintain the relationships between design elements.
The following UML diagram of the object package provides a visual representation of the relationships between the four modules and their subclasses.
Check the following links for the details of the modules and their subclasses.
- laygo2.object.physical module
- PhysicalObject class
PhysicalObjectPhysicalObject.__init__()PhysicalObject._get_xy()PhysicalObject._set_xy()PhysicalObject._update_pointers()PhysicalObject.summarize()PhysicalObject._xyPhysicalObject.bboxPhysicalObject.bottomPhysicalObject.bottom_leftPhysicalObject.bottom_rightPhysicalObject.centerPhysicalObject.leftPhysicalObject.masterPhysicalObject.namePhysicalObject.paramsPhysicalObject.pointersPhysicalObject.rightPhysicalObject.topPhysicalObject.top_leftPhysicalObject.top_rightPhysicalObject.xy
- IterablePhysicalObject class
IterablePhysicalObjectIterablePhysicalObject.__init__()IterablePhysicalObject._get_xy()IterablePhysicalObject._set_xy()IterablePhysicalObject._update_elements()IterablePhysicalObject._update_pointers()IterablePhysicalObject.ndenumerate()IterablePhysicalObject.summarize()IterablePhysicalObject._xyIterablePhysicalObject.bboxIterablePhysicalObject.bottomIterablePhysicalObject.bottom_leftIterablePhysicalObject.bottom_rightIterablePhysicalObject.centerIterablePhysicalObject.elementsIterablePhysicalObject.leftIterablePhysicalObject.masterIterablePhysicalObject.nameIterablePhysicalObject.paramsIterablePhysicalObject.pointersIterablePhysicalObject.rightIterablePhysicalObject.shapeIterablePhysicalObject.topIterablePhysicalObject.top_leftIterablePhysicalObject.top_rightIterablePhysicalObject.xy
- PhysicalObjectGroup class
PhysicalObjectGroupPhysicalObjectGroup.__init__()PhysicalObjectGroup._get_xy()PhysicalObjectGroup._set_xy()PhysicalObjectGroup._update_elements()PhysicalObjectGroup._update_pointers()PhysicalObjectGroup.ndenumerate()PhysicalObjectGroup.summarize()PhysicalObjectGroup._xyPhysicalObjectGroup.bboxPhysicalObjectGroup.bottomPhysicalObjectGroup.bottom_leftPhysicalObjectGroup.bottom_rightPhysicalObjectGroup.centerPhysicalObjectGroup.elementsPhysicalObjectGroup.leftPhysicalObjectGroup.masterPhysicalObjectGroup.namePhysicalObjectGroup.paramsPhysicalObjectGroup.pointersPhysicalObjectGroup.rightPhysicalObjectGroup.shapePhysicalObjectGroup.topPhysicalObjectGroup.top_leftPhysicalObjectGroup.top_rightPhysicalObjectGroup.xy
- Rect class
RectRect.__init__()Rect._get_xy()Rect._set_xy()Rect._update_pointers()Rect.align()Rect.summarize()Rect._xyRect.bboxRect.bottomRect.bottom_leftRect.bottom_rightRect.centerRect.colorRect.heightRect.height_vecRect.hextensionRect.layerRect.leftRect.masterRect.nameRect.netnameRect.paramsRect.pointersRect.rightRect.sizeRect.topRect.top_leftRect.top_rightRect.vextensionRect.widthRect.width_vecRect.xy
- Path class
PathPath.__init__()Path._get_xy()Path._set_xy()Path._update_pointers()Path.summarize()Path._xyPath.bboxPath.bottomPath.bottom_leftPath.bottom_rightPath.centerPath.extensionPath.layerPath.leftPath.masterPath.namePath.netnamePath.paramsPath.pointersPath.rightPath.topPath.top_leftPath.top_rightPath.widthPath.xy
- Pin class
PinPin.__init__()Pin._get_xy()Pin._set_xy()Pin._update_elements()Pin._update_pointers()Pin.export_to_dict()Pin.ndenumerate()Pin.summarize()Pin._xyPin.bboxPin.bottomPin.bottom_leftPin.bottom_rightPin.centerPin.elementsPin.heightPin.height_vecPin.layerPin.leftPin.masterPin.namePin.netnamePin.paramsPin.pointersPin.rightPin.shapePin.sizePin.topPin.top_leftPin.top_rightPin.widthPin.width_vecPin.xy
- Text class
TextText.__init__()Text._get_xy()Text._set_xy()Text._update_pointers()Text.summarize()Text._xyText.bboxText.bottomText.bottom_leftText.bottom_rightText.centerText.layerText.leftText.masterText.nameText.paramsText.pointersText.rightText.textText.topText.top_leftText.top_rightText.xy
- Instance class
InstanceInstance.__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._pitchInstance._xyInstance.bboxInstance.bottomInstance.bottom_leftInstance.bottom_rightInstance.cellnameInstance.centerInstance.elementsInstance.heightInstance.height_vecInstance.leftInstance.libnameInstance.masterInstance.nameInstance.pInstance.paramsInstance.pinsInstance.pitchInstance.pointersInstance.rightInstance.shapeInstance.sizeInstance.spacingInstance.topInstance.top_leftInstance.top_rightInstance.transformInstance.unit_sizeInstance.viewnameInstance.widthInstance.width_vecInstance.xyInstance.xy0Instance.xy1
- VirtualInstance class
VirtualInstanceVirtualInstance.__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._pitchVirtualInstance._xyVirtualInstance.bboxVirtualInstance.bottomVirtualInstance.bottom_leftVirtualInstance.bottom_rightVirtualInstance.cellnameVirtualInstance.centerVirtualInstance.elementsVirtualInstance.heightVirtualInstance.height_vecVirtualInstance.leftVirtualInstance.libnameVirtualInstance.masterVirtualInstance.nameVirtualInstance.native_elementsVirtualInstance.pVirtualInstance.paramsVirtualInstance.pinsVirtualInstance.pitchVirtualInstance.pointersVirtualInstance.rightVirtualInstance.shapeVirtualInstance.sizeVirtualInstance.spacingVirtualInstance.topVirtualInstance.top_leftVirtualInstance.top_rightVirtualInstance.transformVirtualInstance.unit_sizeVirtualInstance.viewnameVirtualInstance.widthVirtualInstance.width_vecVirtualInstance.xyVirtualInstance.xy0VirtualInstance.xy1
- PhysicalObject class
- laygo2.object.template module
- Template class
- NativeInstanceTemplate class
NativeInstanceTemplateNativeInstanceTemplate.__init__()NativeInstanceTemplate.bbox()NativeInstanceTemplate.export_to_dict()NativeInstanceTemplate.generate()NativeInstanceTemplate.height()NativeInstanceTemplate.pins()NativeInstanceTemplate.size()NativeInstanceTemplate.summarize()NativeInstanceTemplate.width()NativeInstanceTemplate._abc_implNativeInstanceTemplate._bboxNativeInstanceTemplate._pinsNativeInstanceTemplate.cellnameNativeInstanceTemplate.libnameNativeInstanceTemplate.name
- ParameterizedInstanceTemplate class
ParameterizedInstanceTemplateParameterizedInstanceTemplate.__init__()ParameterizedInstanceTemplate.bbox()ParameterizedInstanceTemplate.generate()ParameterizedInstanceTemplate.height()ParameterizedInstanceTemplate.pins()ParameterizedInstanceTemplate.size()ParameterizedInstanceTemplate.summarize()ParameterizedInstanceTemplate.width()ParameterizedInstanceTemplate._abc_implParameterizedInstanceTemplate._bboxParameterizedInstanceTemplate._pinsParameterizedInstanceTemplate.cellnameParameterizedInstanceTemplate.libnameParameterizedInstanceTemplate.name
- UserDefinedTemplate class
UserDefinedTemplateUserDefinedTemplate.__init__()UserDefinedTemplate.bbox()UserDefinedTemplate.generate()UserDefinedTemplate.height()UserDefinedTemplate.pins()UserDefinedTemplate.size()UserDefinedTemplate.summarize()UserDefinedTemplate.width()UserDefinedTemplate._abc_implUserDefinedTemplate._bboxUserDefinedTemplate._generateUserDefinedTemplate._pinsUserDefinedTemplate.name
- routing module
- RoutingMeshTemplate class
RoutingMeshTemplateRoutingMeshTemplate.__init__()RoutingMeshTemplate.add_node()RoutingMeshTemplate.add_track()RoutingMeshTemplate.bbox()RoutingMeshTemplate.generate()RoutingMeshTemplate.height()RoutingMeshTemplate.pins()RoutingMeshTemplate.size()RoutingMeshTemplate.summarize()RoutingMeshTemplate.width()RoutingMeshTemplate._abc_implRoutingMeshTemplate.gridRoutingMeshTemplate.nameRoutingMeshTemplate.nodesRoutingMeshTemplate.tracks
- RoutingMeshTemplate class
- laygo2.object.grid module
- Core methods
- CircularMapping class
CircularMappingCircularMapping.dtypeCircularMapping.__init__()CircularMapping.append()CircularMapping.concatenate()CircularMapping.copy()CircularMapping.flip()CircularMapping.get_elements()CircularMapping.set_elements()CircularMapping.summarize()CircularMapping._elementsCircularMapping.elementsCircularMapping.shape
- CircularMappingArray class
CircularMappingArrayCircularMappingArray.dtypeCircularMappingArray.__init__()CircularMappingArray.append()CircularMappingArray.concatenate()CircularMappingArray.copy()CircularMappingArray.flip()CircularMappingArray.get_elements()CircularMappingArray.set_elements()CircularMappingArray.summarize()CircularMappingArray._elementsCircularMappingArray.elementsCircularMappingArray.shape
- _AbsToPhyGridConverter class
- _PhyToAbsGridConverter class
- OneDimGrid class
OneDimGridOneDimGrid.dtypeOneDimGrid.__init__()OneDimGrid.append()OneDimGrid.concatenate()OneDimGrid.copy()OneDimGrid.export_to_dict()OneDimGrid.flip()OneDimGrid.get_elements()OneDimGrid.set_elements()OneDimGrid.summarize()OneDimGrid._elementsOneDimGrid.abs2phyOneDimGrid.elementsOneDimGrid.nameOneDimGrid.phy2absOneDimGrid.rangeOneDimGrid.shapeOneDimGrid.width
- Grid class
GridGrid.__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.height_vec()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.width_vec()Grid._xyGrid.abs2phyGrid.elementsGrid.hGrid.heightGrid.hgridGrid.mGrid.mnGrid.nGrid.nameGrid.phy2absGrid.rangeGrid.shapeGrid.vGrid.vgridGrid.widthGrid.xGrid.xyGrid.y
- PlacementGrid class
PlacementGridPlacementGrid.__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.height_vec()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.width_vec()PlacementGrid._xyPlacementGrid.abs2phyPlacementGrid.elementsPlacementGrid.hPlacementGrid.heightPlacementGrid.hgridPlacementGrid.mPlacementGrid.mnPlacementGrid.nPlacementGrid.namePlacementGrid.phy2absPlacementGrid.rangePlacementGrid.shapePlacementGrid.typePlacementGrid.vPlacementGrid.vgridPlacementGrid.widthPlacementGrid.xPlacementGrid.xyPlacementGrid.y
- RoutingGrid class
RoutingGridRoutingGrid.__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.height_vec()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.width_vec()RoutingGrid._xyRoutingGrid.abs2phyRoutingGrid.elementsRoutingGrid.hRoutingGrid.heightRoutingGrid.hextensionRoutingGrid.hextension0RoutingGrid.hgridRoutingGrid.hlayerRoutingGrid.hwidthRoutingGrid.mRoutingGrid.mnRoutingGrid.nRoutingGrid.nameRoutingGrid.phy2absRoutingGrid.pin_hlayerRoutingGrid.pin_vlayerRoutingGrid.primary_gridRoutingGrid.rangeRoutingGrid.shapeRoutingGrid.typeRoutingGrid.vRoutingGrid.vextensionRoutingGrid.vextension0RoutingGrid.vgridRoutingGrid.viamapRoutingGrid.vlayerRoutingGrid.vwidthRoutingGrid.widthRoutingGrid.xRoutingGrid.xcolorRoutingGrid.xyRoutingGrid.yRoutingGrid.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
DesignDesign.__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.bboxDesign.cellnameDesign.elementsDesign.iDesign.instancesDesign.libnameDesign.nameDesign.noname_indexDesign.pDesign.paramsDesign.pathsDesign.pinsDesign.rDesign.rectsDesign.textsDesign.viDesign.virtual_instances