我有以下代码,但编译失败。
typedef struct {
logic [7:0] mem_data[1024];
} mem_blk;
mem_blk m_mem[];
...
...
logic [7:0] data = 'h12;
m_mem[3].mem_data[0] = data;
错误信息是: 错误-[SV-RTOOBAW]引用超出范围的数组字
答案 0 :(得分:2)
动态数组需要使用new[]
分配,或者需要同时分配一个数组的副本。所以你需要做
m_mem = new[4];
在引用m_mem[3]
之前。
或者您可能想声明一个关联数组而不是动态数组。
mem_blk m_mem[bit [15:0]];
然后对m_mem[3]
的写操作分配该条目。