systemverilog semaphore
实际上是半生不熟的。
我找不到任何方法来释放信号量reset
,类似于.flush()
的{{1}}?
还没有方法可以知道锁定了多少个信号量?
uvm_tlm_fifo
中有哪些包装器可用UVM
来扩展基本信号量功能吗?
人们建议我使用mailbox / tlm_fifo来获得更多功能,但我找不到信号量的替代品来分配超过1 uvm_event
。
如果有人有任何建议,请告诉我。
提前致谢。
答案 0 :(得分:2)
SystemVerilog的信号量和邮箱是基本的内置类,您可以根据自己的需要进行扩展。信号量提供基本的密钥锁定和解锁机制,但您可以自行管理密钥。
我的意思是您可以扩展或封装信号量,以控制谁有权访问密钥以及使用了多少密钥。
答案 1 :(得分:1)
只需杀死与该信号量相关的所有旧线程,在其位置创建一个新的信号量并忘记旧信号量。处理重置可能比尝试清理旧的运行线程更简单。