如何在SystemVerilog中处理结构初始化

时间:2018-08-12 17:13:13

标签: c system-verilog

我有以下代码,但编译失败。

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]引用超出范围的数组字

1 个答案:

答案 0 :(得分:2)

动态数组需要使用new[]分配,或者需要同时分配一个数组的副本。所以你需要做

m_mem = new[4];

在引用m_mem[3]之前。

或者您可能想声明一个关联数组而不是动态数组。

mem_blk m_mem[bit [15:0]];

然后对m_mem[3]的写操作分配该条目。