SystemVerilog邮箱是允许不同进程之间交换数据的一种方式。它类似于一个真正的邮箱,信件可以放进邮箱,人们可以在以后检索这些信件。
SystemVerilog邮箱创建为具有有界或无界队列大小。有界邮箱只能存储有限数量的数据,如果进程试图将更多邮件存储到满邮箱中,它将被挂起,直到邮箱中有足够的空间。但是,无限邮箱的大小是无限的。
有两种类型:
- 通用邮箱,可以接受任何数据类型的项目的
- 参数化邮箱,只能接受特定数据类型的项目
文章目录
邮箱(Mailbox)vs 队列(Queue)
尽管SystemVerilog邮箱的行为本质上类似于队列,但它与队列数据类型完全不同。简单队列只能从前面或后面推送和弹出项目。然而,邮箱是一个内置类,它使用信号量对队列中的推送和弹出进行原子控制。此外,您无法访问邮箱队列中的给定索引,只能按FIFO顺序检索项目。
邮箱在哪里使用?
SystemVerilog邮箱通常用于多个线程并行运行</