我想向现有方法添加新输入,但不要更改之前对该方法的所有调用。Specman 是否支持方法的可选参数?就像在 C++ 中一样:
void cpp_func(int bla, int foo = 0) {
//do something ...
};
然后你可以同时调用它cpp_func(10)
and cpp_func(10, 0)
。非常感谢任何帮助。
我想向现有方法添加新输入,但不要更改之前对该方法的所有调用。Specman 是否支持方法的可选参数?就像在 C++ 中一样:
void cpp_func(int bla, int foo = 0) {
//do something ...
};
然后你可以同时调用它cpp_func(10)
and cpp_func(10, 0)
。非常感谢任何帮助。
是的,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
您还可以执行以下操作:
必须设置“可选”参数的默认值(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);