SystemVerilog 中队列的最大大小是多少?

What is maximum size of the Queue in SystemVerilog?

我正在编写代码来检查时钟的脉冲宽度。我将脉冲宽度存储在队列中。由于模拟将 运行 持续 2 秒,因此队列的大小将变得非常庞大。我想知道队列的最大大小是多少?

当我查看 IEEE 标准 1800-2017 的第 7.10 节 队列 时,我没有看到明确指定的队列的最大大小。在那种情况下,我会假设你不能依赖它来获得任何特定的价值。这可能取决于您的模拟软件和您的 OS.

我确实在标准中看到了这个:

7.10.2.1 Size()
The prototype for the size() method is as follows:
    function int size();

int 指定为带符号的 32 位。或许我们最多可以假设20亿左右。

为了避免出现庞大的队列,您应该在时钟的每个周期检查脉冲宽度。应该不用等到模拟结束。