首页 文章

Packed vs unpacked array

提问于
浏览
-3

我试图了解以下两个代码段的不同之处:

例1:

logic [4:0] [2:0] a;

例2:

typedef logic[4:0] mytype;
logic mytype [2:0] a;

例如1,a是打包结构,如果我没错,索引将按如下方式工作: a[0]a[1] ... a[4] 将给出3位值(由于[2:0]) .

但是例如2, a[i] ,其中i的最大索引是2,每个 a[i] 将给出5位向量(由于mytype) .

两个例子似乎都等同于我 . 第二个只包括一个额外的typedef . 但是为什么索引数组对于这两种情况都不一样?

1 回答

  • 1

    错误消息应该是您的索引范围与您的想法相反的线索 . 您应该阅读第7.4.5节中包含该示例的1800-2012 LRM的多维数组

    也可以使用typedef分阶段定义多个打包维度 . typedef bit [1:5] bsix; bsix [1:10] v5; // 1到5变化最快

相关问题