EdbHfss#

class pyedb.dotnet.database.hfss.EdbHfss(p_edb)#

Bases: object

Manages EDB method to configure Hfss setup accessible from Edb.hfss property.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder")
>>> edb_hfss = edb_3dedbapp.hfss

Overview#

get_trace_width_for_traces_with_ports

Retrieve the trace width for traces with ports.

create_circuit_port_on_pin

Create Circuit Port on Pin.

create_voltage_source_on_pin

Create a voltage source.

create_current_source_on_pin

Create a current source.

create_resistor_on_pin

Create a Resistor boundary between two given pins.

create_circuit_port_on_net

Create a circuit port on a NET.

create_voltage_source_on_net

Create a voltage source.

create_current_source_on_net

Create a current source.

create_coax_port_on_component

Create a coaxial port on a component or component list on a net or net list.

create_differential_wave_port

Create a differential wave port.

create_bundle_wave_port

Create a bundle wave port.

create_hfss_ports_on_padstack

Create an HFSS port on a padstack.

create_edge_port

Create an edge port on a primitive specific location.

create_edge_port_on_polygon

Create lumped port between two edges from two different polygons. Can also create a vertical port when

create_wave_port

Create a wave port.

create_edge_port_vertical

Create a vertical edge port.

create_edge_port_horizontal

Create a horizontal edge port.

create_lumped_port_on_net

Create an edge port on nets. This command looks for traces and polygons on the

create_vertical_circuit_port_on_clipped_traces

Create an edge port on clipped signal traces.

get_layout_bounding_box

Evaluate the layout bounding box.

add_setup

Adding method for grpc compatibility

get_ports_number

Return the total number of excitation ports in a layout.

create_rlc_boundary_on_pins

Create hfss rlc boundary on pins.

generate_auto_hfss_regions

Generate auto HFSS regions.

hfss_extent_info

HFSS extent information.

excitations

Get all ports.

ports

Get all ports.

sources

Get all sources.

probes

Get all probes.

Import detail#

from pyedb.dotnet.database.hfss import EdbHfss

Property detail#

property EdbHfss.hfss_extent_info#

HFSS extent information.

property EdbHfss.excitations: Dict[str, pyedb.dotnet.database.edb_data.ports.BundleWavePort | pyedb.dotnet.database.edb_data.ports.GapPort | pyedb.dotnet.database.edb_data.ports.CircuitPort | pyedb.dotnet.database.edb_data.ports.CoaxPort | pyedb.dotnet.database.edb_data.ports.WavePort]#

Get all ports.

Returns:
port dictionaryDict[str, [pyedb.dotnet.database.edb_data.ports.GapPort,

pyedb.dotnet.database.edb_data.ports.WavePort, pyedb.dotnet.database.edb_data.ports.CircuitPort, pyedb.dotnet.database.edb_data.ports.CoaxPort, pyedb.dotnet.database.edb_data.ports.BundleWavePort]]

property EdbHfss.ports: Dict[str, pyedb.dotnet.database.edb_data.ports.BundleWavePort | pyedb.dotnet.database.edb_data.ports.GapPort | pyedb.dotnet.database.edb_data.ports.CircuitPort | pyedb.dotnet.database.edb_data.ports.CoaxPort | pyedb.dotnet.database.edb_data.ports.WavePort]#

Get all ports.

Returns:
port dictionaryDict[str, [pyedb.dotnet.database.edb_data.ports.GapPort,

pyedb.dotnet.database.edb_data.ports.WavePort, pyedb.dotnet.database.edb_data.ports.CircuitPort, pyedb.dotnet.database.edb_data.ports.CoaxPort, pyedb.dotnet.database.edb_data.ports.BundleWavePort]]

property EdbHfss.sources: Dict[str, pyedb.dotnet.database.edb_data.ports.ExcitationSources]#

Get all sources.

property EdbHfss.probes: Dict[str, pyedb.dotnet.database.cell.terminal.pingroup_terminal.PinGroupTerminal | pyedb.dotnet.database.cell.terminal.point_terminal.PointTerminal | pyedb.dotnet.database.cell.terminal.bundle_terminal.BundleTerminal | pyedb.dotnet.database.cell.terminal.padstack_instance_terminal.PadstackInstanceTerminal | pyedb.dotnet.database.cell.terminal.edge_terminal.EdgeTerminal]#

Get all probes.

Method detail#

EdbHfss.get_trace_width_for_traces_with_ports()#

