什么是'(signal_name)' Specman中的符号是什么意思?

时间:2017-07-24 06:11:26

标签: specman

我是Specman的新手,并试图通过阅读现有代码来学习它。

我遇到了以下功能,无法在specman文档中找到解释......

VerifyNode(end_point:string, derived_value:uint) is also {
    if ('(end_point)' === ~derived_value) {
         message("Error1");
    }
    else if ('(end_point)' === derived_value) {
         message("Error2");
    }
    else {
         message("Error3");
    }

}

我假设逻辑上'(end_point)'在运行时获得end_point信号的实际值。这是真的吗?

如果运行时end_point的值取消derived_value无符号整数,则Error1将成为消息。

如果运行时end_point的值与derived_value无符号整数相同,则Error2将成为消息。

我如何解释"错误3"条件?

3 个答案:

答案 0 :(得分:0)

'(end_point)'是两件事。它是对被测设备(DUT)的老式,非端口访问,该片段的(end_point)部分是在'' DUT访问中直接进行字符串替换的方法。如果您的设计足够大,那么使用旧式DUT访问可以大大降低仿真速度。此外,这种方法缺少更多的静态编译时间检查,因为这些字符串可以是任何东西,并且当您模拟它并且无法找到DUT路径时,您只会知道路径错误,从而产生错误。

答案 1 :(得分:0)

实际上,这是基于字符串的信号访问的老派。我建议你搜索" simple_port"。

end_point是一个字符串,应该是您要读取的信号的完整HDL路径。调用此方法的示例:

// check if signal has the value 3:   
VerifyNode("top.module_a.sig_val", 3);

答案 2 :(得分:0)

''的正式名称在Specman文档中称为刻度表示法。搜索术语"刻度符号"在cdnshelp中你会找到它。