Path class#

class laygo2.object.physical.Path(xy, layer, width, extension=0, name=None, netname=None, params=None)[source]#

Bases: PhysicalObject

Path object class.

Example

>>> from laygo2.object.physical.Path import Path
>>> path0 = Path(xy=[[0, 0], [0, 100]], width=10,
                 extension=5, layer=['M1', 'drawing'])
>>> print(path0)
<laygo2.object.physical.Path object at 0x00000280D1F3CE88>
name: None,
class: Path,
xy: [[0, 0], [0, 100]],
params: None,
width: 10,
extension: 5,
layer: ['M1', 'drawing'],

Public Data Attributes:

layer

The physical layer information of the object, represented as a list with two elements: [name, purpose].

netname

The net name associated with the object.

width

the width of the object.

extension

The path extension from its endpoints.

bbox

The physical bounding box of the object.

Inherited from PhysicalObject

name

Object name.

xy

Physical coordinate values of the object in the form of [bottom_left, top_right].

master

Master ojbect for current object (for arrays and pins).

params

Dictionary storing the parameters associated with the object

pointers

The dictionary containing the key-value pairs of the major physical coordinates of the object, such as 'left', 'right', 'top', 'bottom', 'bottom_left', 'center', etc.

left

The left-center coordinate of the object.

right

The right-center coordinate of the object.

top

The top-center coordinate of the object.

bottom

The bottom-center coordinate of the object.

center

The center-center coordinate of the object.

bottom_left

The bottom-left coordinate of the object.

bottom_right

The bottom-right coordinate of the object.

top_left

The top-left coordinate of the object.

top_right

The top-right coordinate of the object.

bbox

The physical bounding box of the object.

Public Methods:

__init__(xy, layer, width[, extension, ...])

The constructor function.

summarize()

Get object information summary.

Inherited from PhysicalObject

__init__(xy[, name, params])

The constructor function.

__str__()

Return the summary of the object information.

summarize()

Return the summary of the object information.


__init__(xy, layer, width, extension=0, name=None, netname=None, params=None)[source]#

The constructor function.

Parameters:
  • xy (numpy.ndarray) – Physical coordinate values of the object in the form of [bottom_left, top_right].

  • layer (list) – The physical layer information of the object, represented as a list with two elements: [name, purpose].

  • width (int) – The width of the object.

  • extension (int) – The path extension from its endpoints.

  • name (str) – Object name.

  • netname (str) – The net name associated with the object.

  • params (dict) – Dictionary storing the parameters associated with the object.

Return type:

Path

Example

>>> import laygo2
>>> path0 = laygo2.object.physical.Path(xy=[[0, 0], [0, 100]], width=10,
        extension=5, layer=['M1', 'drawing'], netname='net0’)
>>> print(path0)
<laygo2.object.physical.Path object at 0x00000280D1F3CE88>
name: None,
class: Path,
xy: [[0, 0], [0, 100]],
params: None,
width: 10,
extension: 5,
layer: ['M1', 'drawing'],
netname: net0
_images/object_physical_path_init.png
_get_xy()#

numpy.ndarray(dtype=numpy.int): Retrive x,y coordinate values of the object.

_set_xy(value)#

numpy.ndarray(dtype=numpy.int): Update x,y coordinates of the object.

_update_pointers()[source]#

The internal function that updates the object’s pointers after a change in its physical coordinates.

summarize()[source]#

Get object information summary.

_xy = array([0, 0])#

The x and y coordinate values stored within.

Type:

numpy.ndarray(dtype=numpy.int)

property bbox#

The physical bounding box of the object.

bottom = None#

The bottom-center coordinate of the object.

Example

>>> import laygo2
>>> obj = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]])
>>> obj.top
array([100,   0])
_images/object_physical_PhysicalObject_bottom.png
Type:

numpy.ndarray

bottom_left = None#

The bottom-left coordinate of the object.

Example

>>> import laygo2
>>> obj = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]])
>>> obj.bottom_left
array([  0,   0])
_images/object_physical_PhysicalObject_bottom_left.png
Type:

numpy.ndarray

bottom_right = None#

The bottom-right coordinate of the object.

Example

>>> import laygo2
>>> obj = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]])
>>> obj.bottom_right
array([200,   0])
_images/object_physical_PhysicalObject_bottom_right.png
Type:

