3

在我的测试平台中,我想通过在 RTL 中强制某个模块的输出来模拟系统条件:

force DUT.driving_module.xx = 0;

但是当使用force命令执行此操作时,模块内部驱动输出的导线也会被强制,这会导致系统的其他部分也受到影响。我真正需要的是强制模块的输出,而不改变其内部状态,如下所示:

在此处输入图像描述

我根本无法修改 RTL 代码。有没有办法从测试平台实现这一目标?

4

1 回答 1

1

当您的端口在端口连接的两侧都有电线时,电线会折叠成一根电线。

这样做的方法是使用logic而不是wire在模块内部。您应该wire在 SystemVerilog 中的任何地方使用的唯一地方是信号是否有多个驱动程序。

在 Verilog 中,您始终可以将模块的输出端口设置为reg

在任何一种情况下,作为变量的输出端口都会对其在更高级别模块中连接的任何内容创建隐式连续赋值。连续分配是单向的,力不会传播回模块。

于 2015-11-13T14:23:13.453 回答