运行 VUnit 中具有不同参数文件的相同测试平台
Run same testbench with different parameter files in 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
└── ...
src
├── bar.vhd
├── foo.vhd
└── top.vhd
top.vhd
包括每个测试用例的foo.vhd
、bar.vhd
以及top_parameter.vhd
。在 run.py
中,首先编译 src/
文件夹中的文件,然后为每个测试用例编译 top_parameter.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_parameter.vhd
重新编译时,top.vhd
都应该重新编译,但我不知道如何构建我的 run.py
。有没有办法正确编译测试,没有:
- 为每个测试重新编译
foo.vhd
和 bar.vhd
?
- 为每个测试复制相同的文件,例如
tb_top.vhd
和 run.py
?
我正在使用 VUnit 4.2.0 和当前的 ghdl 大师。如果需要,我可以准备一个MWE。
编译的库不能在 VUnit 中的测试运行之间更改。首选解决方案是将参数作为顶级泛型传递,而不是使用单独的文件。
但是,我不想更改文件结构。所以在我的例子中,top_parameter.vhd
和所有相关文件都被编译到每个测试用例的单独库中。为了选择正确的库,一个额外的泛型被传递到测试平台。
可以找到更多详细信息和其他选项 here。
我有一个结构如下的项目:
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_parameter.vhd
。在 run.py
中,首先编译 src/
文件夹中的文件,然后为每个测试用例编译 top_parameter.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_parameter.vhd
重新编译时,top.vhd
都应该重新编译,但我不知道如何构建我的 run.py
。有没有办法正确编译测试,没有:
- 为每个测试重新编译
foo.vhd
和bar.vhd
? - 为每个测试复制相同的文件,例如
tb_top.vhd
和run.py
?
我正在使用 VUnit 4.2.0 和当前的 ghdl 大师。如果需要,我可以准备一个MWE。
编译的库不能在 VUnit 中的测试运行之间更改。首选解决方案是将参数作为顶级泛型传递,而不是使用单独的文件。
但是,我不想更改文件结构。所以在我的例子中,top_parameter.vhd
和所有相关文件都被编译到每个测试用例的单独库中。为了选择正确的库,一个额外的泛型被传递到测试平台。
可以找到更多详细信息和其他选项 here。