The pyedb.generic.design_types library#

Summary#

Edb

Provides the EDB application interface.

Siwave

Provides the SIwave application interface.

Module detail#

design_types.Edb(edbpath: str | None = None, cellname: str | None = None, isreadonly: bool = False, version: str | None = None, isaedtowned: bool = False, oproject: Any = None, student_version: bool = False, use_ppe: bool = False, map_file: str | None = None, technology_file: str | None = None, grpc: Literal[True] = ..., control_file: str | None = None, layer_filter: str | None = None, in_memory: bool = True) pyedb.grpc.edb.Edb#
design_types.Edb(edbpath: str | None = None, cellname: str | None = None, isreadonly: bool = False, version: str | None = None, isaedtowned: bool = False, oproject: Any = None, student_version: bool = False, use_ppe: bool = False, map_file: str | None = None, technology_file: str | None = None, grpc: Literal[False] = ..., control_file: str | None = None, layer_filter: str | None = None, in_memory: bool = True) pyedb.dotnet.edb.Edb
design_types.Edb(edbpath: str | None = None, cellname: str | None = None, isreadonly: bool = False, version: str | None = None, isaedtowned: bool = False, oproject: Any = None, student_version: bool = False, use_ppe: bool = False, map_file: str | None = None, technology_file: str | None = None, grpc: bool = ..., control_file: str | None = None, layer_filter: str | None = None, in_memory: bool = True) EdbGrpc | EdbDotnet
design_types.Edb(edbpath: str | None = None, cellname: str | None = None, isreadonly: bool = False, version: str | None = None, isaedtowned: bool = False, oproject: Any = None, student_version: bool = False, use_ppe: bool = False, map_file: str | None = None, technology_file: str | None = None, grpc: None = None, control_file: str | None = None, layer_filter: str | None = None, in_memory: bool = True) EdbGrpc | EdbDotnet

Provides the EDB application interface.

This module inherits all objects that belong to EDB.

Parameters:
edbpathstr, optional

Full path to the aedb folder. The variable can also contain the path to a layout to import. Allowed formats are BRD, XML (IPC2581), GDS, and DXF. The default is None. For GDS import, the Ansys control file (also XML) should have the same name as the GDS file. Only the file extension differs.

cellnamestr, optional

Name of the cell to select. The default is None.

isreadonlybool, optional

Whether to open EBD in read-only mode when it is owned by HFSS 3D Layout. The default is False.

versionstr, optional

Version of EDB to use. The default is None.

isaedtownedbool, optional

Whether to launch EDB from HFSS 3D Layout. The default is False.

oprojectAny, optional

Reference to the AEDT project object.

student_versionbool, optional

Whether to open the AEDT student version. The default is False.

use_ppebool, optional

Whether to use PPE license. The default is False.

map_filestr, optional

Layer MAP file. The default is None.

technology_filestr, optional

Full path to technology file to be converted to xml before importing or xml. Supported by GDS format only.

grpcbool | None, optional

Whether to enable gRPC. When omitted or set to None, PyEDB selects the backend automatically from the resolved AEDT version: False below 2026.1 and True from 2026.1 onward. Set this argument explicitly to False or True to force the backend selection. If settings.edb_dll_path is defined, the automatic selection falls back to the DotNet backend.

layer_filter: str,optional

Layer filter .txt file.

control_filestr, optional

Path to the XML file. The default is None, in which case an attempt is made to find the XML file in the same directory as the board file. To succeed, the XML file and board file must have the same name. Only the extension differs.

in_memorybool, optional

When the selected backend is gRPC, this flag enables the in-memory transport to bypass the network socket. Enabling this option is intended to increase performance when processes are running locally on the same machine. This feature status is Beta and the default value is True. If the required native library is not available, PyEDB automatically falls back to the standard RPC session.

Returns:
Edb or Edb

Examples

  1. Creating and Opening an EDB Database

>>> from pyedb import Edb

# Create a new EDB instance >>> edb = Edb()

# Open an existing AEDB database >>> edb = Edb(edbpath=”my_project.aedb”)

