Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EdbSiwave.create_current_source_on_pin_group() does not allow re-use of a pin group #998

Open
2 tasks done
Marcel0000 opened this issue Jan 24, 2025 · 2 comments
Open
2 tasks done
Labels
bug Something isn't working

Comments

@Marcel0000
Copy link

Before submitting the issue

  • I have searched among the existing issues
  • I am using a Python virtual environment

Description of the bug

Using the function EdbSiwave.create_current_source_on_pin_group() to create a current source between two pin groups does work.

However, when trying to add a second pin group to the same negative pin group, it fails to create the second source.
It raises the error Failed to create terminal.
The error is raised in the following code:

File [...]\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

The same applies to EdbSiwave.create_voltage_source_on_pin_group().

When the sources are created with the GUI, it works as expected, so this seems to be an pyedb issue and not tool related.

Steps To Reproduce

Try to create a current source between two pin groups with the above listed function.

Which Operating System are you using?

Windows

Which Python version are you using?

3.10

Installed packages

aiohappyeyeballs==2.4.4
aiohttp==3.11.11
aiosignal==1.3.2
alabaster==1.0.0
annotated-types==0.7.0
ansys-pythonnet==3.1.0rc6
ansys-tools-visualization-interface==0.8.1
anyio==4.8.0
arrow==1.3.0
astroid==3.3.8
asttokens==3.0.0
asyncssh==2.19.0
atomicwrites==1.4.1
attrs==24.2.0
autopep8==2.0.4
babel==2.16.0
beautifulsoup4==4.12.3
binaryornot==0.4.4
black==24.10.0
bleach==6.2.0
blosc2==3.0.0
certifi==2024.12.14
cffi==1.17.1
chardet==5.2.0
charset-normalizer==3.4.1
click==8.1.8
cloudpickle==3.1.1
clr_loader==0.2.7.post0
colorama==0.4.6
comm==0.2.2
contourpy==1.3.1
cookiecutter==2.6.0
cryptography==44.0.0
cycler==0.12.1
debugpy==1.8.12
decorator==5.1.1
defusedxml==0.7.1
Deprecated==1.2.15
diff-match-patch==20241021
dill==0.3.9
docstring-to-markdown==0.15
docutils==0.21.2
et_xmlfile==2.0.0
executing==2.2.0
fast_simplification==0.1.9
fastjsonschema==2.21.1
flake8==7.1.1
fonttools==4.55.4
fpdf2==2.8.2
frozenlist==1.5.0
geopandas==1.0.1
h11==0.14.0
httpcore==1.0.7
httpx==0.28.1
idna==3.10
imageio==2.37.0
imagesize==1.4.1
importlib_metadata==8.6.1
inflection==0.5.1
intervaltree==3.1.0
ipykernel==6.29.5
ipython==8.31.0
isort==5.13.2
jaraco.classes==3.4.0
jaraco.context==6.0.1
jaraco.functools==4.1.0
jedi==0.19.2
jellyfish==1.1.3
Jinja2==3.1.5
joblib==1.4.2
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
jupyter_client==8.6.3
jupyter_core==5.7.2
jupyterlab_pygments==0.3.0
keyring==25.6.0
kiwisolver==1.4.8
markdown-it-py==3.0.0
MarkupSafe==3.0.2
matplotlib==3.10.0
matplotlib-inline==0.1.7
mccabe==0.7.0
mdurl==0.1.2
meshio==5.3.5
mistune==3.1.0
more-itertools==10.6.0
msgpack==1.1.0
multidict==6.1.0
mypy-extensions==1.0.0
nbclient==0.10.2
nbconvert==7.16.5
nbformat==5.10.4
ndindex==1.9.2
nest-asyncio==1.6.0
networkx==3.4.2
numexpr==2.10.2
numpy==2.2.2
numpydoc==1.8.0
openpyxl==3.1.5
osmnx==2.0.1
packaging==24.2
pandas==2.2.3
pandocfilters==1.5.1
parso==0.8.4
pathspec==0.12.1
pexpect==4.9.0
pickleshare==0.7.5
pillow==11.1.0
platformdirs==4.3.6
pluggy==1.5.0
plumbum==1.9.0
pooch==1.8.2
prompt_toolkit==3.0.50
propcache==0.2.1
psutil==6.1.1
ptyprocess==0.7.0
pure_eval==0.2.3
py-cpuinfo==9.0.0
pyaedt==0.13.2
pycodestyle==2.12.1
pycparser==2.22
pydantic==2.10.5
pydantic_core==2.27.2
pydocstyle==6.3.0
pyedb==0.35.0
pyflakes==3.2.0
PyGithub==2.5.0
Pygments==2.19.1
PyJWT==2.10.1
pylint==3.3.3
pylint-venv==3.0.4
pyls-spyder==0.4.0
PyNaCl==1.5.0
pyogrio==0.10.0
pyparsing==3.2.1
pyproj==3.7.0
PyQt5==5.15.11
PyQt5-Qt5==5.15.2
PyQt5_sip==12.16.1
PyQtWebEngine==5.15.7
PyQtWebEngine-Qt5==5.15.2
python-dateutil==2.9.0.post0
python-lsp-black==2.0.0
python-lsp-jsonrpc==1.1.2
python-lsp-server==1.12.0
python-slugify==8.0.4
pytoolconfig==1.3.1
pytz==2024.2
pyuca==1.2
pyvista==0.44.2
pywin32==308
pywin32-ctypes==0.2.3
PyYAML==6.0.2
pyzmq==26.2.0
QDarkStyle==3.2.3
qstylizer==0.2.4
QtAwesome==1.3.1
qtconsole==5.6.1
QtPy==2.4.2
referencing==0.35.1
requests==2.32.3
rich==13.9.4
rope==1.13.0
rpds-py==0.22.3
rpyc==6.0.1
Rtree==1.3.0
scikit-learn==1.6.1
scikit-rf==1.5.0
scipy==1.15.1
scooby==0.10.0
setuptools==75.1.0
shapely==2.0.6
six==1.17.0
sniffio==1.3.1
snowballstemmer==2.2.0
sortedcontainers==2.4.0
soupsieve==2.6
Sphinx==8.1.3
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
spyder==6.0.3
spyder-kernels==3.0.2
SRTM.py==0.3.7
stack-data==0.6.3
superqt==0.7.1
tables==3.10.2
tabulate==0.9.0
text-unidecode==1.3
textdistance==4.6.3
threadpoolctl==3.5.0
three-merge==0.1.1
tinycss2==1.4.0
toml==0.10.2
tomli_w==1.2.0
tomlkit==0.13.2
tornado==6.4.2
traitlets==5.14.3
trame==3.7.6
trame-client==3.5.2
trame-server==3.3.0
trame-vtk==2.8.14
trame-vuetify==2.8.0
types-python-dateutil==2.9.0.20241206
typing_extensions==4.12.2
tzdata==2025.1
ujson==5.10.0
urllib3==2.3.0
utm==0.7.0
vtk==9.3.1
watchdog==6.0.0
wcwidth==0.2.13
webencodings==0.5.1
websockets==14.2
whatthepatch==1.0.7
wheel==0.44.0
wrapt==1.17.2
wslink==2.2.2
yapf==0.43.0
yarl==1.18.3
zipp==3.21.0

@Marcel0000 Marcel0000 added the bug Something isn't working label Jan 24, 2025
@svandenb-dev
Copy link
Collaborator

@Marcel0000 thank you for contacting us.
I think you might face naming conflicts, the EDB internal API does not accept terminal with same name.
What so you think about creating single pingroup and assigning source on individual pins ?
that would results in the same configuration and I believe would be more clear (unless I didn't 100% got what you are trying to setup). Generally speaking having overlapping pingroups should be avoided when possible.

@Marcel0000
Copy link
Author

@svandenb-dev thanks for getting back. Sorry, I just realized there was a typo in my description:

However, when trying to add a second pin group to the same negative pin group, it fails to create the second source.

It should be: ... second current source ...

Use case is:
Components (connectors, ICs...) have one ground, but several supplies. So I add one pin group for the ground and one pin group for each supply net.
I then want to add current/voltage sources between the supply pin groups and the one GND pin group of the component.
This means there are no overlapping pin groups here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants