我正在尝试读取一个
.mif
文件,这是我得到的错误-
错误 (10170):sine3_test1.MIF 处的 Verilog HDL 语法错误 near 文本:p。检查并修复立即出现的任何语法错误 在指定关键字之前或之后。英特尔 FPGA 知识数据库 包含许多文章,其中包含有关如何解决此问题的具体细节 错误。访问知识库 https://www.altera.com/support/support-resources/knowledge-base/search.html 并搜索此特定错误消息编号。
错误似乎在第一行。 我的 MIF 文件有 8 位数据宽度和 256 字深度。
memory address = UNS (unisgned decimal)
memory data = hexadecimal
[
我的源代码如下:
reg [7:0]memory[0:255];
begin
$readmemh("sine3_test1.MIF",memory);
end
我删除了空格并添加了一些缺失的内存块编号。 目前,我将它存储在我的项目文件夹中(尽管不是 Quartus 项目的一部分)。
输入文件的格式不正确
$readmemh
。 $readmemh
系统任务期望文件只有十六进制格式的数字,而不是像 DEPTH
这样的单词,或者像 0:78;
. 这样的地址/数据对
如果是
mif
文件的格式,则不能直接读取mif
文件。您需要创建另一个仅包含其中数据的文件,例如sine3_test1.dat
:
78
7a
7d
然后使用:
$readmemh("sine3_test1.dat", memory);
Refer to IEEE Std 1800-2017, section 21.4 Loading memory array data from a file.
您可以使用
mif
(和相关函数)而不是 $fopen
来读取 $readmemh
文件,但那样会需要更多的工作。