Verilog 从测试台访问子模块中的输入和输出

Verilog 从测试台访问子模块中的输入和输出,verilog,Verilog,我的被测设备(DUT)有许多子模块,我想测试其中的一些 我的测试夹具将是我项目的顶层-比DUT高一级-并且由于我似乎只能访问一级以下模块的输入和输出,我只能访问DUT的顶层输入和输出 我希望能够访问测试夹具下两级或两级以上模块的信号,理想情况下无需重写任何模块以添加更多输出,以便我要测试的信号连接到顶层 我可以重写测试中的设备,但这似乎很耗时,我觉得应该有一个更快的方法 是否有一种方法可以编写一个测试夹具,该夹具可以访问子模块内的信号,而无需重新编写DUT?如果您只需要监控顶级DUT模块内的信号

我的被测设备(DUT)有许多子模块,我想测试其中的一些

我的测试夹具将是我项目的顶层-比DUT高一级-并且由于我似乎只能访问一级以下模块的输入和输出,我只能访问DUT的顶层输入和输出

我希望能够访问测试夹具下两级或两级以上模块的信号,理想情况下无需重写任何模块以添加更多输出,以便我要测试的信号连接到顶层

我可以重写测试中的设备,但这似乎很耗时,我觉得应该有一个更快的方法


是否有一种方法可以编写一个测试夹具,该夹具可以访问子模块内的信号,而无需重新编写DUT?

如果您只需要监控顶级DUT模块内的信号,您可以使用分层路径说明符来确定DUT的范围:

dut.read_data
SystemVerilog还提供了
bind
语句来执行类似的操作

如果需要驱动内部dut信号,则应为子模块创建单独的测试台。这更耗时,但可以让您更好地控制,并允许您实现100%的覆盖率(在顶层有时可能很困难)