Hfss#

class pyedb.grpc.database.hfss.Hfss(p_edb)#

Bases: object

Manages EDB methods for HFSS setup configuration.

Provides access to HFSS-specific operations including: - Excitation and port creation - Source and probe management - Simulation setup configuration - Boundary condition creation - Layout manipulation for simulation

Accessed via Edb.hfss property.

Overview#

get_trace_width_for_traces_with_ports

Retrieve trace widths for traces with ports.

create_circuit_port_on_pin

Create circuit port between two pins (deprecated).

create_voltage_source_on_pin

Create voltage source between two pins (deprecated).

create_current_source_on_pin

Create current source between two pins (deprecated).

create_resistor_on_pin

Create resistor between two pins (deprecated).

create_circuit_port_on_net

Create circuit port on net (deprecated).

create_voltage_source_on_net

Create voltage source on net (deprecated).

create_current_source_on_net

Create current source on net (deprecated).

create_coax_port_on_component

Create coaxial port on component (deprecated).

create_differential_wave_port

Create differential wave port (deprecated).

create_bundle_wave_port

Create bundle wave port (deprecated).

create_hfss_ports_on_padstack

Create HFSS port on padstack (deprecated).

create_edge_port_on_polygon

Create edge port on polygon (deprecated).

create_wave_port

Create wave port (deprecated).

create_edge_port_vertical

Create vertical edge port (deprecated).

create_edge_port_horizontal

Create horizontal edge port (deprecated).

create_lumped_port_on_net

Create lumped port on net (deprecated).

create_vertical_circuit_port_on_clipped_traces

Create vertical circuit port on clipped traces (deprecated).

get_layout_bounding_box

Calculate layout bounding box.

configure_hfss_extents

Configure HFSS extent box (deprecated).

configure_hfss_analysis_setup

Configure HFSS analysis setup (deprecated).

trim_component_reference_size

Trim component reference size (deprecated).

set_coax_port_attributes

Set coaxial port attributes (deprecated).

get_ports_number

Get number of excitation ports.

layout_defeaturing

Defeature layout polygons (deprecated).

create_rlc_boundary_on_pins

Create RLC boundary on pins (deprecated).

add_setup

Add HFSS analysis setup.

hfss_extent_info

HFSS extent information.

excitations

All excitation definitions in the layout.

sources

All source definitions in the layout.

probes

All probe definitions in the layout.

Import detail#

from pyedb.grpc.database.hfss import Hfss

Property detail#

property Hfss.hfss_extent_info: pyedb.grpc.database.utility.hfss_extent_info.HfssExtentInfo#

HFSS extent information.

Returns:
HfssExtentInfo

Object containing HFSS extent configuration data.

property Hfss.excitations#

All excitation definitions in the layout.

Returns:
list

List of excitation objects.

property Hfss.sources#

All source definitions in the layout.

Returns:
list

List of source objects.

property Hfss.probes#

All probe definitions in the layout.

Returns:
list

List of probe objects.

Method detail#

Hfss.get_trace_width_for_traces_with_ports()#

Retrieve trace widths for traces with ports.

Returns:
dict

Dictionary mapping net names to smallest trace widths.

Examples

>>> widths = edb.hfss.get_trace_width_for_traces_with_ports()
>>> for net_name, width in widths.items():
...     print(f"Net '{net_name}': Smallest width = {width}")
Hfss.create_circuit_port_on_pin(pos_pin, neg_pin, impedance=50, port_name=None)#

