Icarus Verilog警告$readmemh:标准不一致,遵循1364-2005
我正在尝试使用Icarus Verilog警告$readmemh:标准不一致,遵循1364-2005,verilog,iverilog,Verilog,Iverilog,我正在尝试使用$readmemh读取内存文件,但我不确定正确的文件格式是什么,因为我看到了警告 在我的测试台中,我有以下内容: reg [7:0] progmem [4095:0]; initial begin $readmemh("progmem.txt", progmem); end 和progmem.txt包含: 01 03 ff 00 以此类推,总共有4096行。运行测试台时,vvp显示: $readmemh: Standard inconsistenc
$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
我已经试着查过了,但是我还没有找到一个解释来解释这到底意味着什么。不同版本的IEEE Std 1364规定了如何通过
$readmemh
加载内存
1364-1995年声明:
。。。默认的起始地址是中给出的左侧地址
记忆宣言。将加载连续的字,直到
记忆已满
1364-2001年声明:
。。。默认起始地址应为
记忆。应加载连续字,直到最高
已到达内存中的地址
在您的声明中,左边的地址是4095,但最低的地址是0
我相信警告不是将第一个单词(01)加载到progmem[4095]
,而是将第一个单词加载到progmem[0]
当我将声明更改为以下内容时,屏幕上的iverilog
上的警告将消失:
reg [7:0] progmem [0:4095];