我想在现有方法中添加新输入,但不要更改以前对该方法的所有调用。 Specman是否支持方法的可选参数?就像在C ++中一样:
void cpp_func(int bla, int foo = 0) {
//do something ...
};
然后您可以将其称为cpp_func(10)
和cpp_func(10, 0)
。
非常感谢任何帮助。
答案 0 :(得分:4)
是的,Specman支持方法参数中的默认值表达式。
例如,以下代码:
extend sys {
goo() : uint is { return 111; };
boo() : uint is { return 222; };
foo(x: uint, y: uint = 100, z: uint = boo() + goo()) is {
print x;
print y;
print z;
};
run() is only {
foo(11);
foo(11,22);
foo(11,22,33);
};
};
将导致:
x = 11
y = 100
z = 333
x = 11
y = 22
z = 333
x = 11
y = 22
z = 33
答案 1 :(得分:0)
您还可以执行以下操作:
必须设置“可选”参数的默认值(exp_fail:bit = 1)。
check_bit(field: field_to_be_checked, exp_fail: bit = 1)@driver.clock is{};
所以默认情况下它会是 1,你不需要传递它:
check_bist_in_reg(BIT_NUM);
如果您愿意,只需像往常一样传递即可:
check_bist_in_reg(BIT_NUM, 0);