我的被测设备(DUT)有很多子模块,我想测试其中的一些。
我的测试夹具将是我项目的顶层 - 比DUT高一级 - 而且由于我似乎只能访问模块的输入和输出一级,我只能访问顶级输入和DUT的输出。
我希望能够从测试夹具下面的两个或更多级别的模块访问信号,理想情况下无需重写任何模块以添加更多输出,因此我想测试的信号连接到顶层。
我可以重写被测试的设备,但这看起来很耗时,我觉得应该有更快的方法。
有没有办法编写一个可以访问子模块内信号的测试夹具,而无需重写DUT?
答案 0 :(得分:5)
如果您只需要监控顶级dut模块内的信号,则可以使用分层路径说明符将范围缩小到dut:
dut.read_data
SystemVerilog还提供bind
语句来执行类似的操作。
如果需要驱动内部dut信号,则应为子模块创建单独的测试平台。这样更耗时,但可以让您获得更好的控制,并且可以实现100%的覆盖率(有时在顶层很难)。