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
和所有依赖文件被编译到每个测试用例的单独库中。为了选择正确的库,需要向测试台传递一个额外的泛型
可以找到更多详细信息和其他选项