Arrays SV中队列的动态数组

Arrays SV中队列的动态数组,arrays,system-verilog,Arrays,System Verilog,我正在尝试创建队列(大小为3)的动态数组(5个元素)的数组(10个元素)。 我在做什么- typedef int q[$:2]; typedef q dyn_arr; dyn_arr arr_dyn_arr[][5]= new[10]; 我不确定这是否正确。你的typedef q dyn\u arr不执行任何操作。您声明的变量是一个三维数组,就像您声明的一样 int arr_dyn_arr [][5][$:2]; 因此,您的new[10]创建了一个10x5的空队列数组[$:2]表示队列的最

我正在尝试创建队列(大小为3)的动态数组(5个元素)的数组(10个元素)。 我在做什么-

typedef int q[$:2];
typedef q dyn_arr;
dyn_arr arr_dyn_arr[][5]= new[10];

我不确定这是否正确。

你的
typedef q dyn\u arrq
dyn\u数组
之外,code>不执行任何操作。您声明的变量是一个三维数组,就像您声明的一样

int arr_dyn_arr [][5][$:2]; 

因此,您的
new[10]
创建了一个10x5的空队列数组

[$:2]
表示队列的最大大小为三个元素-它不创建元素。如果你有一个5X3的二维数组,那么数字10从哪里来?我需要10个元素。语句dyn_arr arr_dyn_arr[][5]=new[10];创建10x5?您的
typedef q dyn_arr
除了将q重命名为dyn_数组外,不会执行任何操作。您声明的变量是一个三维数组,就像您声明了
int arr\u dyn\u arr[][5][$:2]new[10]
创建了一个10x5的空队列数组。@dave_59,明白了。谢谢你的解释。将删除额外的语句。