【问题标题】:How to read multidimensional array in Verilog using $readmemh?如何使用 $readmemh 在 Verilog 中读取多维数组?
【发布时间】:2019-10-09 23:21:12
【问题描述】:

我有一个多维数组:

logic [7:0] memory[1:0][1:0];

和一个逗号分隔的 file.txt:

1,2
3,4

我无法使用$readmemh 加载此文件:

initial
begin
   $readmemh("file.txt", memory);
end

您能提出一个解决方案吗?

【问题讨论】:

  • 由于下面的答案已经处理了可行的方法,我将在评论中提及这一点;具体问题是逗号,readmem 文件只能包含空格、cmets、地址和/或数字(readmemb 的二进制或readmemh 的十六进制)。因此,要分隔值,只需使用空格和/或换行符。请参阅 2012 LRM 第 21.4 节。

标签: arrays verilog system-verilog test-bench


【解决方案1】:
logic [7:0] mem [1:0][1:0]

对于上述 4 个元素的数组,每个 8 位。定义mem.dat文件如下

01 02
03 04

然后使用 readmemh 一次性读取文件

initial
begin
   $readmemh("mem.dat", mem);
end

【讨论】:

    猜你喜欢
    • 2013-06-28
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多