PadstackInstance#

class pyedb.grpc.database.primitive.padstack_instance.PadstackInstance(pedb, edb_instance)#

Bases: ansys.edb.core.primitive.padstack_instance.PadstackInstance

Manages EDB functionalities for a padstack.

Parameters:
:class:`PadstackInstance `

PadstackInstance object.

Examples

>>> from pyedb import Edb
>>> edb = Edb(myedb, edbversion="2021.2")
>>> edb_padstack_instance = edb.padstacks.instances[0]

Overview#

delete

Delete the padstack instance.

set_backdrill_top

Set backdrill from top.

set_backdrill_bottom

Set backdrill from bottom.

create_terminal

Create a padstack instance terminal.

get_terminal

Returns padstack instance terminal.

create_coax_port

Create a coax port.

create_port

Create a port on the padstack instance.

in_polygon

Check if padstack Instance is in given polygon data.

split

Split padstack instance into multiple instances. The new instances only connect adjacent layers.

convert_hole_to_conical_shape

Convert actual padstack instance to microvias 3D Objects with a given aspect ratio.

get_backdrill_type

Return backdrill type

get_back_drill_by_layer

Get backdrill by layer.

get_back_drill_by_depth

Get back drill by depth parameters

set_back_drill_by_depth

Set back drill by depth.

set_back_drill_by_layer

Set back drill layer.

parametrize_position

Parametrize the instance position.

in_voids

Check if this padstack instance is in any void.

create_rectangle_in_pad

Create a rectangle inscribed inside a padstack instance pad.

get_reference_pins

Search for reference pins using given criteria.

get_connected_objects

Get connected objects.

is_pin

Property added for backward compatibility with earlier versions of pyEDB.

definition

Padstack definition.

padstack_definition

Padstack definition name.

terminal

PadstackInstanceTerminal.

side_number

Return the number of sides meshed of the padstack instance.

dcir_equipotential_region

Check whether dcir equipotential region is enabled.

object_instance

Layout object instance.

bounding_box

Padstack instance bounding box.

start_layer

Starting layer.

stop_layer

Stopping layer.

layer_range_names

List of all layers to which the padstack instance belongs.

net_name

Net name.

layout_object_instance

Layout object instance.

component

Component.

position

Padstack instance position.

rotation

Padstack instance rotation.

name

Padstack Instance Name.

backdrill_type

Backdrill type.

backdrill_top

backdrill_bottom

Check is backdrill is starting at bottom.

backdrill_diameter

backdrill_layer

backdrill_offset

metal_volume

Metal volume of the via hole instance in cubic units (m3). Metal plating ratio is accounted.

component_pin

Component pin.

aedt_name

Retrieve the pin name that is shown in AEDT.

pingroups

Pin groups that the pin belongs to.

placement_layer

Placement layer name.

layer

Placement layer object.

lower_elevation

Lower elevation of the placement layer.

upper_elevation

Upper elevation of the placement layer.

top_bottom_association

Top/bottom association of the placement layer.

Import detail#

from pyedb.grpc.database.primitive.padstack_instance import PadstackInstance

Property detail#

property PadstackInstance.is_pin#

Property added for backward compatibility with earlier versions of pyEDB.

property PadstackInstance.definition: pyedb.grpc.database.definition.padstack_def.PadstackDef#

Padstack definition.