numpy.ndarray

center = None#

The center-center coordinate of the object.

Example

>>> import laygo2
>>> obj = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]])
>>> obj.center
array([100, 100])
_images/object_physical_PhysicalObject_center.png
Type:

numpy.ndarray

extension = 0#

The path extension from its endpoints.

Example

>>> import laygo2
>>> path0 = laygo2.object.physical.Path(xy=[[0, 0], [0, 100]], width=10,
        extension=5, layer=['M1', 'drawing'], netname='net0’)
>>> path0.extension
5
_images/object_physical_path_extension.png
Type:

int

layer = None#

The physical layer information of the object, represented as a list with two elements: [name, purpose].

Type:

numpy.ndarray

left = None#

The left-center coordinate of the object.

Example

>>> import laygo2
>>> obj = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]])
>>> obj.left
array([  0, 100])
_images/object_physical_PhysicalObject_left.png
Type:

numpy.ndarray

master = None#

Master ojbect for current object (for arrays and pins).

Example

>>> import laygo2
>>> obj1 = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]],
        name="test1", params=None)
>>> obj2 = laygo2.object.physical.Pin(xy = [[0, 0], [100, 100]],
        layer = ["M1", "drawing"], master=obj1)
>>> obj2.master
<laygo2.object.physical.PhysicalObject object at 0x00000204AAF3C7C0>
Type:

numpy.ndarray

name = None#

Object name.

Example

>>> import laygo2
>>> obj = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]],
        name="test", params={'maxI': 0.005})
>>> obj.name
“test”
_images/object_physical_PhysicalObject_name.png
Type:

str

netname = None#

The net name associated with the object.

Example

>>> import laygo2
>>> path0 = laygo2.object.physical.Path(xy=[[0, 0], [0, 100]], width=10,
        extension=5, layer=['M1', 'drawing'], netname='net0’)
>>> path0.netname
“net0”
_images/object_physical_path_netname.png
Type:

str

params = None#

Dictionary storing the parameters associated with the object

Example

>>> import laygo2
>>> obj = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]],
        name="test", params={'maxI': 0.005})
>>> obj.params
{‘maxI’: 0.005 }
Type:

dict

pointers = None#

The dictionary containing the key-value pairs of the major physical coordinates of the object, such as ‘left’, ‘right’, ‘top’, ‘bottom’, ‘bottom_left’, ‘center’, etc.

Example

>>> import laygo2
>>> obj = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]])
>>> obj.pointers
{'left': array([0, 100]), 'right': array([200, 100]),
 'bottom': array([100, 0]), 'top': array([100, 200]),
 'bottom_left': array([0, 0]), 'bottom_right': array([200, 0]),
 'top_left': array([0, 200]), 'top_right': array([200, 200]),
 ‘center’: array( [100, 100] )
}
_images/object_physical_PhysicalObject_pointers.png
Type:

dict

right = None#

The right-center coordinate of the object.

Example

>>> import laygo2
>>> obj = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]])
>>> obj.right
array([200, 100])
_images/object_physical_PhysicalObject_right.png
Type:

numpy.ndarray

top = None#

The top-center coordinate of the object.

Example

>>> import laygo2
>>> obj = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]])
>>> obj.top
array([100, 200])
_images/object_physical_PhysicalObject_top.png
Type:

numpy.ndarray

top_left = None#

The top-left coordinate of the object.

Example

>>> import laygo2
>>> obj = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]])
>>> obj.top_left
array([  0, 200])
_images/object_physical_PhysicalObject_top_left.png
Type:

numpy.ndarray

top_right = None#

The top-right coordinate of the object.

Example

>>> import laygo2
>>> obj = laygo2.object.physical.PhysicalObject(xy = [[0, 0], [200, 200]])
>>> obj.top_right
array([200, 200])
_images/object_physical_PhysicalObject_top_right.png
Type:

numpy.ndarray

width = None#

the width of the object.

Example

>>> import laygo2
>>> path0 = laygo2.object.physical.Path(xy=[[0, 0], [0, 100]], width=10,
        extension=5, layer=['M1', 'drawing'], netname='net0’)
>>> path0.width
10
_images/object_physical_path_width.png
Type:

int

property xy#

Retrive x,y coordinate values of the object.

Type:

numpy.ndarray(dtype=numpy.int)