Icarus Verilog 警告 $readmemh:标准不一致,遵循 1364-2005 [英] Icarus Verilog warning $readmemh: Standard inconsistency, following 1364-2005

查看:21
本文介绍了Icarus Verilog 警告 $readmemh:标准不一致,遵循 1364-2005的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to read a memory file using $readmemh, but I'm not sure what the correct file format is since I'm seeing a warning.

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

In my testbench, I have the following:

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

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

并且 progmem.txt 包含:

01
03
ff
00

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

and so on for a total of 4096 rows. When running the testbench, vvp displays:

$readmemh: Standard inconsistency, following 1364-2005

我曾尝试查找此内容,但我还没有找到有关其实际含义的解释.

I have tried looking this up, but I haven't found an explanation as to what that actually means.

推荐答案

不同版本的 IEEE Std 1364 指定了如何通过 $readmemh 不同地加载内存.

Different versions of the IEEE Std 1364 specify how memories are loaded via $readmemh differently.

1364-1995 状态:

1364-1995 states:

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

... the default start address is the left-hand address given in the declaration of the memory. Consecutive words are loaded until either the memory is full ...

1364-2001 状态:

1364-2001 states:

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

... the default start address shall be the lowest address in the memory. Consecutive words shall be loaded until either the highest address in the memory is reached ...

在您的声明中,左侧地址为 4095,但最低地址为 0.

In your declaration, the left-hand address is 4095, but the lowest address is 0.

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

Instead of loading the 1st word (01) into progmem[4095], I believe the warning is telling you that it is loading the 1st word into progmem[0].

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

When I change the declaration to the following, the warning disappears for me on iverilog on edaplayground:

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

这篇关于Icarus Verilog 警告 $readmemh:标准不一致,遵循 1364-2005的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