问题标签 [uvm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
system-verilog - 向 UVM 工厂注册虚拟类
有没有人有办法在工厂注册虚拟课程?使用 object_utils 宏将定义 type_id::create(...) 方法,该方法为非法的虚拟类调用 new(...)。
自然,在工厂注册的任何虚拟类都必须有类型覆盖。如果有人对此有一个优雅的解决方案,那就太酷了。
system-verilog - 在访问寄存器时尝试预测的警告是什么意思?
我有UVM验证环境。
在我的测试序列中,我在收到中断时通过 FRONTDOOR(串行事务)从 REGA 读取(镜像)。
在我的记分牌中,我使用.predict
了一些方法来更新 REGA 的预期值。
但是我有以下错误:
从 DUT 读取的值是正确的 (AA),如果我打印预测方法中使用的值,那么这也是正确的 (AA)
但是在模拟中,我在错误之前的某个时候会发出警告:
我的第一个想法是因为种族(预测和 FRONTDOOR 访问),所以我在从寄存器读取之前添加了延迟,但它仍然是相同的行为。
我想知道该警告的确切含义,以及是否应该更改某些内容
uvm - 如何在没有随机化的情况下执行 uvm_do_on?
我有一个虚拟定序器,我从中并行执行三个事务,每个事务都在其对应的定序器上。所以我有这样的事情:
但现在我希望能够将特定事务驱动到虚拟定序器中,具体取决于我正在运行的测试。为此,我有一个带有分析导入的类,每次监视器在界面中看到事务时都会更新该导入,以及一个返回要驱动的下一个事务的函数。所以现在我想做如下的事情:
浏览 UVM 文档,我看到有一个 'uvm_send 宏,但它不允许您选择音序器来运行序列(即我没有看到 'uvm_send_on 或类似的东西)。我能做些什么?
谢谢!
system-verilog - 生成“X”或未知值的序列项
我已经在定序器上启动了一个 seq 项目以生成具有随机约束的 seq 项目,但生成的项目有许多“X”值。这背后的原因可能是什么?
这是代码:
multithreading - 在多个内核上运行 UVM 阶段
我们如何将 UVM 中的各个阶段(如运行、精化、构建等)投入到系统的多个核心上运行。如何通过编码来做到这一点。
system-verilog - UVM中的多个从代理
我计划在我的环境中实现多个从代理和一个主代理。
任何人都可以向我展示如何在 UVM 中使用此功能的示例。以及我们如何从测试用例中为特定的从定序器启动项目。
verilog - 如何监控测试/序列的 DUT 输出?
我是UVM的初学者。到目前为止,我能够为我的 DUT 创建以下环境。
为我的 DUT 的所有输入输出接口提供监视器、驱动程序和序列的代理。顶级 UVM 环境。将有效数据发送到 DUT 的序列。我还没有实施记分牌。
我在理解如何处理以下情况时遇到了一些麻烦:
对于 tb-dut 接口,TB 需要等待来自 DUT 的事件(或事务)。一旦收到交易,TB 需要发回响应。实现这一点的最佳方法是什么?如何从序列中监控 DUT 事务?我的代理有监视器,可以监视来自 DUT 的任何新输出信号。那么,我是否需要以某种方式将这些数据从代理的监视器带到我的测试/序列类?我知道监视器有一个分析端口,它可用于将接收到的数据发送到记分牌进行检查。那么,我是否需要使用同一个端口来读取 DUT 输出数据、创建有效响应并将其发送到 DUT?
谢谢!
emacs - Fold-Unfold block of code / comment section in Emacs for UVM / SystemVerilog
I currently use emacs for UVM testbench environment development. I use verilog-mode with solarized theme. I like my current setup, however I would like to improve the functionality of emacs.
I would like to add fold-unfold functionality for block of code / comment.
for e.g. I've a class as follows
If I'm working with 2nd (bottom) begin-end block, I would like to fold 1st one (top) Anything followed by // is a comment and can be replaced with actual code. Can I achieve this with emacs?
system-verilog - 如何控制UVM分析端口订阅者的顺序?
我有一个连接到 3 个记分牌的分析端口。当在分析端口上完成写入时,订阅者(记分板)按特定顺序调用。但我希望它们以不同的顺序被调用。
显式排序的实际用例如下。一个记分牌只记录日志,所以应该首先调用它。另一个记分板进行非常基本的低级别检查,所以它应该被称为第二个。第三个记分板执行非常复杂的更高级别检查,因此应该最后调用它。
SV 片段:
电流输出:
如何控制调用订阅者的顺序?我希望它们按以下顺序排列:
- 记分牌_3
- 记分牌_2
- 记分牌_1
EDA Playground 上的示例代码:http ://www.edaplayground.com/x/2zQ
verilog - 无法写入 systemverilog 邮箱
我在 UVM SV 测试台中使用邮箱,在尝试写入邮箱时遇到了一些问题。我的代码如下所示:
我不太确定出了什么问题...数据一直到达 writetrans(*) 函数,最终即使邮箱中有空间也无法写入。