System verilog $readmemh加载内存子块
对不起,如果这个问题太新了。我一直在寻找关于readmemh的信息,但我还没有找到解决问题的合适方法 我有一个很大的十六进制文件,里面有可以读取的内存内容。但由于文件太大,我希望每次都能给我的程序带来一个更小的内存块。例如,如果我的内存有32位长的地址,则只能加载2048个地址的块,并将上面的部分存储在变量中,以了解我是否在正确的块中 或或多或少,如果我的十六进制文件如下所示:System verilog $readmemh加载内存子块,system-verilog,System Verilog,对不起,如果这个问题太新了。我一直在寻找关于readmemh的信息,但我还没有找到解决问题的合适方法 我有一个很大的十六进制文件,里面有可以读取的内存内容。但由于文件太大,我希望每次都能给我的程序带来一个更小的内存块。例如,如果我的内存有32位长的地址,则只能加载2048个地址的块,并将上面的部分存储在变量中,以了解我是否在正确的块中 或或多或少,如果我的十六进制文件如下所示: @00000000 1212 @00000001 3434 @00000002 5656 ... @ffffffff
@00000000 1212
@00000001 3434
@00000002 5656
...
@ffffffff 9a9a
我希望能够将其保存在具有以下字段的结构中:
logic [15:0] chunck [11:0]; // Keeps 2048 entries
logic [20:0] address_top; // Keeps the top part of the address
查看文档,我看到readmemh允许我指示起始地址和结束地址,但我看到的是它指的是目标阵列中的位置,而不是源位置
我怎么做?
提前谢谢 如果您使用的是SystemVerilog,那么您可以使用关联数组对内存进行建模,并让它根据需要分配和映射物理内存,而不是自己动手