попытка кода проверить ожидание оператора в specman

Следующее дает ошибку для объявления события a, b как «неопознанный член структуры». Пожалуйста, помогите мне понять.

unit true_match_op {
  event a, b;

  my_task() @sys.any is {
  emit a;
  wait [2]*cycle;
  emit b;
  wait [5]*cycle;
  emit a;
  expect @b => {@a ; ~[..]};
};
run() is also {
start my_task();
stop_run();
};
};

extend sys {
  my_unit : true_match_op is instance;
};

person Rahul    schedule 14.11.2014    source источник


Ответы (1)


Прежде всего, вы должны добавить разные объявления event для каждого события (это не C/C++). Кроме того, expect является декларативной конструкцией. Вы должны объявить его вне метода:

unit true_match_op {
  event a;
  event b;

  my_task() @sys.any is {
  emit a;
  wait [2]*cycle;
  emit b;
  wait [5]*cycle;
  emit a;
  };

  expect @b => {@a ; ~[..]};
};
person Tudor Timi    schedule 14.11.2014