我试图了解以下两个代码段的不同之处:
例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 回答
错误消息应该是您的索引范围与您的想法相反的线索 . 您应该阅读第7.4.5节中包含该示例的1800-2012 LRM的多维数组