问题标签 [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.
macros - Specman 宏:如何使用可选标签?
我有一个用于定义端口的宏:
我想扩展宏以支持端口列表。我想为它使用一个[<len'name>]
定义列表大小的可选标签,如下所示:
** 例如,定义大小为 10 的端口列表将如下所示:
我在 Specman e Language Reference 中找不到如何知道optional tag
( [<len'name>]
) 是否已定义。您知道如何在宏中实现“if len 不存在”语句吗?谢谢您的帮助
specman - 两个不同行列式字段之间的“类型”约束
我已经阅读了e中有关“类型”约束的主题。我看到可以限制结构字段的类型,就像在这个例子中一样:
这意味着每当我处理DATA 数据包时,我不需要将标头转换为COP 标头,因为编译器会为我假设这一点。
我尝试使用“类型”约束来绑定两个不同的行列式字段。例如,假设我们有一个指令 结构,其中包含一个对操作码进行编码的种类字段和一个确定指令采用哪些参数的格式字段:
例如,RRR格式需要以下参数:
ADD指令将采用这种格式。如果我只使用一个简单的约束将ADD与RRR格式联系起来,例如keep kind == ADD => format == RRR
,那么要约束ADD的参数,我需要执行以下操作:
因为参数是在RRR子类型下定义的,所以我需要显式地转换为它。这很烦人,因为我总是需要查看每条指令的格式。只需要强制转换为ADD 指令会更自然。
为此,我尝试使用“类型”约束,但没有成功。如果我写以下内容:
我收到以下错误消息:
如果我这样写:
我收到一条不同的错误消息:
第二个错误明确禁止我尝试做的事情,但第一个错误允许解释的余地。
我可以将参数提取到自己的结构中:
并设置“类型”约束,如文档中所示:
但现在在约束时,我总是需要在每个参数前面加上.args:
在编写约束时这没什么大不了的,但是在打印时,args
不会打印的内容。这是一个可以接受的解决方法,但我仍然对最初的想法感兴趣。
是否可以关联同一结构中的when子类型,但我只是没有使用正确的语法?
specman - 配置“打印”以显示完整的结构字段
我有嵌套结构定义如下:
当我使用以下方法打印some_struct的实例时:
我得到以下信息:
我想查看some_struct_field的详细显示,这将显示其子字段。就像是:
我试过使用print ... full=TRUE,但这也无济于事。我找不到此行为的任何配置旋钮。
字段是否具有任何类型的属性来自定义它们的打印方式(例如在 UVM/SV 字段宏中)?
我知道有一个do_print()方法在打印时被调用,我可以使用它来自定义显示的文本,但我不知道如何在不重新实现整个打印例程的情况下使用它。如果有一种方法可以捕获构建的文本,我可以使用它。
有人可以帮我吗?
specman - Specman e 等待线程完成(非耗时方法)
有没有办法让 unit3.thread() 在其他两个线程之后运行?
我希望单元 1 和单元 2 中的线程并行运行,并希望线程 3 在它们都完成后运行。但是,由于 run() 不是一种耗时的方法解决方案,例如:
不允许。
有没有办法让 unit3.thread() 等到前面的线程完成?
specman - Specman: What is the difference between "define" and "#define"?
What is the difference between define
with and without hash mark?
Thank you for your help
specman - 列表的所有字段都属于一个 CFS
可生成的数组字段是否总是属于同一个 CFS?如果列表字段中的一个具有约束,而另一个字段具有不同的约束并且它们未连接。这两个字段是否属于同一个 CFS?
specman - Specman:动态生成具有所有不同值的列表列表时出错
我尝试生成具有所有不同值的 uint ( my_list_of_list
) 列表的动态列表(我有一个变量num_of_ms_in_each_g : list of uint
,它将每个列表的长度保持在内部my_list_of_list
):
代码算法说明:生成m
(值)之前尚未出现在任何 uint ( g
) 列表中,并且未出现在先前索引的当前列表中。
我得到编译错误:
您知道如何解决编译错误吗?(it[0..g_idx-1][0..num_of_ms_in_each_g[g_idx]-1]
是 uint ..)或者也许是另一种即时生成list of list of uint
具有所有不同值的方法?谢谢您的帮助。
sequence - Specman:如何访问序列中的变量?
我的 Specman 序列中有一个变量,我将其用作标志。我想在调用序列后检查该标志。在序列更新其值后,有没有办法访问 MAIN 函数中的该变量?
谢谢
specman - Specman 列表的约束
如何将约束应用于列表列表,类似于我可以对简单列表执行的操作:
我的意图是创建类似的东西:
如何使用 Specman 语法编写上面注释的 3 行?请注意,约束只是举例,实际上我需要应用更复杂的约束,而不是索引列表项......
提前致谢。
specman - Specman:为什么在 MAIN 序列完成后测试还没有完成?
我写的一个测试在主序列完成后没有完成。我没有提出 TEST_DONE 反对意见.. 我提出的反对意见都被放弃了。实际上测试在所有序列的流程完成后很久就完成了,在 TEST BENCH 超时.. 你知道什么可能会阻止测试结束吗?我非常感谢您能提供的任何帮助。