强制来自 UVM 驱动器的内部 DUT 信号

forcing internal DUT signal from UVM driver

我有一个场景。我有 uvm_driver,它有一个虚拟接口 vif。这个虚拟接口有带有信号 a 的 modports。有两个级别的模拟。下层 L1 和上层 L2。在 L1 中,代理是主动的,驱动程序驱动信号 a,在级别 L2 中,代理是被动的,因为预期 DUT 会驱动该信号并且只创建监视器。有一种临时情况,驱动a的DUT还没有准备好,我们需要驱动来驱动。你能告诉我如何从 uvm_driver 强制这个信号 a(现在是 L2 级的内部信号)吗?我的 uvm_driver 中有复杂的逻辑,无论我在哪里使用 vif,我都想在我处于 L2 级别时强制发出此信号。

提前致谢

UVM 提供了一种过载信号的方法,例如:

uvm_hdl_force
uvm_hdl_deposit
uvm_hdl_force_time

所以,你可以这样做:

uvm_hdl_force("my_tb.my_dut.a", 1'b1);