pyedb 0.8.0__tar.gz → 0.9.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pyedb might be problematic. Click here for more details.
- {pyedb-0.8.0 → pyedb-0.9.0}/PKG-INFO +2 -1
- {pyedb-0.8.0 → pyedb-0.9.0}/pyproject.toml +2 -1
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/__init__.py +1 -1
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb.py +58 -19
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/components.py +11 -11
- pyedb-0.9.0/src/pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py +520 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/padstack.py +53 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/siwave.py +31 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/stackup.py +1 -1
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/utilities/simulation_setup.py +22 -13
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/generic/settings.py +0 -1
- {pyedb-0.8.0 → pyedb-0.9.0}/LICENSE +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/README.md +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/application/Variables.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/application/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/clr_module.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/cell/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/model.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/configuration.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/definition/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/definition/component_def.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/definition/component_model.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/definition/definition_obj.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/definition/definitions.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/definition/package_def.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/dotnet/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/dotnet/database.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/dotnet/layout.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/dotnet/primitive.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/components_data.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/connectable.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/control_file.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/design_options.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/edbvalue.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/hfss_simulation_setup_data.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/layer_data.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/nets_data.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/padstacks_data.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/ports.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/primitives_data.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/simulation_configuration.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/siwave_simulation_setup_data.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/sources.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/terminals.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/utilities.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/edb_data/variables.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/general.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/geometry/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/geometry/point_data.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/geometry/polygon_data.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/hfss.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/layout.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/layout_validation.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/materials.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/net_class.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/nets.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/obj_base.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/utilities/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/edb_core/utilities/heatsink.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/dotnet/sim_setup_data/data/siw_dc_ir_settings.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/edb_logger.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/exceptions.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/generic/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/generic/constants.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/generic/data_handlers.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/generic/design_types.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/generic/filesystem.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/generic/general_methods.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/generic/plot.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/generic/process.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/bom/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/bom/bom.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/bom/bom_item.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/bom/characteristics.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/bom/refdes.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/content/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/content/color.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/content/content.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/content/dictionary_color.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/content/dictionary_fill.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/content/dictionary_line.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/content/entry_color.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/content/entry_line.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/content/fill.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/content/layer_ref.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/content/standard_geometries_dictionary.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/cad_data.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/component.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/drill.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/feature.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/layer.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/layer_feature.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/logical_net.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/outline.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/package.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_def.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_instance.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/path.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/phy_net.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/pin.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/polygon.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/profile.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/stackup.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_group.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_layer.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_data/step.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/cad_header.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/ecad.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ecad/spec.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/history_record.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/ipc2581.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/ipc2581/logistic_header.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/aedtlib_personalib_install.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/downloads.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/misc.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/pyedb.runtimeconfig.json +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/siw_feature_config/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/siw_feature_config/emc/__init__.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/siw_feature_config/emc/component_tags.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/siw_feature_config/emc/net_tags.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/siw_feature_config/emc/tag_library.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/siw_feature_config/emc/xml_generic.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/misc/utilities.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/modeler/geometry_operators.py +0 -0
- {pyedb-0.8.0 → pyedb-0.9.0}/src/pyedb/siwave.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyedb
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0
|
|
4
4
|
Summary: Higher-Level Pythonic Ansys Electronics Data Base
|
|
5
5
|
Author-email: "ANSYS, Inc." <pyansys.core@ansys.com>
|
|
6
6
|
Maintainer-email: PyEDB developers <simon.vandenbrouck@ansys.com>
|
|
@@ -21,6 +21,7 @@ Requires-Dist: ansys-pythonnet >= 3.1.0rc3
|
|
|
21
21
|
Requires-Dist: dotnetcore2 ==3.1.23;platform_system=='Linux'
|
|
22
22
|
Requires-Dist: pydantic>=2.6.4,<2.8
|
|
23
23
|
Requires-Dist: toml == 0.10.2
|
|
24
|
+
Requires-Dist: Rtree >= 1.2.0
|
|
24
25
|
Requires-Dist: ansys-sphinx-theme>=0.10.0,<0.16 ; extra == "doc"
|
|
25
26
|
Requires-Dist: imageio>=2.30.0,<2.35 ; extra == "doc"
|
|
26
27
|
Requires-Dist: ipython>=8.13.0,<8.24 ; extra == "doc"
|
|
@@ -57,6 +57,9 @@ from pyedb.dotnet.edb_core.edb_data.ports import (
|
|
|
57
57
|
GapPort,
|
|
58
58
|
WavePort,
|
|
59
59
|
)
|
|
60
|
+
from pyedb.dotnet.edb_core.edb_data.raptor_x_simulation_setup_data import (
|
|
61
|
+
RaptorXSimulationSetup,
|
|
62
|
+
)
|
|
60
63
|
from pyedb.dotnet.edb_core.edb_data.simulation_configuration import (
|
|
61
64
|
SimulationConfiguration,
|
|
62
65
|
)
|
|
@@ -174,15 +177,16 @@ class Edb(Database):
|
|
|
174
177
|
|
|
175
178
|
def __init__(
|
|
176
179
|
self,
|
|
177
|
-
edbpath=None,
|
|
178
|
-
cellname=None,
|
|
179
|
-
isreadonly=False,
|
|
180
|
-
edbversion=None,
|
|
181
|
-
isaedtowned=False,
|
|
180
|
+
edbpath: str = None,
|
|
181
|
+
cellname: str = None,
|
|
182
|
+
isreadonly: bool = False,
|
|
183
|
+
edbversion: str = None,
|
|
184
|
+
isaedtowned: bool = False,
|
|
182
185
|
oproject=None,
|
|
183
|
-
student_version=False,
|
|
184
|
-
use_ppe=False,
|
|
185
|
-
technology_file=None,
|
|
186
|
+
student_version: bool = False,
|
|
187
|
+
use_ppe: bool = False,
|
|
188
|
+
technology_file: str = None,
|
|
189
|
+
remove_existing_aedt: bool = False,
|
|
186
190
|
):
|
|
187
191
|
edbversion = get_string_version(edbversion)
|
|
188
192
|
self._clean_variables()
|
|
@@ -213,17 +217,8 @@ class Edb(Database):
|
|
|
213
217
|
os.path.dirname(edbpath),
|
|
214
218
|
"pyedb_" + os.path.splitext(os.path.split(edbpath)[-1])[0] + ".log",
|
|
215
219
|
)
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
for file in files:
|
|
219
|
-
if os.path.isfile(file):
|
|
220
|
-
try:
|
|
221
|
-
shutil.rmtree(file)
|
|
222
|
-
self.logger.info(f"Removing {file} to allow loading EDB file.")
|
|
223
|
-
except:
|
|
224
|
-
self.logger.info(
|
|
225
|
-
f"Failed to delete {file} which is located at the same location as the EDB file."
|
|
226
|
-
)
|
|
220
|
+
if not isreadonly:
|
|
221
|
+
self._check_remove_project_files(edbpath, remove_existing_aedt)
|
|
227
222
|
|
|
228
223
|
if isaedtowned and (inside_desktop or settings.remote_rpc_session):
|
|
229
224
|
self.open_edb_inside_aedt()
|
|
@@ -311,6 +306,22 @@ class Edb(Database):
|
|
|
311
306
|
if description: # Add the variable description if a two-item list is passed for variable_value.
|
|
312
307
|
self.__getitem__(variable_name).description = description
|
|
313
308
|
|
|
309
|
+
def _check_remove_project_files(self, edbpath: str, remove_existing_aedt: bool) -> None:
|
|
310
|
+
aedt_file = os.path.splitext(edbpath)[0] + ".aedt"
|
|
311
|
+
files = [aedt_file, aedt_file + ".lock"]
|
|
312
|
+
for file in files:
|
|
313
|
+
if os.path.isfile(file):
|
|
314
|
+
if not remove_existing_aedt:
|
|
315
|
+
self.logger.warning(
|
|
316
|
+
f"AEDT project-related file {file} exists and may need to be deleted before opening the EDB in HFSS 3D Layout." # noqa: E501
|
|
317
|
+
)
|
|
318
|
+
else:
|
|
319
|
+
try:
|
|
320
|
+
os.unlink(file)
|
|
321
|
+
self.logger.info(f"Deleted AEDT project-related file {file}.")
|
|
322
|
+
except:
|
|
323
|
+
self.logger.info(f"Failed to delete AEDT project-related file {file}.")
|
|
324
|
+
|
|
314
325
|
def _clean_variables(self):
|
|
315
326
|
"""Initialize internal variables and perform garbage collection."""
|
|
316
327
|
self._materials = None
|
|
@@ -3584,6 +3595,8 @@ class Edb(Database):
|
|
|
3584
3595
|
setups[i.GetName()] = SiwaveSYZSimulationSetup(self, i)
|
|
3585
3596
|
elif i.GetType() == self.edb_api.utility.utility.SimulationSetupType.kSIWaveDCIR:
|
|
3586
3597
|
setups[i.GetName()] = SiwaveDCSimulationSetup(self, i)
|
|
3598
|
+
elif i.GetType() == self.edb_api.utility.utility.SimulationSetupType.kRaptorX:
|
|
3599
|
+
setups[i.GetName()] = RaptorXSimulationSetup(self, i)
|
|
3587
3600
|
return setups
|
|
3588
3601
|
|
|
3589
3602
|
@property
|
|
@@ -3639,9 +3652,35 @@ class Edb(Database):
|
|
|
3639
3652
|
if name in self.setups:
|
|
3640
3653
|
self.logger.info("setup already exists")
|
|
3641
3654
|
return False
|
|
3655
|
+
elif not name:
|
|
3656
|
+
name = generate_unique_name("setup")
|
|
3642
3657
|
setup = HfssSimulationSetup(self).create(name)
|
|
3643
3658
|
return setup
|
|
3644
3659
|
|
|
3660
|
+
def create_raptorx_setup(self, name=None):
|
|
3661
|
+
"""Create an RaptorX simulation setup from a template.
|
|
3662
|
+
|
|
3663
|
+
Parameters
|
|
3664
|
+
----------
|
|
3665
|
+
name : str, optional
|
|
3666
|
+
Setup name.
|
|
3667
|
+
|
|
3668
|
+
Returns
|
|
3669
|
+
-------
|
|
3670
|
+
:class:`legacy.edb_core.edb_data.raptor_x_simulation_setup_data.RaptorXSimulationSetup`
|
|
3671
|
+
|
|
3672
|
+
"""
|
|
3673
|
+
if name in self.setups:
|
|
3674
|
+
self.logger.error("Setup name already used in the layout")
|
|
3675
|
+
return False
|
|
3676
|
+
version = self.edbversion.split(".")
|
|
3677
|
+
if int(version[0]) >= 2024 and int(version[-1]) >= 2 or int(version[0]) > 2024:
|
|
3678
|
+
setup = RaptorXSimulationSetup(self).create(name)
|
|
3679
|
+
return setup
|
|
3680
|
+
else:
|
|
3681
|
+
self.logger.error("RaptorX simulation only supported with Ansys release 2024R2 and higher")
|
|
3682
|
+
return False
|
|
3683
|
+
|
|
3645
3684
|
@pyedb_function_handler()
|
|
3646
3685
|
def create_siwave_syz_setup(self, name=None):
|
|
3647
3686
|
"""Create a setup from a template.
|
|
@@ -879,7 +879,7 @@ class Components(object):
|
|
|
879
879
|
Type of port to create. ``CoaxPort`` generates solder balls.
|
|
880
880
|
``CircuitPort`` generates circuit ports on pins belonging to the net list.
|
|
881
881
|
do_pingroup : bool
|
|
882
|
-
True activate pingroup during port creation (only used with combination of
|
|
882
|
+
True activate pingroup during port creation (only used with combination of CircPort),
|
|
883
883
|
False will take the closest reference pin and generate one port per signal pin.
|
|
884
884
|
refnet : string or list of string.
|
|
885
885
|
list of the reference net.
|
|
@@ -1016,17 +1016,10 @@ class Components(object):
|
|
|
1016
1016
|
else:
|
|
1017
1017
|
self._logger.info("No pins found on component {} for the net {}".format(component, net))
|
|
1018
1018
|
else:
|
|
1019
|
-
ref_pin_group = self.create_pingroup_from_pins(ref_pins)
|
|
1020
|
-
if not ref_pin_group:
|
|
1021
|
-
self._logger.warning("failed to create reference pin group")
|
|
1022
|
-
return False
|
|
1023
|
-
ref_pin_group_term = self._create_pin_group_terminal(ref_pin_group, isref=True)
|
|
1024
1019
|
for net in net_list:
|
|
1025
1020
|
pins = [pin for pin in cmp_pins if pin.GetNet().GetName() == net]
|
|
1026
1021
|
for pin in pins:
|
|
1027
|
-
|
|
1028
|
-
pin_group_term = self._create_pin_group_terminal(pin_group, isref=False)
|
|
1029
|
-
pin_group_term.SetReferenceTerminal(ref_pin_group_term)
|
|
1022
|
+
self.create_port_on_pins(component, pin, ref_pins)
|
|
1030
1023
|
return True
|
|
1031
1024
|
|
|
1032
1025
|
@pyedb_function_handler()
|
|
@@ -1335,7 +1328,7 @@ class Components(object):
|
|
|
1335
1328
|
return True
|
|
1336
1329
|
|
|
1337
1330
|
@pyedb_function_handler()
|
|
1338
|
-
def _create_pin_group_terminal(self, pingroup, isref=False, term_name=None):
|
|
1331
|
+
def _create_pin_group_terminal(self, pingroup, isref=False, term_name=None, term_type="circuit"):
|
|
1339
1332
|
"""Creates an EDB pin group terminal from a given EDB pin group.
|
|
1340
1333
|
|
|
1341
1334
|
Parameters
|
|
@@ -1343,10 +1336,13 @@ class Components(object):
|
|
|
1343
1336
|
pingroup : Edb pin group.
|
|
1344
1337
|
|
|
1345
1338
|
isref : bool
|
|
1339
|
+
Specify if this terminal a reference terminal.
|
|
1346
1340
|
|
|
1347
1341
|
term_name : Terminal name (Optional). If not provided default name is Component name, Pin name, Net name.
|
|
1348
1342
|
str.
|
|
1349
1343
|
|
|
1344
|
+
term_type: Type of terminal, gap, circuit or auto.
|
|
1345
|
+
str.
|
|
1350
1346
|
Returns
|
|
1351
1347
|
-------
|
|
1352
1348
|
Edb pin group terminal.
|
|
@@ -1360,6 +1356,10 @@ class Components(object):
|
|
|
1360
1356
|
pingroup_term = self._edb.cell.terminal.PinGroupTerminal.Create(
|
|
1361
1357
|
self._active_layout, pingroup.GetNet(), term_name, pingroup, isref
|
|
1362
1358
|
)
|
|
1359
|
+
if term_type == "circuit":
|
|
1360
|
+
pingroup_term.SetIsCircuitPort(True)
|
|
1361
|
+
elif term_type == "auto":
|
|
1362
|
+
pingroup_term.SetIsAutoPort(True)
|
|
1363
1363
|
return pingroup_term
|
|
1364
1364
|
|
|
1365
1365
|
@pyedb_function_handler()
|
|
@@ -2295,7 +2295,7 @@ class Components(object):
|
|
|
2295
2295
|
Filter on the net name as an alternative to
|
|
2296
2296
|
``pinName``. The default is ``None``.
|
|
2297
2297
|
pinName : str, optional
|
|
2298
|
-
Filter on the pin name an
|
|
2298
|
+
Filter on the pin name an alternative to
|
|
2299
2299
|
``netName``. The default is ``None``.
|
|
2300
2300
|
|
|
2301
2301
|
Returns
|