问题标签 [specman]
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.
type-conversion - 有没有一种有效的方法可以将集合转换为整数(列表)?
我正在做一些集合操作,结果是一个包含(为了简化)单个整数的集合。如何将集合转换回 uint?目前我正在做这样的事情:
我正在使用 Specman 13.1。
macros - 使用宏来约束列表
我试图将我的列表项限制为在某些条件下等于某些值。为此,我设计了一个定义为计算宏
在我的代码中,我像这样使用这个宏:
但这不起作用。首先,它打印一些随机大小(来自宏)而不是列表的实际大小。其次,我得到了这种错误:
关于这里有什么问题的任何想法?
package - Specman e:所有文件都以“包”一词开头 - 这是什么意思?
在我的验证环境中,所有 e 文件都以“package”一词开头,即:
你知道这是什么意思吗?谢谢您的帮助。
specman - 解析引号的specman问题
我正在尝试将一个字符串从 unix shell 导入到 specman 的程序空间。我要导入的字符串包含引号 ("") - 例如“hi”。在这些情况下,字符串没有被正确解析。例如,假设我想用引号“回显”一些字符串,我会执行以下操作:
将输出
但如果我使用以下程序,用 e 编写:
我得到以下输出:
如您所见 - 引号不见了。我们在这里看到的来自列表值的默认打印。
specman - Specman UVM:write_reg { .field == 2;}; 之间有什么区别 和 write_reg_fields?
我正在使用vr_ad
e 的包。我的问题是:以下 2 个用于修改寄存器的宏有什么区别(假设foo
寄存器由 2 个字段组成:field1
和field2
):
1)
2)
我真的很感激任何帮助
specman - Specman UVM:当值被写入另一个寄存器时,如何更新寄存器的值?
(在我的验证环境中,我们使用vr_ad
包。)。我尝试实现下一个:当数据写入其中一个寄存器 ( timer_load
) 时,另一个寄存器 ( timer_bgload
) 应该使用相同的数据进行更新。
我在 UVM 用户指南中找到了下一个示例:
我的寄存器:
我timer_bgload
在数据写入后更新寄存器的代码tiemr_load
:
我得到一个编译错误:
我真的很感激任何帮助。
specman - Specman e 编译错误:没有这样的变量 'XXX'
my_reg_file
我在函数中定义了一个变量post_access()
(这个函数是一个vr_ad
实现副作用的钩子):
然后我在另一个 e 文件中扩展了这个函数:
我得到一个编译错误:
为什么post_access()
不识别变量my_reg_file
?谢谢您的帮助。
注意:file1.e 在 file2.e 之前导入
specman - Specman:有没有办法通过某个索引访问不同的变量?
在我的验证环境中,我有 3 个具有相同字段的不同寄存器load_0
:load_1
和load_2
. 现在,我为每个寄存器复制了 3 次相同的函数,并且仅在一行中有所不同:
有没有更好的方法来访问变量名(仅通过索引不同)而不是重复相同的函数 3 次?像这样的东西:
我将不胜感激您能提供的任何帮助。
specman - Specman e:有没有办法扩展多种结构?
在我的验证环境中,我们使用vr_ad
UVM
包,其中有一个寄存器的通用结构,该结构vr_ad_reg
已为环境中的每个寄存器扩展了不同的类型,等等:
具有预定义的vr_ad_reg
功能post_access()
,我想为每个以单词' TIMER
'开头的寄存器类型扩展它。有没有办法做到这一点?例如:
谢谢您的帮助
macros - Specman DAC 宏:如何定义 2 个不同类型的输入(uint 和 string)?
在我的验证环境中,我有不同的寄存器类型,名称几乎相同,只是索引不同,例如:timer_load_0
等timer_load_1
。我尝试创建一个获取 2 个参数的宏:(string
没有索引的寄存器的“名称”)和uint
(寄存器的索引)并返回“连接”寄存器类型的变量。例如我想要这个命令:
将返回变量timer_load_0
。
我的宏代码:
我得到的编译错误:
该宏不能识别my_idx
为uint
变量,而是string
.. 感谢您的帮助。