请帮助解决我面临的一个与禁用DUT实例相关的问题。我的DUT top模块中有许多实例,但我的测试不需要它们。有没有办法从test-bench中禁用这些实例?
例如,这是我的DUT模块原型:
module top (…….);
// instances needs to be disabled
module1 #(16) inst1 (.CLK(clk_100),.PAD_RSTN(ext_reset_n),.RSTN(global_reset_n));
module2 #(16) inst2 (.CLK(clk_100),.PAD_RSTN(ext_reset_n),.RSTN(pcie_reset_n));
pcie_module #(…) inst_pci (…..);
// main test target instances
target_testmodule #(…) test_inst(…);
child1_of_target_testmodule #(…) test_inst_child1(…);
child2_of_target_testmodule #(…) test_inst_child2(…);
endmodule因此,我的测试平台将只测试target_testmodule及其子模块。我使用bind将接口连接到target_testmodule,然后开始驱动target_testmodule的引脚。并且target_testmodule驱动其子模块引脚。
因此,对于这个测试,我不需要pci_module实例或其他实例,因为它们是大实例,需要花费很多时间,提供大量警告,而且它们还驱动一些我不需要的target_testmodule端口。
我的问题是,是否有某种机制可以在测试台上禁用pci模块。我没有顶部模块的写权限来注释实例或将它们放入` `ifdefs中。
发布于 2017-03-09 16:07:13
generate或ifdef语句中。的方法有多种
发布于 2017-03-10 02:37:30
除了获得写权限之外,下一个最简单的方法就是让你自己拥有top。
Verilog (自IEEE1364-2001以来)和SystemVerilog确实有办法将同名的不同模块编译到不同的库中,然后使用配置来决定在细化过程中将使用哪个模块。您可以使用此技术将不需要的模块实例与简化或虚拟版本进行交换。根据您的测试环境的配置,实现这些配置可能会很棘手。如果你准备好迎接挑战,请阅读IEEE Std 1800-2012§33。配置设计的内容
https://stackoverflow.com/questions/42689029
复制相似问题