systemverilog,如何处理重置?

时间:2017-04-07 20:22:25

标签: system-verilog uvm

systemverilog semaphore实际上是半生不熟的。

我找不到任何方法来释放信号量reset,类似于.flush()的{​​{1}}?

还没有方法可以知道锁定了多少个信号量?

uvm_tlm_fifo中有哪些包装器可用UVM来扩展基本信号量功能吗?

人们建议我使用mailbox / tlm_fifo来获得更多功能,但我找不到信号量的替代品来分配超过1 uvm_event

如果有人有任何建议,请告诉我。

提前致谢。

2 个答案:

答案 0 :(得分:2)

SystemVerilog的信号量和邮箱是基本的内置类,您可以根据自己的需要进行扩展。信号量提供基本的密钥锁定和解锁机制,但您可以自行管理密钥。

我的意思是您可以扩展或封装信号量,以控制谁有权访问密钥以及使用了多少密钥。

答案 1 :(得分:1)

只需杀死与该信号量相关的所有旧线程,在其位置创建一个新的信号量并忘记旧信号量。处理重置可能比尝试清理旧的运行线程更简单。