Retrieve the trace width for traces with ports.

Returns:
dict

Dictionary of trace width data.

EdbHfss.create_circuit_port_on_pin(pos_pin, neg_pin, impedance=50, port_name=None)#

Create Circuit Port on Pin.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_circuit_port_on_pin() instead.

Parameters:
pos_pinObject

Edb Pin

neg_pinObject

Edb Pin

impedancefloat

Port Impedance

port_namestr, optional

Port Name

>>> from pyedb import Edb
>>> edbapp = Edb(“myaedbfolder”, “project name”, “release version”)
>>> pins = edbapp.components.get_pin_from_component(“U2A5”)
>>> edbapp.excitation_manager.create_circuit_port_on_pin(pins[0], pins[1], 50, “port_name”)
Returns:
str

Port Name.

EdbHfss.create_voltage_source_on_pin(pos_pin, neg_pin, voltage_value=3.3, phase_value=0, source_name='')#

Create a voltage source.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_voltage_source_on_pin() instead.

Parameters:
pos_pinObject

Positive Pin.

neg_pinObject

Negative Pin.

voltage_valuefloat, optional

Value for the voltage. The default is 3.3.

phase_valueoptional

Value for the phase. The default is 0.

source_namestr, optional

Name of the source. The default is "".

Returns:
str

Source Name.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> pins = edbapp.components.get_pin_from_component("U2A5")
>>> edbapp.excitation_manager.create_voltage_source_on_pin(pins[0], pins[1], 50, "source_name")
EdbHfss.create_current_source_on_pin(pos_pin, neg_pin, current_value=0.1, phase_value=0, source_name='')#

Create a current source.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_current_source_on_pin() instead.

Parameters:
pos_pinObject

Positive Pin.

neg_pinObject

Negative Pin.

current_valuefloat, optional

Value for the current. The default is 0.1.

phase_valueoptional

Value for the phase. The default is 0.

source_namestr, optional

Name of the source. The default is "".

Returns:
str

Source Name.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> pins = edbapp.components.get_pin_from_component("U2A5")
>>> edbapp.excitation_manager.create_current_source_on_pin(pins[0], pins[1], 50, "source_name")
EdbHfss.create_resistor_on_pin(pos_pin, neg_pin, rvalue=1, resistor_name='')#

Create a Resistor boundary between two given pins.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_resistor_on_pin() instead.

Parameters:
pos_pinObject

Positive Pin.

neg_pinObject

Negative Pin.

rvaluefloat, optional

Resistance value. The default is 1.

resistor_namestr, optional

Name of the resistor. The default is "".

Returns:
str

Name of the Resistor.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> pins = edbapp.components.get_pin_from_component("U2A5")
>>> edbapp.excitation_manager.create_resistor_on_pin(pins[0], pins[1], 50, "res_name")
EdbHfss.create_circuit_port_on_net(positive_component_name, positive_net_name, negative_component_name=None, negative_net_name='GND', impedance_value=50, port_name='')#

Create a circuit port on a NET. It groups all pins belonging to the specified net and then applies the port on PinGroups.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_circuit_port_on_net() instead.

Parameters:
positive_component_namestr

Name of the positive component.

positive_net_namestr

Name of the positive net.

negative_component_namestr, optional

Name of the negative component. The default is None, in which case the name of the positive net is assigned.

negative_net_namestr, optional

Name of the negative net name. The default is "GND".

impedance_valuefloat, optional

Port impedance value. The default is 50.

port_namestr, optional

Name of the port. The default is "".

Returns:
str

The name of the port.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> edbapp.excitation_manager.create_circuit_port_on_net("U2A5", "V1P5_S3", "U2A5", "GND", 50, "port_name")
EdbHfss.create_voltage_source_on_net(positive_component_name, positive_net_name, negative_component_name=None, negative_net_name='GND', voltage_value=3.3, phase_value=0, source_name='')#

Create a voltage source.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_voltage_source_on_net() instead.

Parameters:
positive_component_namestr

Name of the positive component.

positive_net_namestr

Name of the positive net.

negative_component_namestr, optional

Name of the negative component. The default is None, in which case the name of the positive net is assigned.

negative_net_namestr, optional

Name of the negative net. The default is "GND".

voltage_valuefloat, optional

Value for the voltage. The default is 3.3.

phase_valueoptional

Value for the phase. The default is 0.

source_namestr, optional

