Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Erroneous cyclic dependency when using VHDL configurations

オープン
#1,183 コメント 5 件 リアクション 1 件 担当者 0 名 GitHub で見る

メンテナーはふだん 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.

tb_dff.zip

Thank you for your help and Kind Regards,
~ Raik

主要言語
VHDL
スター
850
フォーク
305
平均マージ
2日 10時間
マージ済み PR(30日)
7

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

VUnit/vunit のほかの issue

VUnit/vunit の issue をすべて見る

似ている issue

Testing & QA の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。