Модель регистра UVM: изменение значения непостоянного регистра

Есть ли стандартный способ дождаться любого изменения значения в модели изменчивого регистра? Это похоже на периодический доступ через черный ход peek() через весь энергозависимый регистр до тех пор, пока не произойдет хотя бы одно изменение значения.

// wait until DUT modifies any volatile register value.
my_reg_model.wait_volatile_reg_change();

person AldoT    schedule 30.01.2015    source источник
comment
Вы имеете в виду, что хотите подождать, пока значение поля изменится в RTL, и сделать что-нибудь в этой точке в вашем TB?   -  person Tudor Timi    schedule 01.02.2015
comment
@Tudor Да, например, я хочу подождать, пока не изменится определенное значение регистра статуса, тогда testbench может сделать какое-то предсказание для другого блока регистров или сделать что-то еще.   -  person AldoT    schedule 02.02.2015


Ответы (1)


К сожалению, для этого нет никакой инфраструктуры, так как для этого потребуется какой-то механизм, ожидающий изменения сигнала, указав его иерархический путь в виде строки. Вероятно, вы могли бы сделать это с помощью кода C / VPI, но это немного сложнее. Полный ответ выходит за рамки этого сайта.

На веб-сайте Verilab есть статья, в которой подробно описано, как это сделать: Я шпионю с помощью своего VPI. Однако я не могу найти для него код C.

person Tudor Timi    schedule 12.02.2015
comment
@AldoT Я обновил ответ статьей, которая может вам помочь. - person Tudor Timi; 26.02.2015