Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在VUnit中使用不同的参数文件运行相同的测试台_Python_Ghdl_Vunit - Fatal编程技术网

Python 在VUnit中使用不同的参数文件运行相同的测试台

Python 在VUnit中使用不同的参数文件运行相同的测试台,python,ghdl,vunit,Python,Ghdl,Vunit,我有一个具有以下结构的项目: tb_top ├── run.py └── src ├── tb_top.vhd ├── test_a │ ├── top_parameter.vhd │ ├── input.csv │ └── output.csv ├── test_b │ ├── top_parameter.vhd │ ├── input.csv │ └── output.csv └── ..

我有一个具有以下结构的项目:

tb_top
├── run.py
└── src
    ├── tb_top.vhd
    ├── test_a
    │   ├── top_parameter.vhd
    │   ├── input.csv
    │   └── output.csv
    ├── test_b
    │   ├── top_parameter.vhd
    │   ├── input.csv
    │   └── output.csv
    └── ...
src
├── bar.vhd
├── foo.vhd
└── top.vhd
top.vhd
包括每个测试用例的
foo.vhd
bar.vhd
以及
top\u参数.vhd
。在
run.py
中,首先编译
src/
文件夹中的文件,然后编译每个测试用例的
top\u参数.vhd
。所有文件都在同一个库中。运行
run.py
时,会显示以下错误:

tb_top/src/tb_top.vhd:44:20: entity "top" is obsoleted by package "top_parameter"
/usr/local/bin/ghdl: compilation error
显然,
top.vhd
应该在每次重新编译
top\u参数.vhd
时重新编译,但我不知道如何构造我的
run.py
。是否有正确编译测试的方法,而无需:

  • 为每个测试重新编译
    foo.vhd
    bar.vhd
  • 为每个测试复制相同的文件,如
    tb_top.vhd
    run.py

  • 我正在使用VUnit 4.2.0和ghdl的当前主版本。如果需要,我可以准备一个MWE。

    编译的库不能在VUnit中的测试运行之间更改。首选的解决方案是将参数作为顶级泛型传递,而不是使用单独的文件

    但是,我不想更改文件结构。所以在我的例子中,
    top_parameter.vhd
    和所有依赖文件被编译到每个测试用例的单独库中。为了选择正确的库,需要向测试台传递一个额外的泛型

    可以找到更多详细信息和其他选项