Name of the source. The default is "".

Returns:
str

Source Name.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> edb.excitation_manager.create_voltage_source_on_net("U2A5", "V1P5_S3", "U2A5", "GND", 3.3, 0, "source_name")
EdbHfss.create_current_source_on_net(positive_component_name, positive_net_name, negative_component_name=None, negative_net_name='GND', current_value=0.1, phase_value=0, source_name='')#

Create a current source.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_current_source_on_net() instead.

Parameters:
positive_component_namestr

Name of the positive component.

positive_net_namestr

Name of the positive net.

negative_component_namestr, optional

Name of the negative component. The default is None, in which case the name of the positive net is assigned.

negative_net_namestr, optional

Name of the negative net. The default is "GND".

current_valuefloat, optional

Value for the current. The default is 0.1.

phase_valueoptional

Value for the phase. The default is 0.

source_namestr, optional

Name of the source. The default is "".

Returns:
str

Source Name.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> edb.excitation_manager.create_current_source_on_net("U2A5", "V1P5_S3", "U2A5", "GND", 0.1, 0, "source_name")
EdbHfss.create_coax_port_on_component(ref_des_list, net_list, delete_existing_terminal=False)#
Create a coaxial port on a component or component list on a net or net list.

The name of the new coaxial port is automatically assigned.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_coax_port_on_component() instead.

Parameters:
ref_des_listlist, str

List of one or more reference designators.

net_listlist, str

List of one or more nets.

delete_existing_terminalbool

Only active with grpc version. This argument is added only to ensure compatibility between DotNet and grpc.

Returns:
bool

True when successful, False when failed.

EdbHfss.create_differential_wave_port(positive_primitive_id, positive_points_on_edge, negative_primitive_id, negative_points_on_edge, port_name=None, horizontal_extent_factor=5, vertical_extent_factor=3, pec_launch_width='0.01mm')#

Create a differential wave port.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_differential_wave_port() instead.

Parameters:
positive_primitive_idint, EDBPrimitives

Primitive ID of the positive terminal.

positive_points_on_edgelist

Coordinate of the point to define the edge terminal. The point must be close to the target edge but not on the two ends of the edge.

negative_primitive_idint, EDBPrimitives

Primitive ID of the negative terminal.

negative_points_on_edgelist

Coordinate of the point to define the edge terminal. The point must be close to the target edge but not on the two ends of the edge.

port_namestr, optional

Name of the port. The default is None.

horizontal_extent_factorint, float, optional

Horizontal extent factor. The default value is 5.

vertical_extent_factorint, float, optional

Vertical extent factor. The default value is 3.

pec_launch_widthstr, optional

Launch Width of PEC. The default value is "0.01mm".

Returns:
tuple

The tuple contains: (port_name, pyedb.dotnet.database.edb_data.sources.ExcitationDifferential).

Examples

>>> edb.excitation_manager.create_differential_wave_port(0, ["-50mm", "-0mm"], 1, ["-50mm", "-0.2mm"])
EdbHfss.create_bundle_wave_port(primitives_id, points_on_edge, port_name=None, horizontal_extent_factor=5, vertical_extent_factor=3, pec_launch_width='0.01mm')#

Create a bundle wave port.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_bundle_wave_port() instead.

Parameters:
primitives_idlist

Primitive ID of the positive terminal.

points_on_edgelist

Coordinate of the point to define the edge terminal. The point must be close to the target edge but not on the two ends of the edge.

port_namestr, optional

Name of the port. The default is None.

horizontal_extent_factorint, float, optional

Horizontal extent factor. The default value is 5.

vertical_extent_factorint, float, optional

Vertical extent factor. The default value is 3.

pec_launch_widthstr, optional

Launch Width of PEC. The default value is "0.01mm".

Returns:
tuple

The tuple contains: (port_name, pyedb.egacy.database.edb_data.sources.ExcitationDifferential).

Examples

>>> edb.excitation_manager.create_bundle_wave_port(0, ["-50mm", "-0mm"], 1, ["-50mm", "-0.2mm"])
EdbHfss.create_hfss_ports_on_padstack(pinpos, portname=None)#

Create an HFSS port on a padstack.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_hfss_ports_on_padstack() instead.

Parameters:
pinpos

Position of the pin.

portnamestr, optional

Name of the port. The default is None.

Returns:
bool

True when successful, False when failed.

