队列在 System Verilog 中的作用是什么?

What purpose does a queue serve in System Verilog?

  1. 它们不是用于 RTL,而是用于验证,对吗?它们将无法合成。

  2. 他们是否有更好的内存管理功能进而优化程序时间?如果我记得 正确地说,System Verilog 有一个自动垃圾收集器,所以不需要释放内存。

  3. 官方 IEEE 文档很好地解释了它们的工作原理。我只是想知道在什么情况下我会使用一个与数组。一种猜测是他们有相关的方法可以更轻松地进行数据操作?

预先感谢您提供的知识和专业知识。

  1. 如果队列具有最大大小限制,则它可以是可合成的。只有少数综合工具支持它,可能是 FPGA 综合工具的 none。
  2. 队列的主要优势在于效率 adding/removing 数组中的一个元素,尤其是在队列的头部或尾部访问时。动态数组在修改其大小时可能需要重新分配和复制整个数组。队列的代价是访问队列中间的元素所花费的额外时间,与动态数组的相同数量的元素相比,额外space。
  3. 我希望 2 能回答这个问题。