You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to get DC resistance value between 2 pins in a given net. Pin A and Pin B.
Here is my script in brief.
Create 2 separate pin_groups for the 2 pins. (edb.siwave.create_pin_group)
Create current source between the 2 pin_groups. (edb.siwave.create_current_source_on_pin_group)
Create voltage probe between the 2 pins. (edb.siwave.create_voltage_probe_on_pin_group)
Setup DC analysis(edb.siwave.add_siwave_dc_analysis)
Siwave_solver
Finally, Output handler.
Now, all the steps works ok, except for step 3.
I see the below error,
edb.siwave.create_voltage_probe_on_pin_group('v_probe', 'pin_grp1', 'pin_grp2')
ValueError Traceback (most recent call last)
Cell In[38], line 1
----> 1 edb.siwave.create_voltage_probe_on_pin_group('v_probe','pin_grp1','pin_grp2')
File ~\anaconda3\Lib\site-packages\pyedb\dotnet\edb_core\siwave.py:1360, in EdbSiwave.create_voltage_probe_on_pin_group(self, probe_name, pos_pin_group_name, neg_pin_group_name, impedance)
1341 """Create voltage probe between two pin groups.
1342
1343 Parameters
(...)
1357
1358 """
1359 pos_pin_group = self.pin_groups[pos_pin_group_name]
-> 1360 pos_terminal = pos_pin_group.create_voltage_probe_terminal(impedance)
1361 if probe_name:
1362 pos_terminal.SetName(probe_name)
File ~\anaconda3\Lib\site-packages\pyedb\dotnet\edb_core\edb_data\sources.py:386, in PinGroup.create_voltage_probe_terminal(self, impedance)
385 def create_voltage_probe_terminal(self, impedance=1000000):
--> 386 terminal = self.create_terminal()._edb_object
387 terminal.SetBoundaryType(self._pedb.edb_api.cell.terminal.BoundaryType.kVoltageProbe)
388 terminal.SetImpedance(self._pedb.edb_value(impedance))
File ~\anaconda3\Lib\site-packages\pyedb\dotnet\edb_core\edb_data\sources.py:363, in PinGroup.create_terminal(self, name)
358 from pyedb.dotnet.edb_core.cell.terminal.pingroup_terminal import (
359 PinGroupTerminal,
360 )
362 term = PinGroupTerminal(self._pedb, self._edb_object)
--> 363 term = term.create(name, self.net_name, self.name)
364 return term
File ~\anaconda3\Lib\site-packages\pyedb\dotnet\edb_core\cell\terminal\pingroup_terminal.py:63, in PinGroupTerminal.create(self, name, net_name, pin_group_name, is_ref)
61 if name in self._pedb.terminals:
62 msg += f"Terminal {name} already exists."
---> 63 raise ValueError(msg)
64 else:
65 return term
ValueError: Failed to create terminal.
Questions,
Any solution for this error please?
Is there a better methodology to extract single-ended DC resistance between 2 pins? (No GND resistance required)
SiWave instance is invoked and shut down every time I run the script for different set of pins. Is there a way I can have the SiWave open and fast calculate DCR between different set of pins? (Any skeleton code would help)
Hi @kestne,
1-thank you for sharing your issue. The error you get seems to comes from the fact you got a terminal already defined with the same name. The internal EDB api thrown an error when this happen. Could you please make sure you use unique names ?
2- I am not quite sure what you are asking, if you don't want reference (e.g. no current return path) you might consider using Q3D which is a quasi static solver. Btw the new release 2025R1 is providing a new beta feature using Q3D from layout (e.g with EDB).
3- I don't know exactly how your workflow is implemented but a new EDB should be created and solved for each project-setup variation. You can also call siwave_ng.exe and valcheck.exe along with .exec files to run all in batch without ui.
I hope it helps.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hi,
pyedb version = 0.34
I am trying to get DC resistance value between 2 pins in a given net. Pin A and Pin B.
Here is my script in brief.
Now, all the steps works ok, except for step 3.
I see the below error,
Questions,
Thanks
Beta Was this translation helpful? Give feedback.
All reactions