System verilog 在systemverilog中实现关联数组队列的正确方法是什么?

System verilog 在systemverilog中实现关联数组队列的正确方法是什么?,system-verilog,System Verilog,我已经声明了一个二维关联数组的无界队列,如下所示: static bit [15:0] array[4][*][$]; 我打算使用位向量访问阵列,如下所示: array[0][4'b{info[31:28]}].push_back(info[18:6]); 我得到以下编译错误: ** Error: (vlog-13057) driver.sv(95): Expecting numeric digits. 这里怎么了?我想你是想把4'(信息[31:28])写成4位的强制转换,但是没有必要

我已经声明了一个二维关联数组的无界队列,如下所示:

 static bit [15:0] array[4][*][$]; 
我打算使用位向量访问阵列,如下所示:

array[0][4'b{info[31:28]}].push_back(info[18:6]);
我得到以下编译错误:

** Error: (vlog-13057) driver.sv(95): Expecting numeric digits.

这里怎么了?

我想你是想把
4'(信息[31:28])
写成4位的强制转换,但是没有必要这样做,因为
info[31:28]
已经是4位了


另外,不要在声明中使用通配符
[*]
索引。它阻止您使用以后可能要使用的其他功能,如
foreach
循环和
find
数组方法。使用
[bit[3:0]]

4'b{info[31:28]}
应该是什么意思?只要
info[31:28]
就足够了。我认为需要显式类型转换,我错了,当我删除4'b时它就可以工作了