2016-09-07 8 views

ответ

6

UVM - это не что иное, как библиотека обертки, разработанная над SystemVerilog. Итак, события uvm_event и SystemVerilog те же, но uvm_event имеет некоторые дополнительные функции.

От UVM Class reference:

Класс uvm_event является обертка класса вокруг конструкции событий SystemVerilog . Он предоставляет некоторые дополнительные услуги, такие как установка обратных вызовов и поддержание количества официантов.

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

Так же, как традиционные SV события, uvm_event также триггерных и упорные триггерные режимы (в то время как SV имеет wait(ev.triggered) и @(ev) аналогов).

Вы также можете добавить обратные вызовы при каждом запуске события. Это делается путем регистрации класса обратного вызова с определенным событием.

Что касается событий, то они кажутся дорогостоящими с точки зрения накладных расходов. Вы можете получить много примеров на uvm_event, например this one.

3

Там нет преимущества использования uvm_event над тем, что в основной SystemVerilog event конструкции, если не нужны дополнительные функциональные возможности, предоставляемые в uvm_event дополнительные функции, включают в себя добавление uvm_object ассоциироваться с курком, и бронирование информации, например, отслеживая количество официантов и последний раз, когда был запущен uvm_event.

Я не видел много пользы для этих дополнительных функций, а события в целом обычно слишком низкого уровня для большинства тестируемых стендов.

 Смежные вопросы

  • Нет связанных вопросов^_^