From 1df26cb37e45d6e0a1094b64733854e5d4ef062d Mon Sep 17 00:00:00 2001 From: svandenb-dev Date: Fri, 21 Jun 2024 15:40:33 +0200 Subject: [PATCH 1/4] hfsspi SimsetupInfo bug fixed --- .../edb_core/edb_data/hfss_pi_simulation_setup_data.py | 2 +- src/pyedb/dotnet/edb_core/utilities/simulation_setup.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py b/src/pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py index 299f839c7f..8d7e5d9e10 100644 --- a/src/pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py +++ b/src/pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py @@ -39,7 +39,7 @@ def __init__(self, pedb, edb_object=None): def create(self, name=None): """Create an HFSS setup.""" self._name = name - self._create(name) + self._create(name=name, simulation_setup_type=self._setup_type) return self @property diff --git a/src/pyedb/dotnet/edb_core/utilities/simulation_setup.py b/src/pyedb/dotnet/edb_core/utilities/simulation_setup.py index 4408f14fab..4bf44e4a78 100644 --- a/src/pyedb/dotnet/edb_core/utilities/simulation_setup.py +++ b/src/pyedb/dotnet/edb_core/utilities/simulation_setup.py @@ -100,7 +100,11 @@ def __init__(self, pedb, edb_object=None): @property def sim_setup_info(self): - return SimSetupInfo(self._pedb, sim_setup=self, edb_object=self._edb_object.GetSimSetupInfo()) + if self.type not in ["hfss_pi", "raptor_x"]: + return SimSetupInfo(self._pedb, sim_setup=self, edb_object=self._edb_object.GetSimSetupInfo()) + else: + if self._edb_setup_info: + return SimSetupInfo(self._pedb, sim_setup=self, edb_object=self._edb_setup_info) @sim_setup_info.setter def sim_setup_info(self, sim_setup_info): From 19355561b973aa5de048dc47d0e27c105b858932 Mon Sep 17 00:00:00 2001 From: svandenb-dev Date: Tue, 25 Jun 2024 20:12:45 +0200 Subject: [PATCH 2/4] temp --- .../dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py diff --git a/src/pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py b/src/pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py deleted file mode 100644 index e69de29bb2..0000000000 From 7471fa1934daf85a8ac42a9e2629f5dc06d4b994 Mon Sep 17 00:00:00 2001 From: svandenb-dev Date: Tue, 20 Aug 2024 16:06:52 +0200 Subject: [PATCH 3/4] create port in pin exception handling --- src/pyedb/dotnet/edb_core/components.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/pyedb/dotnet/edb_core/components.py b/src/pyedb/dotnet/edb_core/components.py index 0c2a22b684..d2bd66de62 100644 --- a/src/pyedb/dotnet/edb_core/components.py +++ b/src/pyedb/dotnet/edb_core/components.py @@ -848,12 +848,14 @@ def create_port_on_pins(self, refdes, pins, reference_pins, impedance=50.0, port if len([pin for pin in pins if isinstance(pin, str)]) == len(pins): cmp_pins = [] for pin_name in pins: - cmp_pin = [pin for pin in list(refdes_pins.values()) if pin_name == pin.name] - if not cmp_pin: - cmp_pin = [pin for pin in list(refdes_pins.values()) if pin_name == pin.name.split("-")[1]] - if cmp_pin: - cmp_pins.append(cmp_pin[0]) + cmp_pins = [pin for pin in list(refdes_pins.values()) if pin_name == pin.name] + if not cmp_pins: + for pin in list(refdes_pins.values()): + if pin.name and "-" in pin.name: + if pin_name == pin.name.split("-")[1]: + cmp_pins.append(pin) if not cmp_pins: + self._logger.warning("No pin found for creating port, skipping.") return pins = cmp_pins if not len([pin for pin in pins if isinstance(pin, EDBPadstackInstance)]) == len(pins): @@ -869,6 +871,7 @@ def create_port_on_pins(self, refdes, pins, reference_pins, impedance=50.0, port elif "-" in ref_pin_name and ref_pin_name.split("-")[1] in refdes_pins: ref_cmp_pins.append(refdes_pins[ref_pin_name.split("-")[1]]) if not ref_cmp_pins: + self._logger.warning("No reference pins found during port creation. Port is not defined.") return reference_pins = ref_cmp_pins if not reference_pins: From 5615b41dc9fa22f1a3cb2e251dca9ea64a3f9960 Mon Sep 17 00:00:00 2001 From: svandenb-dev Date: Wed, 21 Aug 2024 13:10:42 +0200 Subject: [PATCH 4/4] adding option to create pingroup on single pin with port --- src/pyedb/dotnet/edb_core/components.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/pyedb/dotnet/edb_core/components.py b/src/pyedb/dotnet/edb_core/components.py index 5944d345e3..ffe6ab7478 100644 --- a/src/pyedb/dotnet/edb_core/components.py +++ b/src/pyedb/dotnet/edb_core/components.py @@ -770,7 +770,16 @@ def create_source_on_component(self, sources=None): ) return True - def create_port_on_pins(self, refdes, pins, reference_pins, impedance=50.0, port_name=None, pec_boundary=False): + def create_port_on_pins( + self, + refdes, + pins, + reference_pins, + impedance=50.0, + port_name=None, + pec_boundary=False, + pingroup_on_single_pin=False, + ): """Create circuit port between pins and reference ones. Parameters @@ -796,6 +805,9 @@ def create_port_on_pins(self, refdes, pins, reference_pins, impedance=50.0, port a perfect short is created between the pin and impedance is ignored. This parameter is only supported on a port created between two pins, such as when there is no pin group. + pingroup_on_single_pin : bool + If ``True`` force using pingroup definition on single pin to have the port created at the pad center. If + ``False`` the port is created at the pad edge. Default value is ``False``. Returns ------- @@ -876,7 +888,7 @@ def create_port_on_pins(self, refdes, pins, reference_pins, impedance=50.0, port if not reference_pins: self._logger.error("No reference pins found.") return - if len(pins) > 1: + if len(pins) > 1 or pingroup_on_single_pin: pec_boundary = False self._logger.info( "Disabling PEC boundary creation, this feature is supported on single pin " @@ -889,7 +901,7 @@ def create_port_on_pins(self, refdes, pins, reference_pins, impedance=50.0, port else: term = self._create_terminal(pins[0].primitive_object, term_name=port_name) term.SetIsCircuitPort(True) - if len(reference_pins) > 1: + if len(reference_pins) > 1 or pingroup_on_single_pin: pec_boundary = False self._logger.info( "Disabling PEC boundary creation. This feature is supported on single pin"