EdbHfss.create_edge_port(location, primitive_name, name, impedance=50, is_wave_port=True, horizontal_extent_factor=1, vertical_extent_factor=1, pec_launch_width=0.0001) pyedb.dotnet.database.edb_data.ports.WavePort#

Create an edge port on a primitive specific location.

Deprecated since version 0.70.0: Use pyedb.grpc.core.excitations.create_edge_port() instead.

Parameters:
locationlist

Port location.

primitive_namestr

Name of primitive.

namestr

Port name.

impedancefloat, optional

Impedance.

is_wave_portbool, optional

Whether if it is a wave port or gap port.

horizontal_extent_factorfloat, optional

Horizontal extent factor for wave ports.

vertical_extent_factorfloat, optional

Vertical extent factor for wave ports.

pec_launch_widthfloat, optional

Pec launcher width for wave ports.

EdbHfss.create_edge_port_on_polygon(polygon=None, reference_polygon=None, terminal_point=None, reference_point=None, reference_layer=None, port_name=None, port_impedance=50.0, force_circuit_port=False)#

Create lumped port between two edges from two different polygons. Can also create a vertical port when the reference layer name is only provided. When a port is created between two edge from two polygons which don’t belong to the same layer, a circuit port will be automatically created instead of lumped. To enforce the circuit port instead of lumped,use the boolean force_circuit_port.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_edge_port_on_polygon() instead.

Parameters:
polygonThe EDB polygon object used to assign the port.

Edb.Cell.Primitive.Polygon object.

reference_polygonThe EDB polygon object used to define the port reference.

Edb.Cell.Primitive.Polygon object.

terminal_pointThe coordinate of the point to define the edge terminal of the port. This point must be
located on the edge of the polygon where the port has to be placed. For instance taking the middle point
of an edge is a good practice but any point of the edge should be valid. Taking a corner might cause unwanted
port location.

list[float, float] with values provided in meter.

reference_pointsame as terminal_point but used for defining the reference location on the edge.

list[float, float] with values provided in meter.

reference_layerName used to define port reference for vertical ports.

str the layer name.

port_nameName of the port.

str.

port_impedanceport impedance value. Default value is 50 Ohms.

float, impedance value.

force_circuit_port ; used to force circuit port creation instead of lumped. Works for vertical and coplanar
ports.

Examples

>>> edb_path = path_to_edb
>>> edb = Edb(edb_path)
>>> poly_list = [poly for poly in list(edb.layout.primitives) if poly.GetPrimitiveType() == 2]
>>> port_poly = [poly for poly in poly_list if poly.GetId() == 17][0]
>>> ref_poly = [poly for poly in poly_list if poly.GetId() == 19][0]
>>> port_location = [-65e-3, -13e-3]
>>> ref_location = [-63e-3, -13e-3]
>>> edb.excitation_manager.create_edge_port_on_polygon(polygon=port_poly, reference_polygon=ref_poly,
>>> terminal_point=port_location, reference_point=ref_location)
EdbHfss.create_wave_port(prim_id, point_on_edge, port_name=None, impedance=50, horizontal_extent_factor=5, vertical_extent_factor=3, pec_launch_width='0.01mm')#

Create a wave port.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_wave_port() instead.

Parameters:
prim_idint, Primitive

Primitive ID.

point_on_edgelist

Coordinate of the point to define the edge terminal. The point must be on the target edge but not on the two ends of the edge.

port_namestr, optional

Name of the port. The default is None.

impedanceint, float, optional

Impedance of the port. The default value is 50.

horizontal_extent_factorint, float, optional

Horizontal extent factor. The default value is 5.

vertical_extent_factorint, float, optional

Vertical extent factor. The default value is 3.

pec_launch_widthstr, optional

Launch Width of PEC. The default value is "0.01mm".

Returns:
tuple

The tuple contains: (Port name, pyedb.dotnet.database.edb_data.sources.Excitation).

Examples

>>> edb.excitation_manager.create_wave_port(0, ["-50mm", "-0mm"])
EdbHfss.create_edge_port_vertical(prim_id, point_on_edge, port_name=None, impedance=50, reference_layer=None, hfss_type='Gap', horizontal_extent_factor=5, vertical_extent_factor=3, pec_launch_width='0.01mm')#

Create a vertical edge port.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_edge_port_vertical() instead.

Parameters:
prim_idint

Primitive ID.

point_on_edgelist

Coordinate of the point to define the edge terminal. The point must be on the target edge but not on the two ends of the edge.