# Import a board file (BRD, XML, GDS, etc.) >>> edb = Edb(edbpath=”my_board.brd”)

  1. Cutout Operation

# Simple cutout with signal and reference nets >>> edb.cutout( >>> signal_list=[“PCIe”, “USB”], >>> reference_list=[“GND”] >>> )

# Advanced cutout with custom parameters >>> edb.cutout( >>> signal_list=[“DDR”], >>> reference_list=[“GND”], >>> extent_type=”ConvexHull”, >>> expansion_size=0.002, >>> use_round_corner=True, >>> output_aedb_path=”cutout.aedb”, >>> remove_single_pin_components=True >>> )

  1. Exporting Designs

# Export to IPC2581 format >>> edb.export_to_ipc2581(“output.xml”, units=”millimeter”)

# Export to HFSS project >>> edb.export_hfss(“hfss_output”)

# Export to Q3D project >>> edb.export_q3d(“q3d_output”, net_list=[“PowerNet”])

# Export to Maxwell project >>> edb.export_maxwell(“maxwell_output”)

  1. Simulation Setup

# Create SIwave SYZ setup >>> syz_setup = edb.create_siwave_syz_setup( >>> name=”GHz_Setup”, >>> start_freq=”1GHz”, >>> stop_freq=”10GHz” >>> )

# Create SIwave DC setup >>> dc_setup = edb.create_siwave_dc_setup(name=”DC_Analysis”, use_dc_point=True)

# Solve with SIwave >>> edb.solve_siwave()

  1. Database Management

# Save database >>> edb.save()

# Save as new database >>> edb.save_as(“new_project.aedb”)

# Close database >>> edb.close()

  1. Stackup and Material Operations

# Access stackup layers >>> for layer_name, layer in edb.stackup.layers.items(): >>> print(f”Layer: {layer_name}, Thickness: {layer.thickness}”)

# Add new material >>> edb.materials.add_material(“MyMaterial”, permittivity=4.3, loss_tangent=0.02)

# Change layer thickness >>> edb.stackup[“TopLayer”].thickness = “0.035mm”

  1. Port Creation

# Create wave port between two pins >>> wave_port = edb.excitation_manager.create_port( >>> positive_terminal=pin1, >>> negative_terminal=pin2, >>> port_type=”Wave” >>> )

# Create lumped port >>> lumped_port = edb.excitation_manager.create_port( >>> positive_terminal=via_terminal, >>> port_type=”Lumped” >>> )

  1. Component Management

# Delete components by type >>> edb.components.delete_component([“R1”, “C2”])

# Set component properties >>> edb.components[“U1”].set_property(“Value”, “10nH”)

  1. Parametrization

# Auto-parametrize design elements >>> params = edb.auto_parametrize_design( >>> traces=True, >>> pads=True, >>> antipads=True, >>> use_relative_variables=True >>> ) >>> print(“Created parameters:”, params)

  1. Design Statistics

# Get layout statistics with area calculation >>> stats = edb.get_statistics(compute_area=True) >>> print(f”Total nets: {stats.net_count}”) >>> print(f”Total components: {stats.component_count}”)

  1. Layout Validation

# Run DRC check >>> drc_errors = edb.layout_validation.run_drc() >>> print(f”Found {len(drc_errors)} DRC violations”)

  1. Differential Pairs

# Create differential pair >>> edb.differential_pairs.create(positive_net=”USB_P”, negative_net=”USB_N”, name=”USB_DP”)

  1. Workflow Automation

# Define and run workflow >>> workflow = edb.workflow >>> workflow.add_task(“Import”, file_path=”input.brd”) >>> workflow.add_task(“Cutout”, signal_nets=[“PCIe”]) >>> workflow.add_task(“Export”, format=”IPC2581”) >>> workflow.run()

design_types.Siwave(specified_version=None) pyedb.siwave.Siwave#

Provides the SIwave application interface.

Parameters:
specified_versionstr, optional

Version of SIwave to use. The default is None. If not specified, the latest installed version will be used.

design_types.DEFAULT_GRPC_VERSION = 2026.1#
design_types.app_map#