Verilog 像这样实例化的队列意味着什么?队列的大小是否可变?

Verilog 像这样实例化的队列意味着什么?队列的大小是否可变?,verilog,system-verilog,uvm,Verilog,System Verilog,Uvm,位[31:0]队列_1[$] 从上面的表达式中我所了解到的是,这里实例化的队列的类型为bit,大小为32,但我在某处读到队列是一个可变大小的参数。 说到问题,如果队列是一个可变大小的参数,那么我们为什么在它前面使用[31:0]呢? 队列不是要包含在[31:0]的那些参数中吗? (system Verilog新手需要一些帮助)。SystemVerilog队列是一个大小不固定的数组。它可以生长和收缩 bit [31:0] queue_1[$]; 是一个由32位、2状态编号组成的队列。类型位是两态类

位[31:0]队列_1[$]

从上面的表达式中我所了解到的是,这里实例化的队列的类型为bit,大小为32,但我在某处读到队列是一个可变大小的参数。 说到问题,如果队列是一个可变大小的参数,那么我们为什么在它前面使用[31:0]呢? 队列不是要包含在[31:0]的那些参数中吗?
(system Verilog新手需要一些帮助)。

SystemVerilog队列是一个大小不固定的数组。它可以生长和收缩

bit [31:0] queue_1[$];
是一个由32位、2状态编号组成的队列。类型
是两态类型(它可以有值
1'b0
1'b1
)。这将是一个由1位、2状态编号组成的队列:

bit queue_1[$];
在SystemVerilog中,变量名称左侧的维度称为压缩维度。它们表示数字中的位数。变量名称右侧的维度称为未打包维度。它们表示数组中的元素数。例如,这是一个由16个32位数字组成的数组:

bit [31:0] array [0:15];