system-verilog - 强制来自 UVM 驱动器的内部 DUT 信号
问题描述
我有一个场景。我有 uvm_driver,它有一个虚拟接口 vif。此虚拟接口具有带有信号 a 的 modport。有两个级别的模拟。下层 L1 和上层 L2。在 L1 中,代理处于活动状态,驱动程序驱动信号 a;在 L2 级中,代理处于被动状态,因为预期 DUT 会驱动此信号,并且仅创建监视器。有一种临时情况,驱动 a 的 DUT 尚未准备好,我们需要驱动程序来驱动。你能告诉我如何从uvm_driver强制这个信号a(现在是L2级的内部信号)吗?我的 uvm_driver 中有复杂的逻辑,无论我在哪里使用 vif,我都想在我处于 L2 级别时强制这个信号 a。
提前致谢
解决方案
UVM 提供了一种过驱动信号的方法,例如:
uvm_hdl_force
uvm_hdl_deposit
uvm_hdl_force_time
因此,您可以执行以下操作:
uvm_hdl_force("my_tb.my_dut.a", 1'b1);
推荐阅读
- javascript - 在javascript中遍历类似N元树的结构
- dart - 如何检查 RefreshIndicator 状态以根据其状态值采取行动?
- android - 即使应用程序关闭,如何将 lat long 发送到服务器
- python - Python 3,无法重置登录代码的变量
- rest - http GET中的ClientException“无效的响应原因短语”
- java - java中按位&运算符的时间复杂度是多少?
- python - 从 Beautiful Soup 中提取链接
- javascript - 如何将 .js 文件分解为不同的文件,如 PHP 的包含(或要求),这样我就不必使用命名空间
- ionic-framework - 每天开始特定日期的离子本地通知
- javascript - 如何让用户自定义通知条件?