Systemverilog邮箱和队列

时间:2017-09-14 02:38:10

标签: system-verilog

我无法理解,为什么我们更喜欢使用Mailbox over Queue进行进程间通信(例如:Driver和Scoreboard之间的通信)?

1 个答案:

答案 0 :(得分:4)

邮箱是一个围绕队列的内置类,它使用信号量来控制对队列末端的访问。邮箱只有FIFO元素排序,而您可以访问队列的头部,尾部或中间元素。

当有多个线程读取和写入数据时,您通常使用邮箱,并且需要信号量的原子测试和设置操作才能知道邮箱何时已满或为空。如果只有一个进程读取和写入队列,则无需使用邮箱。但是,如果有多个线程,则邮箱是一个方便使用的类。

在UVM中,我们使用TLM FIFO,它是邮箱的另一个包装器。 TLM连接提供隔离接口,因此您无需知道端口另一端的内容。见https://verificationacademy.com/sessions/how-tlm-works