Systemverilog 邮箱和队列

Rot*_*ngg 0 system-verilog

我无法理解,为什么我们更喜欢邮箱而不是队列进行进程间通信(例如:驱动程序和记分板之间的通信)?

dav*_*_59 5

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

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

在 UVM 中,我们使用 TLM FIFO,它是邮箱的另一个包装器。TLM 连接提供了一个隔离接口,因此您不必知道端口的另一端是什么。请参阅https://verificationacademy.com/sessions/how-tlm-works