Поддерживает ли Specman необязательные параметры метода?

Я хотел бы добавить новый ввод в существующий метод, но не изменять все предыдущие вызовы метода. Поддерживает ли Specman необязательные параметры метода? Как в С++:

void cpp_func(int bla, int foo = 0) {
   //do something ...
};

и тогда вы можете называть его как cpp_func(10), так и cpp_func(10, 0). Очень ценю любую помощь.


person Halona    schedule 23.12.2014    source источник


Ответы (2)


Да, 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
person Kalev    schedule 23.12.2014

Вы также можете сделать следующее:

Необходимо установить значение по умолчанию для параметра, который является необязательным (exp_fail: бит = 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);
person Andrija Bujosevic    schedule 26.03.2021