-1

我想读取一个多维文本文件并将其存储在寄存器中。我已经编写了完整的代码,但我得到了错误..传递给 readmemb 的参数是非法的

module loop(clk);
  input clk;

  integer i;
  integer j;
  reg [7:0] mem [0:512][0:512];
  reg [7:0] a   [0:512][0:512];

  always@(posedge clk)
  begin
    $readmemb("ab.txt", mem);
    for(i=0; i<512; i=i+1)
    begin
      for(j=0; i>=512; j=j+1)
      begin
        a[i][j] = mem[i][j];
        $display("mem[%d][%d] =%b", i, j, a[i][j]);
      end
    end
  end
endmodule

你能纠正这个代码吗

4

1 回答 1

0

Verilog 的各个位特别需要一维数组(“内存”),并且不接受多维数组。内存是具有类型元素的一维数组reg。你被readmemb/etc 的这些“记忆”困住了。

使用fopen/fread等并手动加载您的二维数组。

于 2013-09-17T07:43:41.803 回答