Erroneous cyclic dependency when using VHDL configurations
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Ambito
- testing-qa
Direzione di ricerca
Start with the attached MVP project, especially the VHDL files showing the tb_top and testcase_top component and configuration relationship, then trace how VUnit builds dependencies for VHDL configurations. Compare it with vhdl_configuration and tb_selecting_test_runner_with_vhdl_configuration.vhd, where the configuration is in a separate file. Done means the reported false circular dependency is handled for the attached setup; the issue does not name a test to run.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hello,
we're using VHDL configurations in our Simulation Setup. With the current VUnit-5.0.0.dev10 this Setup fails with this error:
Re-compile not needed
Traceback (most recent call last):
File "C:\Python311\Lib\site-packages\vunit\ui\__init__.py", line 737, in main
all_ok = self._main(post_run)
^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\vunit\ui\__init__.py", line 783, in _main
all_ok = self._main_run(post_run)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\vunit\ui\__init__.py", line 1055, in _main_run
self._run_test(test_list, report, simulator_if)
File "C:\Python311\Lib\site-packages\vunit\ui\__init__.py", line 1233, in _run_test
latest_dependency_updates = self._get_latest_dependency_updates()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\vunit\ui\__init__.py", line 890, in _get_latest_dependency_updates
source_files_in_order = self._dependency_graph.toposort()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\vunit\dependency_graph.py", line 35, in toposort
self._visit(
File "C:\Python311\Lib\site-packages\vunit\dependency_graph.py", line 103, in _visit
visit(node)
File "C:\Python311\Lib\site-packages\vunit\dependency_graph.py", line 90, in visit
visit(other_node)
File "C:\Python311\Lib\site-packages\vunit\dependency_graph.py", line 90, in visit
visit(other_node)
File "C:\Python311\Lib\site-packages\vunit\dependency_graph.py", line 90, in visit
visit(other_node)
[Previous line repeated 2 more times]
File "C:\Python311\Lib\site-packages\vunit\dependency_graph.py", line 83, in visit
raise CircularDependencyException(path_ordered[start:] + [node])
vunit.dependency_graph.CircularDependencyException
This circular dependency is caused by the following construct:
tb_top instantiates testcase_top via component instantiation. testcase_top is split in a file for the enitity and multiple files with different architectures. There is one architecture per file with individual names (the testcases themself). In the architecture file is the needed configuration for the testcase_top instantiation aswell. This is the cause of the apparently false circular dependency. tb_top -> testcase_top -> tb_top.
In the provided example vhdl_configuration -> tb_selecting_test_runner_with_vhdl_configuration.vhd this behaviour does not occur. In this example the configuration is in a separate file (test_reset_behavioral.vhd) and the circular dependency error does not occur.
Sadly this is a worse solution due to the need to edit two files when adding a testcase.
What is the intended behaviour?
I have attached a MVP project displaying the described behaviour.
Thank you for your help and Kind Regards,
~ Raik
- Lingua principale
- VHDL
- Stelle
- 850
- Fork
- 305
- Merge medio
- 2g 10h
- PR unite (30g)
- 7
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di VUnit/vunit
-
KeyError in test scheduler when using TestBench.scan_tests_from_file()Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
GHDL: generics leak between configurations when `ghdl.sim_flags` is setForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
VUnit/vunit#1223 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
AXI slave VCs have identical stalling behaviorForse già presa @Lay007 l’ha presa 25 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
VUnit/vunit#1219 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Issue simili
-
rtdb-info-connected-order test: unhandled 'connection is closed' rejection fails the CLI suiteAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
e2e-failure ready-to-code
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
redhat-developer/rhdh-plugin-export-overlays#4486 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: fileUploadMatrix.test.ts URL case does a real DNS lookup and fails offlineForse già presa @r2jaff l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ComposioHQ/composio#5054 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
area/auth area/QE area/storage area/storage/sql
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Apicurio/apicurio-registry#10655 ·
I maintainer di solito rispondono entro 1 giorno