【问题标题】:Array of dynamic array of queue in SVSV中队列的动态数组数组
【发布时间】:2017-08-20 14:03:24
【问题描述】:

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

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

我不确定这是否正确。

【问题讨论】:

  • [$:2] 表示队列的最大大小是三个元素 - 它不创建元素。如果你有一个 5X3 的二维数组,那么数字 10 是从哪里来的?
  • 我需要 10 个元素作为数组。不是语句 dyn_arr arr_dyn_arr[][5]= new[10];创建 10x5 ?
  • 您的typedef q dyn_arr 除了将 q 重命名为 dyn_array 之外什么都不做。您声明的变量是一个 3 维数组,就好像您声明了 int arr_dyn_arr [][5][$:2]; 所以您的 new[10] 创建了一个 10x5 的空队列数组。
  • @dave_59,现在知道了。感谢您的解释。将删除多余的语句。

标签: arrays system-verilog


【解决方案1】:

您的 typedef q dyn_arr; 除了将 q 别名为 dyn_array 外,什么都不做。您声明的变量是一个 3 维数组,就像您声明了

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

所以你的 new[10] 创建了一个 10x5 的空队列数组

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2020-06-12
    • 2013-11-09
    • 1970-01-01
    • 2019-08-16
    相关资源
    最近更新 更多