Erroneous cyclic dependency when using VHDL configurations
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 領域
- testing-qa
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- VHDL
- スター
- 850
- フォーク
- 305
- 平均マージ
- 2日 10時間
- マージ済み PR(30日)
- 7
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
VUnit/vunit のほかの issue
-
KeyError in test scheduler when using TestBench.scan_tests_from_file()対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
メンテナーはふだん 1 日以内に返信
-
GHDL: generics leak between configurations when `ghdl.sim_flags` is set対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
-
AXI slave VCs have identical stalling behavior対応中かも @Lay007 が 26 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Nimblesite/SharpLsp#468 ·
メンテナーはふだん 1 日以内に返信
-
ci-failure ci:assertion test
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
openwatersio/slackwater-ios#811 ·
メンテナーはふだん 1 日以内に返信
-
A-testing C-bug E-small P-low
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
test(bm_generation): pin the learning parameters and CPU sync shortcut対応中かも @iloveeyjafjalla が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
qboson/kaiwu-pytorch-plugin#1341 ·
メンテナーはふだん 2 日以内に返信