问题标签 [e]

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 投票
1 回答
365 浏览

specman - Specman e:如何将变量中的详细信息传递给 message() 操作?

我需要使用变量设置消息详细程度,例如:

此代码导致下一个编译错误:

但实际上即使我将详细程度定义为常量字段:

我有同样的编译错误。

如何将消息详细程度通过变量传递给message()操作?

谢谢您的帮助

0 投票
2 回答
282 浏览

specman - Specman e:有没有办法将 simple_port 的 hdl_path 连接到否定的 verilog 端口?

我有一个signal_map带复位端口。许多环境都使用本signal_map机。问题是复位端口总是低电平有效,但在一种环境中它是高电平有效。对于所有将复位端口称为低电平有效的环境,已经有很多通用逻辑,我想按原样使用。我可以将端口连接到否定的verilog端口(它将解决我所有的问题)?像这样的东西:

附加的复杂性signal_map单位已经有hdl_path,即实际reset_port.hdl_paht()"~my_design_module.some_long_path.reset_port_in_verilog"

你会怎么做?感谢您的任何帮助

0 投票
3 回答
388 浏览

verification - Specman 对变量、十进制与十六进制值的软选择

这里有两个类似的约束块,一个使用十进制表示法,另一个使用十六进制表示法。第一个按预期工作,但第二个仅在 5 个可用值中生成正值(包括 0):

如何使第二个示例与第一个示例一样,但保留十六进制表示法。我不想写大的十进制数。

0 投票
1 回答
56 浏览

specman - Specman e:“keep type .. is a”无法细化字段的类型

我的验证环境中有下一个代码:

请注意,keep type driver is a..由于没有必要在driver' 行开始var foo..

但是keep type driver is a..不影响some_event,即如果as_a从行中删除强制转换,则会出现编译错误'driver' does not have 'some_event' though its subtype do. use driver.as_a(SPECIFIC_TYPE sequence_driver)

为什么keep type driver is a..无法投driver下线some_event..

谢谢您的帮助

0 投票
2 回答
114 浏览

specman - Specman e:如何打印变量的地址?

是否可以在 Specman e 中打印变量的地址,因为它可以在 c 中完成:

谢谢您的帮助

0 投票
1 回答
112 浏览

specman - Specman e:如何从序列中锁定驱动程序的项目队列?

在我的验证环境中,很少有序列在同一个驱动程序上同时运行(与其他序列的项目相关的项目何时获得总线无关)。

但是,现在我需要添加额外的序列,它将与其他序列同时运行,执行原子读取-修改-写入。我的新序列看起来像这样:

问题是在read_item和之间write_item,来自其他序列的项目得到总线。您知道如何从序列中锁定驱动程序的项目队列吗?所以我可以防止其他序列在我的读写项目之间添加他们的项目?

谢谢您的帮助

0 投票
1 回答
58 浏览

verification - 写入两个不同寄存器之一但具有相同字段的序列

我正在使用与 UVM 不兼容的旧环境,但使用 vr_ad_reg。这个旧环境的一个问题是,不是为其中一个模块实例化 regfile 两次(在 RTL 中确实实例化了两次),而是对整个 regfile 和其中的寄存器进行双重定义。

例如,我有两个 regfile:“GAD”和“GAD_RX”,它们都有一个这样定义的寄存器:

如您所见,regs 是相同的。我不希望替换整个定义,因为它基于也生成 RTL 的脚本,并且尝试重写它们太麻烦和风险。但是,我确实希望能够通过将它们约束到任一 GAD 来编写一个可以写入它们的序列。

我为写入这些寄存器的所有序列定义了一个结构成员:

我尝试用宏声明寄存器变量但完全失败:

宏应该在序列主体内以这种方式使用:

我希望能翻译成:

或者:

它适用于 GAD,但不适用于 RX_GAD,经过多次调试,我推断出 gad_type 没有正确匹配,并且宏只是在条件赋值中使用 else 子句。

我决定尝试一种不同的方法而不使用宏,我尝试在序列本身中使用“when”子句:

这不会编译,因为编译器无法识别 'when' 子句之外的 gad_seq_r 。

我不知道在为 GAD 和 RX_GAD 复制代码之外是否有解决方案,但我想我可以在这里试一试。无论哪种方式,下一个项目我们将构建一个更可重用的寄存器数据库。

如果你能活到现在,谢谢你的关注。

0 投票
1 回答
1242 浏览

aop - Specman/e 约束(对于每个 in)迭代

我可以在约束中仅遍历 e 中列表的一部分吗?例如,此代码将遍历整个 layer_l 列表:

但是,我只想通过例如 2 个项目来迭代 for each。我尝试了下面的代码,但它不起作用:

我也不想使用暗示,所以这不是我想要的:

0 投票
1 回答
108 浏览

specman - 如何逐个运行e文件?不平行测试

我是 Specman 的新手,我现在正在编写一个测试平台,我想提供许多特定的测试用例来调试计算器。

例如,

我有两个文件,第一个名为“test1”,第二个名为“test2”。这是我的“test1”代码:

这是我的“test2”代码:

但是,当我尝试测试我的代码时,specman 显示错误,看来我不能那样做。有什么可能的方法可以让specman先执行“test1”文件然后运行“test2”文件?或者如果有其他方法可以实现我的目标?

谢谢你的帮助。

0 投票
1 回答
111 浏览

specman - 如何将 32 位数字的每个位与另一个 32 位数字进行比较?

我正在考虑将 32 位数字的每个位与另一个 32 位数字进行比较。

其中dout_1、din1_1 和din2_1 都是32 位无符号整数。我想检查 dout_1 的 12 位到 7 位的每一位是否等于 (ins.din1_1 + ins.din2_1) 结果的 12 位到 7 位的每一位。

我怎样才能做到这一点?