问题标签 [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.

0 投票
2 回答
3062 浏览

class - 参数化类和多态性

我想知道是否有更好更直接的方法来为从参数化类生成的一组类使用多态性。以下系统verilog代码有效。有没有更优雅的方式?编辑:我可以在 C++ 中实现类似的东西吗?

0 投票
1 回答
3845 浏览

casting - 将字符串转换为枚举

有没有办法在系统 verilog 中将字符串转换为枚举?

0 投票
2 回答
407 浏览

verilog - 捎带 UVM 错误

有没有一种简单的方法可以在不操作 UVM 库的情况下将自定义函数搭载到UVM_ERROR宏中?(即,每当在环境中的任何地方调用 UVM 错误时,我都希望我的函数与它一起被调用。)

0 投票
2 回答
7328 浏览

verilog - 如何停止 UVM 中的所有正在运行的序列?

有没有办法在模拟期间停止所有正在运行的序列(比如当你重置时)?有没有办法在模拟期间的特定时间转储所有运行序列的列表?

0 投票
1 回答
8731 浏览

system-verilog - UVM:驱动程序和程序分配的非法组合警告

我的芯片中有一个小块的 UVM 测试台。其中有一个带有驱动程序的代理,该驱动程序在虚拟接口上驱动数据,如下所示:

我在我的驱动程序中使用这个接口,如下所示:

据我所知,这是推荐的做事方式,而且效果很好。当我将此代理集成到更高级别的测试平台时,就会出现问题。在这种情况下,代理现在是被动的,并且驱动程序未构建。我将操作码值分配给接口,以便监视器可以观察它。这是我的顶级线束的片段:

当我在 NC 中运行它时,我收到一个警告:

这是有道理的,因为接口将此信号定义为 drvClk 块的输出,而我正在顶层进行分配。我可以忽略这个警告(代码工作得很好),但我宁愿以它运行干净的方式对其进行编码。推荐的方法是什么?我摆脱了驱动程序的时钟块并且有效,但我认为如果我这样做,我会为比赛条件做好准备。

0 投票
1 回答
3012 浏览

system-verilog - UVM 相位查询

我有几个与 UVM 阶段build()run(). 它们可能也适用于其他验证方法 a> 为什么build()以自上而下的顺序执行该阶段。这是否意味着我们需要更新build()阶段中的所有组件,然后继续执行build()在类中实例化的其他子组件?b> 中run()相是什么super.run()叫什么?run()阶段的执行顺序是什么

0 投票
4 回答
12359 浏览

foreach - 如何同时使用 foreach 和 fork 并行执行某些操作?

这个问题不是 UVM 特定的,但我正在研究的示例与 UVM 相关。我的 UVM 环境中有一组代理,我想在所有代理上并行启动一个序列。

如果我执行以下操作:

,序列seq首先在 上执行env.agt[0].sqr。一旦结束,它就会继续执行env.agt[1].sqr,依此类推。

我想实现一个 foreach-fork 语句,以便在所有定序器seq上并行执行。agt[i]

无论我如何订购 fork-join 和 foreach,我都无法做到这一点。你能帮我得到那个并行序列启动行为吗?

谢谢。

更新以澄清我要解决的问题:以下代码结构的结果与上面没有分叉连接的结果完全相同。

p>

p>

p>

0 投票
2 回答
3191 浏览

system-verilog - 在预定义的 UVC 之间共享信号的策略

我试图弄清楚如何将多个 UVC(UVM 验证组件)连接到同一个 DUT,其中 UVC 不共享接口但连接到 DUT 上的相同信号。

DUT 可以对公共信号在不同协议上运行,并且可以在接收到特定序列后在协议之间切换。每个协议都独立开发成自己的UVC;让我们称它们为低速和高速。假设接口和 DUT 如下:

因为 UVC 的设计没有考虑其他协议,所以低速驱动器/监视器只能连接,lowspeed_if高速驱动器/监视器只能连接highspeed_if. 这意味着有两个接口需要连接到相同a的 、bioready信号。

有没有办法在不改变原始 UVC 的情况下将这些 UVC 连接到同一个 DUT?

0 投票
2 回答
6673 浏览

verilog - 从测试台访问 uvm_config_db 的最佳方式是什么?

我想在我的顶级测试平台中创建一个时钟,其周期可以从测试中控制。我所做的是将周期设置到 uvm_config_db 中,然后将其放回测试台中。我必须输入 #1 以确保构建阶段完成,否则 get 返回错误的值:

我对#1很生气。有没有更好的方法来检查配置是否已设置?我可以以某种方式阻止直到 start_of_simulation_phase 吗?

0 投票
1 回答
395 浏览

verification - 将 VMM 中开发的 VIP 集成到我的 UVM 测试平台中

我已经为我的整个系统 DUT 在系统 verilog 中使用 UVM 方法开发了测试平台。我采购了一个 VIP,它在系统 verilog 的 VMM 方法中。如何将此 VIP(在 VMM 中)集成到我的 UVM 测试平台中?

谢谢。