Returns:
PadstackDef`
property PadstackInstance.padstack_definition: str#

Padstack definition name.

Returns:
str

Padstack definition name.

property PadstackInstance.terminal: pyedb.grpc.database.terminal.padstack_instance_terminal.PadstackInstanceTerminal#

PadstackInstanceTerminal.

Returns:
:class:`PadstackInstanceTerminal
PadstackInstanceTerminal>`

PadstackInstanceTerminal object.

property PadstackInstance.side_number#

Return the number of sides meshed of the padstack instance. Returns ——- int

Number of sides meshed of the padstack instance.

property PadstackInstance.dcir_equipotential_region: bool#

Check whether dcir equipotential region is enabled.

Returns:
bool
property PadstackInstance.object_instance#

Layout object instance.

Returns:
LayoutObjInstance
property PadstackInstance.bounding_box: tuple[tuple[float, float], tuple[float, float]]#

Padstack instance bounding box. Because this method is slow, the bounding box is stored in a variable and reused.

Returns:
list of float
property PadstackInstance.start_layer: str#

Starting layer.

Returns:
str

Name of the starting layer.

property PadstackInstance.stop_layer: str#

Stopping layer.

Returns:
str

Name of the stopping layer.

property PadstackInstance.layer_range_names: list[str]#

List of all layers to which the padstack instance belongs.

Returns:
List[str]

List of layer names.

property PadstackInstance.net_name: str#

Net name.

Returns:
str

Name of the net.

property PadstackInstance.layout_object_instance#

Layout object instance.

Returns:
LayoutObjInstance
property PadstackInstance.component#

Component.

Returns:
Component
property PadstackInstance.position: list[float]#

Padstack instance position.

Returns:
list

List of [x, y] coordinates for the padstack instance position.

property PadstackInstance.rotation: float#

Padstack instance rotation.

Returns:
float

Rotatation value for the padstack instance.

property PadstackInstance.name: str#

Padstack Instance Name.

Returns:
str

If it is a pin, the syntax will be like in AEDT ComponentName-PinName.

property PadstackInstance.backdrill_type: str#

Backdrill type.

Returns:
str

Backdrill type.

property PadstackInstance.backdrill_top: bool#
property PadstackInstance.backdrill_bottom: bool#

Check is backdrill is starting at bottom.

Returns:
bool
property PadstackInstance.backdrill_diameter#
property PadstackInstance.backdrill_layer#
property PadstackInstance.backdrill_offset#
property PadstackInstance.metal_volume: float#

Metal volume of the via hole instance in cubic units (m3). Metal plating ratio is accounted.

Returns:
float

Metal volume of the via hole instance.

property PadstackInstance.component_pin: str#

Component pin.

Returns:
str

Component pin name.

property PadstackInstance.aedt_name: str#

Retrieve the pin name that is shown in AEDT.

Note

To obtain the EDB core pin name, use pin.name.

Returns:
str

Name of the pin in AEDT.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> edbapp.padstacks.instances[111].get_aedt_pin_name()
property PadstackInstance.pingroups#

Pin groups that the pin belongs to.

Returns:
List[PinGroup]

List of pin groups that the pin belongs to.

property PadstackInstance.placement_layer#

Placement layer name.

Returns:
str

Name of the placement layer.

property PadstackInstance.layer#

Placement layer object.

Returns:
pyedb.grpc.database.layers.stackup_layer.StackupLayer

Placement layer.

property PadstackInstance.lower_elevation: float#

Lower elevation of the placement layer.

Returns:
float

Lower elavation of the placement layer.

property PadstackInstance.upper_elevation: float#

Upper elevation of the placement layer.

Returns:
float

Upper elevation of the placement layer.

property PadstackInstance.top_bottom_association: int#

Top/bottom association of the placement layer.

Returns:
int

Top/bottom association of the placement layer.

  • 0 Top associated.

  • 1 No association.

  • 2 Bottom associated.

  • 4 Number of top/bottom association type.

  • -1 Undefined.

Method detail#

PadstackInstance.delete()#

Delete the padstack instance.

PadstackInstance.set_backdrill_top(drill_depth, drill_diameter, offset=0.0)#

Set backdrill from top.

.deprecated:: 0.55.0 Use :method:`set_back_drill_by_depth` instead.

Parameters:
drill_depthstr

Name of the drill to layer.

drill_diameterfloat, str

Diameter of backdrill size.

offsetstr, optional.

offset with respect to the layer to drill to.

Returns:
bool

True if success, False otherwise.

PadstackInstance.set_backdrill_bottom(drill_depth, drill_diameter, offset=0.0)#

Set backdrill from bottom.

.deprecated: 0.55.0 Use: method:set_back_drill_by_depth instead.

Parameters:
drill_depthstr

Name of the drill to layer.

drill_diameterfloat, str

Diameter of backdrill size.

offsetstr, optional.

offset with respect to the layer to drill to.

Returns:
bool

True if success, False otherwise.

PadstackInstance.create_terminal(name=None) pyedb.grpc.database.terminal.padstack_instance_terminal.PadstackInstanceTerminal#

Create a padstack instance terminal.

Returns:
:class:`PadstackInstanceTerminal
PadstackInstanceTerminal>`

PadstackInstanceTerminal object.

PadstackInstance.get_terminal(create_new_terminal=True) pyedb.grpc.database.terminal.padstack_instance_terminal.PadstackInstanceTerminal#

Returns padstack instance terminal.

Parameters:
create_new_terminalbool, optional

If terminal instance is not created, and value is True, a new PadstackInstanceTerminal is created.

Returns:
:class:`PadstackInstanceTerminal
PadstackInstanceTerminal>`

PadstackInstanceTerminal object.

PadstackInstance.create_coax_port(name=None, radial_extent_factor=0)#

Create a coax port.

Parameters:
namestr, optional.

Port name, the default is None, in which case a name is automatically assigned.

radial_extent_factorint, float, optional

Radial extent of coaxial port.

Returns:
Terminal

Port terminal.

PadstackInstance.create_port(name=None, reference=None, is_circuit_port=False)#

Create a port on the padstack instance.

Parameters:
namestr, optional

Name of the port. The default is None, in which case a name is automatically assigned.

referencereference net or pingroup optional

Negative terminal of the port.

is_circuit_portbool, optional

Whether it is a circuit port.

Returns:
Terminal

Port terminal.

PadstackInstance.in_polygon(polygon_data, include_partial=True, arbitrary_extent_value=0.0003) bool#

Check if padstack Instance is in given polygon data.

Parameters:
polygon_dataPolygonData Object
include_partialbool, optional

Whether to include partial intersecting instances. The default is True.

simple_checkbool, optional

Whether to perform a single check based on the padstack center or check the padstack bounding box.

arbitrary_extent_valuefloat, optional

When include_partial is True, an arbitrary value is used to create a bounding box for the padstack instance to check for intersection and save computation time during the cutout. The default is 300e-6.

Returns:
bool

True when successful, False when failed.

PadstackInstance.split() list#

Split padstack instance into multiple instances. The new instances only connect adjacent layers.

PadstackInstance.convert_hole_to_conical_shape(angle=75)#

Convert actual padstack instance to microvias 3D Objects with a given aspect ratio.

Parameters:
anglefloat, optional

Angle of laser penetration in degrees. The angle defines the lowest hole diameter with this formula: HoleDiameter -2*tan(laser_angle* Hole depth). Hole depth is the height of the via (dielectric thickness). The default is 75. The lowest hole is 0.75*HoleDepth/HoleDiam.

Returns:
PadstackInstance.get_backdrill_type(from_bottom=True)#

Return backdrill type Parameters ———- from_bottom : bool, optional

default value is True.

PadstackInstance.get_back_drill_by_layer(from_bottom=True) tuple[str, float, float]#

Get backdrill by layer.

Parameters:
from_bottombool, optional.

Default value is True.

PadstackInstance.get_back_drill_by_depth(from_bottom=True) tuple[float, float]#

Get back drill by depth parameters Parameters ———- from_bottom : bool, optional

Default value is True.

PadstackInstance.set_back_drill_by_depth(drill_depth, diameter, from_bottom=True)#

Set back drill by depth.

Parameters:
drill_depthstr, float

drill depth value

diameterstr, float

drill diameter

from_bottombool, optional

Default value is True.

PadstackInstance.set_back_drill_by_layer(drill_to_layer, offset, diameter, from_bottom=True)#

Set back drill layer.

Parameters:
drill_to_layerstr, Layer

Layer to drill to.

offsetstr, float

Offset value

diameterstr, float

Drill diameter

from_bottombool, optional

Default value is True

PadstackInstance.parametrize_position(prefix=None) list[str]#

Parametrize the instance position.

Parameters:
prefixstr, optional

Prefix for the variable name. Default is None. Example “MyVariableName” will create 2 Project variables $MyVariableNamesX and $MyVariableNamesY.

Returns:
List

List of variables created.

PadstackInstance.in_voids(net_name=None, layer_name=None) list[any]#

Check if this padstack instance is in any void.

Parameters:
net_namestr

Net name of the voids to be checked. Default is None.

layer_namestr

Layer name of the voids to be checked. Default is None.

Returns:
List[PadstackInstance]

List of the voids that include this padstack instance.

PadstackInstance.create_rectangle_in_pad(layer_name, return_points=False, partition_max_order=16)#

Create a rectangle inscribed inside a padstack instance pad.

The rectangle is fully inscribed in the pad and has the maximum area. It is necessary to specify the layer on which the rectangle will be created.

Parameters:
layer_namestr

Name of the layer on which to create the polygon.

return_pointsbool, optional

If True does not create the rectangle and just returns a list containing the rectangle vertices. Default is False.

partition_max_orderfloat, optional

Order of the lattice partition used to find the quasi-lattice polygon that approximates polygon. Default is 16.

Returns:
bool, List, Primitive

Polygon when successful, False when failed, list of list if return_points=True.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", edbversion="2021.2")
>>> edb_layout = edbapp.modeler
>>> list_of_padstack_instances = list(edbapp.padstacks.instances.values())
>>> padstack_inst = list_of_padstack_instances[0]
>>> padstack_inst.create_rectangle_in_pad("TOP")
PadstackInstance.get_reference_pins(reference_net='GND', search_radius=0.005, max_limit=0, component_only=True) list[any]#

Search for reference pins using given criteria.

Parameters:
reference_netstr, optional

Reference net. The default is "GND".

search_radiusfloat, optional

Search radius for finding padstack instances. The default is 5e-3.

max_limitint, optional

Maximum limit for the padstack instances found. The default is 0, in which case no limit is applied. The maximum limit value occurs on the nearest reference pins from the positive one that is found.

component_onlybool, optional

Whether to limit the search to component padstack instances only. The default is True. When False, the search is extended to the entire layout.

Returns:
List[PadstackInstance]

Examples

>>> edbapp = Edb("target_path")
>>> pin = edbapp.components.instances["J5"].pins["19"]
>>> reference_pins = pin.get_reference_pins(reference_net="GND", search_radius=5e-3, max_limit=0,
>>> component_only=True)
PadstackInstance.get_connected_objects()#

Get connected objects.

Returns:
List[LayoutObjInstance]