【问题标题】:How to handle struct initialization in systemverilog如何在 systemverilog 中处理结构初始化
【发布时间】:2018-08-12 17:13:13
【问题描述】:

我有如下代码,但在编译错误时失败。

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

【问题讨论】:

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

标签: c system-verilog


【解决方案1】:

动态数组需要使用new[] 分配,或者同时从一个数组中复制一份。所以你需要这样做

m_mem = new[4];

之前可以参考m_mem[3]

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

mem_blk m_mem[bit [15:0]];

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 2016-03-20
    • 2021-07-01
    相关资源
    最近更新 更多