The hfss_auto_configuration.py module#

Summary#

SolderBallsInfo

Solder ball configuration for component modeling.

SimulationSetup

HFSS simulation setup parameters.

BatchGroup

Group of nets to be processed together in a batch simulation.

HFSSAutoConfiguration

Automatic HFSS simulation configuration from EDB designs.

create_hfss_auto_configuration

Factory function to create an HFSSAutoConfiguration instance with optional overrides.

Description#

HFSS automatic configuration workflow for SI/PI analysis.

This module provides tools to automatically configure HFSS simulations from EDB designs, including net grouping, batch processing, cutout generation, port creation, and simulation setup.

Examples#

Basic workflow for automatic HFSS configuration:

>>> from pyedb import Edb
>>> from pyedb.workflows.sipi.hfss_auto_configuration import HFSSAutoConfiguration
>>> edb = Edb("design.aedb")
>>> config = HFSSAutoConfiguration(edb)
>>> config.source_edb_path = "design.aedb"
>>> config.target_edb_path = "design_hfss.aedb"
>>> config.auto_populate_batch_groups()
>>> config.create_projects()

Create configuration with specific net groups:

>>> config = HFSSAutoConfiguration()
>>> config.source_edb_path = "my_design.aedb"
>>> config.group_nets_by_prefix(["DDR", "PCIe", "USB"])
>>> config.add_solder_ball("U1", diameter="0.3mm", height="0.2mm")
>>> config.create_projects()

Module detail#

hfss_auto_configuration.create_hfss_auto_configuration(edb: pyedb.Edb | None = None, ansys_version: str | None = None, grpc: bool | None = None, source_edb_path: str | None = None, target_edb_path: str | None = None, signal_nets: list | None = None, power_nets: list | None = None, reference_net: str | None = None, batch_size: int | None = None, batch_groups: list | None = None, components: list[str] | None = None, solder_balls: list | None = None, simulation_setup: SimulationSetup | None = None, extent_type: str | None = None, cutout_expansion: str | float | None = None, auto_mesh_seeding: bool | None = None, port_type: str | None = None, create_pin_group: bool | None = None) HFSSAutoConfiguration#

Factory function to create an HFSSAutoConfiguration instance with optional overrides.

This function creates a configuration object with all specified parameters, providing a convenient alternative to manual attribute assignment.

Parameters:
edbEdb or None, optional

Existing EDB object instance. The default is None.

ansys_versionstr or None, optional

ANSYS Electronics Desktop version. The default is None.

grpcbool or None, optional

Whether to use gRPC API mode. The default is None.

source_edb_pathstr or None, optional

Path to the source EDB file. The default is None.

target_edb_pathstr or None, optional

Path where configured EDB will be saved. The default is None.

signal_netslist or None, optional

List of signal net names. The default is None.

power_netslist or None, optional

List of power net names. The default is None.

reference_netstr or None, optional

Name of reference (ground) net. The default is None.

batch_sizeint or None, optional

Maximum nets per batch group. The default is None.

batch_groupslist or None, optional

Pre-configured batch groups. The default is None.

componentslist of str or None, optional

Component reference designators. The default is None.

solder_ballslist or None, optional

Solder ball configurations. The default is None.

simulation_setupSimulationSetup or None, optional

Global simulation settings. The default is None.

extent_typestr or None, optional

Cutout extent algorithm. The default is None.

cutout_expansionstr or float or None, optional

Cutout expansion margin. The default is None.

auto_mesh_seedingbool or None, optional

Enable automatic mesh seeding. The default is None.

port_typestr or None, optional

Port type to create. The default is None.

create_pin_groupbool or None, optional

Whether to create pin groups. The default is None.

Returns:
HFSSAutoConfiguration

Fully configured instance ready for use.

Examples

Create with basic settings:

>>> config = create_hfss_auto_configuration(
...     source_edb_path="design.aedb",
...     target_edb_path="design_hfss.aedb",
...     signal_nets=["DDR4_DQ0", "DDR4_CLK"],
...     reference_net="GND",
... )
>>> config.source_edb_path
'design.aedb'

Create with custom simulation setup:

>>> setup = SimulationSetup(stop_frequency="60GHz")
>>> config = create_hfss_auto_configuration(
...     source_edb_path="design.aedb", simulation_setup=setup, port_type="circuit_port"
... )
>>> config.simulation_setup.stop_frequency
'60GHz'
hfss_auto_configuration.ref_patterns = ['^GND\\d*$', '^GND_\\w+', '^GND$', '^VSS\\d*$', '^VSS\\w*', '^DGND$', '^AGND$', '^PGND$',...#
hfss_auto_configuration.combined_ref#