Create circuit port between two pins (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_circuit_port_on_pin() instead.

Parameters:
pos_pinEdb.Cell.Primitive.PadstackInstance

Positive pin.

neg_pinEdb.Cell.Primitive.PadstackInstance

Negative pin.

impedancefloat, optional

Port impedance.

port_namestr, optional

Port name.

Returns:
str

Port name.

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

Create voltage source between two pins (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_voltage_source_on_pin() instead.

Parameters:
pos_pinEdb.Cell.Primitive.PadstackInstance

Positive pin.

neg_pinEdb.Cell.Primitive.PadstackInstance

Negative pin.

voltage_valuefloat, optional

Voltage value.

phase_valuefloat, optional

Phase value.

source_namestr, optional

Source name.

Returns:
str

Source name.

Hfss.create_current_source_on_pin(pos_pin, neg_pin, current_value=0.1, phase_value=0, source_name='')#

Create current source between two pins (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_current_source_on_pin() instead.

Parameters:
pos_pinEdb.Cell.Primitive.PadstackInstance

Positive pin.

neg_pinEdb.Cell.Primitive.PadstackInstance

Negative pin.

current_valuefloat, optional

Current value.

phase_valuefloat, optional

Phase value.

source_namestr, optional

Source name.

Returns:
str

Source name.

Hfss.create_resistor_on_pin(pos_pin, neg_pin, rvalue=1, resistor_name='')#

Create resistor between two pins (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_resistor_on_pin() instead.

Parameters:
pos_pinEdb.Cell.Primitive.PadstackInstance

Positive pin.

neg_pinEdb.Cell.Primitive.PadstackInstance

Negative pin.

rvaluefloat, optional

Resistance value.

resistor_namestr, optional

Resistor name.

Returns:
str

Resistor name.

Hfss.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 circuit port on net (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_circuit_port_on_net() instead.

Parameters:
positive_component_namestr

Positive component name.

positive_net_namestr

Positive net name.

negative_component_namestr, optional

Negative component name.

negative_net_namestr, optional

Negative net name.

impedance_valuefloat, optional

Port impedance.

port_namestr, optional

Port name.

Returns:
str

Port name.

Hfss.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 voltage source on net (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_voltage_source_on_net() instead.

Parameters:
positive_component_namestr

Positive component name.

positive_net_namestr

Positive net name.

negative_component_namestr, optional

Negative component name.

negative_net_namestr, optional

Negative net name.

voltage_valuefloat, optional

Voltage value.

phase_valuefloat, optional

Phase value.

source_namestr, optional

Source name.

Returns:
str

Source name.

Hfss.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 current source on net (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_current_source_on_net() instead.

Parameters:
positive_component_namestr

Positive component name.

positive_net_namestr

Positive net name.

negative_component_namestr, optional

Negative component name.

negative_net_namestr, optional

Negative net name.

current_valuefloat, optional

Current value.

phase_valuefloat, optional

Phase value.

source_namestr, optional

Source name.

Returns:
str

Source name.

Hfss.create_coax_port_on_component(ref_des_list, net_list, delete_existing_terminal=False)#

Create coaxial port on component (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_coax_port_on_component() instead.

Parameters:
ref_des_listlist, str

Reference designator(s).

net_listlist, str

Net name(s).

delete_existing_terminalbool, optional

Delete existing terminals.

Returns:
bool

True if successful, False otherwise.

Hfss.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 differential wave port (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_differential_wave_port() instead.

Parameters:
positive_primitive_idint, EDBPrimitives

Positive primitive ID.

positive_points_on_edgelist

Point coordinates on positive edge.

negative_primitive_idint, EDBPrimitives

Negative primitive ID.

negative_points_on_edgelist

Point coordinates on negative edge.

port_namestr, optional

Port name.

horizontal_extent_factorint, float, optional

Horizontal extent factor.

vertical_extent_factorint, float, optional

Vertical extent factor.

pec_launch_widthstr, optional

PEC launch width.

Returns:
tuple

(Port name, ExcitationDifferential) tuple.

Hfss.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 bundle wave port (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_bundle_wave_port() instead.

Parameters:
primitives_idlist

Primitive IDs.

points_on_edgelist

Point coordinates on edges.

port_namestr, optional

Port name.

horizontal_extent_factorint, float, optional

Horizontal extent factor.

vertical_extent_factorint, float, optional

Vertical extent factor.

pec_launch_widthstr, optional

PEC launch width.

Returns:
tuple

(Port name, ExcitationDifferential) tuple.

Hfss.create_hfss_ports_on_padstack(pinpos, portname=None)#

Create HFSS port on padstack (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_hfss_ports_on_padstack() instead.

Parameters:
pinpos

Pin position.

portnamestr, optional

Port name.

Returns:
bool

True if successful, False otherwise.

Hfss.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 edge port on polygon (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_edge_port_on_polygon() instead.

Parameters:
polygonEdb.Cell.Primitive.Polygon, optional

Port polygon.

reference_polygonEdb.Cell.Primitive.Polygon, optional

Reference polygon.

terminal_pointlist, optional

Terminal point coordinates.

reference_pointlist, optional

Reference point coordinates.

reference_layerstr, optional

Reference layer name.

port_namestr, optional

Port name.

port_impedancefloat, optional

Port impedance.

force_circuit_portbool, optional

Force circuit port creation.

Returns:
bool

True if successful, False otherwise.

Hfss.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 wave port (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_wave_port() instead.

Parameters:
prim_idint, Primitive

Primitive ID.

point_on_edgelist

Point coordinates on edge.

port_namestr, optional

Port name.

impedanceint, float, optional

Port impedance.

horizontal_extent_factorint, float, optional

Horizontal extent factor.

vertical_extent_factorint, float, optional

Vertical extent factor.

pec_launch_widthstr, optional

PEC launch width.

Returns:
tuple

(Port name, Excitation) tuple.

Hfss.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 vertical edge port (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_edge_port_vertical() instead.

Parameters:
prim_idint

Primitive ID.

point_on_edgelist

Point coordinates on edge.

port_namestr, optional

Port name.

impedanceint, float, optional

Port impedance.

reference_layerstr, optional

Reference layer name.

hfss_typestr, optional

Port type (“Gap” or “Wave”).

horizontal_extent_factorint, float, optional

Horizontal extent factor.

vertical_extent_factorint, float, optional

Vertical extent factor.

pec_launch_widthstr, optional

PEC launch width.

Returns:
str

Port name.

Hfss.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 horizontal edge port (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_edge_port_horizontal() instead.

Parameters:
prim_idint

Primitive ID.

point_on_edgelist

Point coordinates on edge.

ref_prim_idint, optional

Reference primitive ID.

point_on_ref_edgelist, optional

Point coordinates on reference edge.

port_namestr, optional

Port name.

impedanceint, float, optional

Port impedance.

layer_alignmentstr, optional

Layer alignment (“Upper” or “Lower”).

Returns:
str

Port name.

Hfss.create_lumped_port_on_net(nets, reference_layer, return_points_only, digit_resolution, at_bounding_box)#

Create lumped port on net (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_lumped_port_on_net() instead.

Parameters:
netslist

Net names or objects.

reference_layerstr, Edb.Layer

Reference layer name or object.

return_points_onlybool

Return points only without creating ports.

digit_resolutionint

Coordinate digit resolution.

at_bounding_boxbool

Use layout bounding box.

Returns:
bool

True if successful, False otherwise.

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

Create vertical circuit port on clipped traces (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_vertical_circuit_port_on_clipped_traces() instead.

Parameters:
netslist, optional

Net names or objects.

reference_netstr, Edb.Net, optional

Reference net name or object.

user_defined_extentlist, PolygonData, optional

User-defined extent polygon.

Returns:
list

List of port data [net_name, x, y, terminal_name].

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

Calculate layout bounding box.

Parameters:
layoutEdb.Cell.Layout, optional

Layout object (uses active layout if None).

digit_resolutionint, optional

Coordinate rounding precision.

Returns:
list

[min_x, min_y, max_x, max_y] coordinates.

Examples

>>> bbox = edb.hfss.get_layout_bounding_box()
>>> print(f"Layout Bounding Box: {bbox}")
>>>
>>> # With custom parameters
>>> custom_layout = edb.layouts["MyLayout"]
>>> bbox = edb.hfss.get_layout_bounding_box(custom_layout, 5)
Hfss.configure_hfss_extents(simulation_setup=None)#

Configure HFSS extent box (deprecated).

Deprecated since version 0.28.0: Use :func: pyedb.grpc.core.utility.simulation_configuration.ProcessSimulationConfiguration.configure_hfss_extents instead.

Parameters:
simulation_setupHfssSimulationSetup, optional

Simulation setup object.

Returns:
bool

True if successful, False otherwise.

Hfss.configure_hfss_analysis_setup(simulation_setup=None)#

Configure HFSS analysis setup (deprecated).

Deprecated since version 0.28.0: Use :func: pyedb.grpc.core.utility.simulation_configuration.ProcessSimulationConfiguration.configure_hfss_analysis_setup instead.

Parameters:
simulation_setupHfssSimulationSetup, optional

Simulation setup object.

Returns:
bool

True if successful, False otherwise.

Hfss.trim_component_reference_size(simulation_setup=None, trim_to_terminals=False)#

Trim component reference size (deprecated).

Deprecated since version 0.28.0: Use :func: pyedb.grpc.core.utility.simulation_configuration.ProcessSimulationConfiguration.trim_component_reference_size instead.

Parameters:
simulation_setupHfssSimulationSetup, optional

Simulation setup object.

trim_to_terminalsbool, optional

Trim to active terminals only.

Hfss.set_coax_port_attributes(simulation_setup=None)#

Set coaxial port attributes (deprecated).

Deprecated since version 0.28.0: Use :func: pyedb.grpc.core.utility.simulation_configuration.ProcessSimulationConfiguration.set_coax_port_attributes instead.

Parameters:
simulation_setupHfssSimulationSetup, optional

Simulation setup object.

Hfss.get_ports_number()#

Get number of excitation ports.

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitation.get_ports_number() instead.

Returns:
int

Number of ports.

Hfss.layout_defeaturing(simulation_setup=None)#

Defeature layout polygons (deprecated).

Deprecated since version 0.28.0: Use :func: pyedb.grpc.core.utility.simulation_configuration.ProcessSimulationConfiguration.layout_defeaturing instead.

Parameters:
simulation_setupHfssSimulationSetup, optional

Simulation setup object.

Returns:
bool

True if successful, False otherwise.

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

Create RLC boundary on pins (deprecated).

Deprecated since version 0.28.0: Use pyedb.grpc.core.excitations.create_rlc_boundary_on_pins() instead.

Parameters:
positive_pinEdb.Cell.Primitive.PadstackInstance, optional

Positive pin.

negative_pinEdb.Cell.Primitive.PadstackInstance, optional

Negative pin.

rvaluefloat, optional

Resistance value.

lvaluefloat, optional

Inductance value.

cvaluefloat, optional

Capacitance value.

Returns:
bool

True if successful, False otherwise.

Hfss.add_setup(name=None, distribution='linear', start_freq=0, stop_freq=20000000000.0, step_freq=1000000.0, discrete_sweep=False) pyedb.grpc.database.simulation_setup.hfss_simulation_setup.HfssSimulationSetup#

Add HFSS analysis setup.

Parameters:
namestr, optional

Setup name (auto-generated if None).

distributionstr, optional

Sweep distribution type (“linear”, “linear_count”, “decade_count”, “octave_count”, “exponential”).

start_freqfloat, str, optional

Starting frequency (Hz).

stop_freqfloat, str, optional

Stopping frequency (Hz).

step_freqfloat, str, int, optional

Frequency step (Hz) or count depending on distribution.

discrete_sweepbool, optional

Use discrete sweep.

Returns:
HfssSimulationSetup

Created setup object.

Examples

>>> hfss_setup = edb.hfss.add_setup(
...     name="MySetup",
...     distribution="linear_count",
...     start_freq=1e9,
...     stop_freq=10e9,
...     step_freq=100,
... )