Как остановить все запущенные последовательности в UVM?

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


person Jean    schedule 04.10.2013    source источник


Ответы (2)


Да. sequencer_h.stop_sequences() См. https://verificationacademy.com/cookbook/Sequences/Stopping, что что нужно делать и чего нужно опасаться с активным водителем.

В UVM нет ничего встроенного для вывода всех запущенных последовательностей, но если вы используете Questa, есть команда отладки «uvm findsequences», которая выведет их для вас.

person dave_59    schedule 04.10.2013
comment
Что такое sequencer_h? Вы имели в виду вызов stop_sequences на всех запущенных секвенсорах? У меня нет доступа к ссылке, которую вы разместили. - person Jean; 05.10.2013
comment
Когда я делаю sqr.stop_sequences, я получаю это UVM_FATAL. Можете ли вы дать какие-либо советы о том, как отладить это? Ошибка: Item_done() called with no outstanding requests. Each call to item_done() must be paired with a previous call to get_next_item(). - person Kaushal Modi; 19.08.2014

В каждой последовательности есть бит received_item_done. Вы можете дождаться posedge этого бита, прежде чем остановить какую-либо конкретную последовательность. Вы можете использовать функцию current_grabber из базового класса секвенсора, чтобы получить дескриптор последовательности, которая в настоящее время имеет блокировку или захват последовательности.

stop_sequences остановит секвенцию, загруженную в данный момент в секвенсор.

person Dheerendra Tiwari    schedule 03.09.2014