systemverilog, как сделать сброс?

Systemverilog semaphore действительно наполовину готов.

Я не мог найти способ освободить семафоры в случае reset, что-то вроде .flush() для uvm_tlm_fifo?

Также нет способа узнать, сколько семафоров заблокировано?

Есть ли в UVM оболочка типа uvm_event, которая расширяет базовую функциональность семафоров?

Люди предложили мне использовать mailbox / tlm_fifo для большей функциональности, но я не смог найти альтернативы семафору для выделения более 1 keyCount.

Если у кого-то есть предложения, дайте мне знать.

Заранее спасибо.


person justrajdeep    schedule 07.04.2017    source источник


Ответы (2)


Семафор и почтовый ящик SystemVerilog - это базовые встроенные классы, которые вы можете расширить в соответствии со своими потребностями. Семафоры обеспечивают основные механизмы блокировки и разблокировки ключей, но управление ключами зависит от вас.


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

person dave_59    schedule 07.04.2017

Просто убейте все старые потоки, связанные с этим семафором, создайте на его месте новый семафор и забудьте о старом. Вероятно, это более простой способ справиться со сбросом, чем пытаться очистить старые запущенные потоки.

person hevangel    schedule 13.05.2017