system-verilog - 监视器/驱动程序与其 BFM 之间的虚拟接口 ??? 它们实际上是什么,有人可以解释一下吗?
问题描述
我正在阅读 UVM 食谱,我对监视器、驱动程序和他们的 BFM 之间的虚拟接口连接感到困惑。这是否意味着可能有多个驱动程序或监视器,或者这与不知道其监视器或驱动程序的接口无关。有人可以帮忙吗?
解决方案
该关键字virtual
在 SystemVerilog 中多次重复使用。接口是虚拟的,因为它的层次路径是在运行时通过变量传递来设置的。Verilog/SystemVerilog 中的所有其他连接都是固定路径。
这确实允许您将相同驱动程序代码的多个实例连接到多个接口实例。它还有助于块到系统的重用,因此您可以在接口深入到系统级别时更改分层路径。
推荐阅读
- ruby-on-rails - 如何在 Ruby on Rails 中加入
- java - 如何使用 Stream 迭代两个不相等的二维数组
- quarkus - Quarkus 原生映像构建失败并显示“错误:已注册:java.lang.reflect.Method.getDefaultValue()”
- reactjs - 如何使用 cypress 从日期选择器小部件中选择日期
- python - 即使在 excel 中禁用了自动更正,Python 代码也会自动将 Excel 工作表中的“...”转换为“...”
- android - 信号 11 (SIGSEGV), 代码 1 (SEGV_MAPERR) ifree 在华为 Android 派上
- git - Git merge master 不会从该分支拉入文件
- git - OpenShift - 没有源存储库的 S2I
- c# - 如何先用 SqlKata 编译复杂的查询,然后再执行
- python - 使用 StreamSocket 从具有 scapy 的自定义层接收答案