C 如何在systemverilog中处理结构初始化

C 如何在systemverilog中处理结构初始化,c,system-verilog,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]对越界数组字的引用需要使用new[]分配动态数组,或同时使用数组的副本。所以你需要这样做 m_mem = new[4]; 在您可以参考

我有下面的代码,但在编译错误时失败了

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]对越界数组字的引用需要使用
new[]
分配动态数组,或同时使用数组的副本。所以你需要这样做

m_mem = new[4];
在您可以参考
m_mem[3]
之前

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

mem_blk m_mem[bit [15:0]];

然后对
m_mem[3]
的写入会分配该条目。

需要使用
new[]
分配动态数组,或者同时从数组中分配副本。所以你需要这样做

m_mem = new[4];
在您可以参考
m_mem[3]
之前

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

mem_blk m_mem[bit [15:0]];

然后写入
m_mem[3]
分配该条目。

应该是测试台代码还是rtl代码?应该是测试台代码还是rtl代码?