Как записать утверждение ширины импульса, когда система настраивается

Сценарий: Сигнал active может быть либо 1 цикл, 2 цикла, 3 цикла или 4 цикла в зависимости от config[1:0] вход в модуль

Самый простой способ написать свойство для этого:

property p_PropA;
    @(posedge clk) $rose active ##config ~active;
endproperty

Но это синтаксически неправильно. Как правильно написать это утверждение?

1 ответ

Решение

Вам нужно использовать локальную переменную, см. IEEE Std 1800-2012 § 16.10 Локальные переменные

Вот простой пример:

property p_PropA;
  int count;
  @(posedge clk)
  ($rose(active),count=config) |->
    (active,count--)[*] ##1 (~active && count==0);
endproperty
Другие вопросы по тегам