port_namestr, optional

Name of the port. The default is None.

impedanceint, float, optional

Impedance of the port. The default value is 50.

reference_layerstr, optional

Reference layer of the port. The default is None.

hfss_typestr, optional

Type of the port. The default value is "Gap". Options are "Gap", "Wave".

horizontal_extent_factorint, float, optional

Horizontal extent factor. The default value is 5.

vertical_extent_factorint, float, optional

Vertical extent factor. The default value is 3.

radial_extent_factorint, float, optional

Radial extent factor. The default value is 0.

pec_launch_widthstr, optional

Launch Width of PEC. The default value is "0.01mm".

Returns:
str

Port name.

EdbHfss.create_edge_port_horizontal(prim_id, point_on_edge, ref_prim_id=None, point_on_ref_edge=None, port_name=None, impedance=50, layer_alignment='Upper')#

Create a horizontal edge port.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_edge_port_horizontal() instead.

Parameters:
prim_idint

Primitive ID.

point_on_edgelist

Coordinate of the point to define the edge terminal. The point must be on the target edge but not on the two ends of the edge.

ref_prim_idint, optional

Reference primitive ID. The default is None.

point_on_ref_edgelist, optional

Coordinate of the point to define the reference edge terminal. The point must be on the target edge but not on the two ends of the edge. The default is None.

port_namestr, optional

Name of the port. The default is None.

impedanceint, float, optional

Impedance of the port. The default value is 50.

layer_alignmentstr, optional

Layer alignment. The default value is Upper. Options are "Upper", "Lower".

Returns:
str

Name of the port.

EdbHfss.create_lumped_port_on_net(nets=None, reference_layer=None, return_points_only=False, digit_resolution=6, at_bounding_box=True)#

Create an edge port on nets. This command looks for traces and polygons on the nets and tries to assign vertical lumped port.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_lumped_port_on_net() instead.

Parameters:
netslist, optional

List of nets, str or Edb net.

reference_layerstr, Edb layer.

Name or Edb layer object.

return_points_onlybool, optional

Use this boolean when you want to return only the points from the edges and not creating ports. Default value is False.

digit_resolutionint, optional

The number of digits carried for the edge location accuracy. The default value is 6.

at_bounding_boxbool
When True will keep the edges from traces at the layout bounding box location. This is recommended when

a cutout has been performed before and lumped ports have to be created on ending traces. Default value is True.

Returns:
bool

True when successful, False when failed.

EdbHfss.create_vertical_circuit_port_on_clipped_traces(nets=None, reference_net=None, user_defined_extent=None)#

Create an edge port on clipped signal traces.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_vertical_circuit_port_on_clipped_traces() instead.

Parameters:
netslist, optional

String of one net or EDB net or a list of multiple nets or EDB nets.

reference_netstr, Edb net.

Name or EDB reference net.

user_defined_extent[x, y], EDB PolygonData

Use this point list or PolygonData object to check if ports are at this polygon border.

Returns:
[[str]]

Nested list of str, with net name as first value, X value for point at border, Y value for point at border, and terminal name.

EdbHfss.get_layout_bounding_box(layout=None, digit_resolution=6)#

Evaluate the layout bounding box.

Parameters:
layout

Edb layout.

digit_resolutionint, optional

Digit Resolution. The default value is 6.

Returns:
list

[lower left corner X, lower left corner, upper right corner X, upper right corner Y].

EdbHfss.add_setup(name=None)#

Adding method for grpc compatibility

EdbHfss.get_ports_number()#

Return the total number of excitation ports in a layout.

Parameters:
None
Returns:
int

Number of ports.

EdbHfss.create_rlc_boundary_on_pins(positive_pin=None, negative_pin=None, rvalue=0.0, lvalue=0.0, cvalue=0.0)#

Create hfss rlc boundary on pins.

Deprecated since version 0.70.0: Use pyedb.excitation_manager.create_rlc_boundary_on_pins() instead.

Parameters:
positive_pinPositive pin.

Edb.Cell.Primitive.PadstackInstance

negative_pinNegative pin.

Edb.Cell.Primitive.PadstackInstance

rvalueResistance value
lvalueInductance value
cvalue . Capacitance value.
Returns:
bool

True when successful, False when failed.

EdbHfss.generate_auto_hfss_regions()#

Generate auto HFSS regions.

This method automatically identifies areas for use as HFSS regions in SIwave simulations.