是否可以在 VHDL Testbench 中访问 uut 的组件?
Is it possible to access components of the uut in VHDL Testbench?
我想为实例化多个组件但没有重要输出的模块编写测试平台。为了测试正确性,我必须访问 uut 组件的变量。至少能够访问 uut 的变量会有所帮助。
我想像这样工作:
uut: top_module port map(
i_clk => clk,
i_reset => reset
);
testbench: process
begin
wait for CLK_PERIOD;
report STD_LOGIC'image(top_module.flag) severity note;
end process;
当然,我可以编写测试台来替换顶层模块,但那样我就无法测试该模型了。扩展顶部 module/uut 的输出也不是真正的选择。
借助 VHDL 2008,您可以使用新的 external names 语法:
alias int1 << signal .tb_top.u_ioc.int1 : std_logic >>;
对于早期的 VHDL 标准,您必须使用特定于供应商的工具,例如signal_spy 对于 Questa/ModelSim.
另一种方法是在较低级别编写测试平台,例如在测试平台内连接您的子组件,而不是测试最高级别的实体。
我想为实例化多个组件但没有重要输出的模块编写测试平台。为了测试正确性,我必须访问 uut 组件的变量。至少能够访问 uut 的变量会有所帮助。
我想像这样工作:
uut: top_module port map(
i_clk => clk,
i_reset => reset
);
testbench: process
begin
wait for CLK_PERIOD;
report STD_LOGIC'image(top_module.flag) severity note;
end process;
当然,我可以编写测试台来替换顶层模块,但那样我就无法测试该模型了。扩展顶部 module/uut 的输出也不是真正的选择。
借助 VHDL 2008,您可以使用新的 external names 语法:
alias int1 << signal .tb_top.u_ioc.int1 : std_logic >>;
对于早期的 VHDL 标准,您必须使用特定于供应商的工具,例如signal_spy 对于 Questa/ModelSim.
另一种方法是在较低级别编写测试平台,例如在测试平台内连接您的子组件,而不是测试最高级别的实体。