使用verilog读取存储在文本中的二进制值



我正在做一个项目,在这个项目中,我必须从文本文件中读取5位二进制值。我必须读取每个5位二进制数,然后将它们逐一分配给5个不同的1位寄存器。此外,我不能使用"memreadb",因为我的文本文件太大了,几乎有2mb,我认为"memreadb"不能处理这么大的文件,因为它在我的情况下不起作用。所以有人能告诉我如何使用"fopen"one_answers"fread"函数来解决我的问题吗?因为我到目前为止还没有在Verilog中处理文件。有人能给我举一个类似我问题的例子吗?

谢谢,

萨米

您可以使用$fscanf一次读取一行文件。

integer status, fd;
reg [4:0] value;
initial begin
fd = $fopen("data_file.dat", "r");
if (!fd) $error("could not read file");
while (!$feof(fd)) begin
status = $fscanf(fd,"%b",value);
// check status, then do what you need to do with value
end
end

最新更新