【问题标题】:Icarus Verilog warning $readmemh: Standard inconsistency, following 1364-2005Icarus Verilog 警告 $readmemh:标准不一致,1364-2005 之后
【发布时间】:2021-03-26 20:55:56
【问题描述】:

我正在尝试使用 $readmemh 读取内存文件,但我不确定正确的文件格式是什么,因为我看到了一个警告。

在我的测试台中,我有以下内容:

reg [7:0] progmem [4095:0];

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

progmem.txt 包含:

01
03
ff
00

以此类推,总共 4096 行。运行测试台时,vvp 显示:

$readmemh: Standard inconsistency, following 1364-2005

我已尝试查找此内容,但尚未找到关于其实际含义的解释。

【问题讨论】:

    标签: verilog iverilog


    【解决方案1】:

    不同版本的 IEEE Std 1364 指定如何通过 $readmemh 以不同方式加载内存。

    1364-1995 州:

    ...默认起始地址是左侧地址 内存声明。连续的单词被加载,直到 内存已满……

    1364-2001 州:

    ...默认起始地址应为最低地址 记忆。连续的单词将被加载,直到最高的 到达内存中的地址...

    在你的声明中,左边的地址是 4095,但最低的地址是 0。

    我相信警告不是将第一个单词 (01) 加载到 progmem[4095],而是告诉您它正在将第一个单词加载到 progmem[0]

    当我将声明更改为以下内容时,edaplayground 上 iverilog 上的警告对我来说消失了:

    reg [7:0] progmem [0:4095];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      相关资源
      最近更新 更多