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时它就可以工作了