System verilog 在系统verilog中读取图像文件

System verilog 在系统verilog中读取图像文件,system-verilog,System Verilog,我已经编写了用于从图像文件800*600读取数据的系统verilog代码- *生的。 该文件实际上包含800*600*3个字节。但我的代码只能读到几乎 一半的数据。 之后,读取的数据似乎是00。 对于解决此问题的宝贵建议,我们表示感谢 My code is as follows. //`define EOF 32'hFFFF_FFFF //`define EOF \n reg [7:0]data_byte; class input_video_IF; int count; integer

我已经编写了用于从图像文件800*600读取数据的系统verilog代码- *生的。 该文件实际上包含800*600*3个字节。但我的代码只能读到几乎 一半的数据。 之后,读取的数据似乎是00。 对于解决此问题的宝贵建议,我们表示感谢

My code is as follows.


//`define EOF 32'hFFFF_FFFF
//`define EOF \n

reg [7:0]data_byte;

class input_video_IF;
int count;
integer input_file, fread_return,output_file;


function new ();

input_file = $fopen("test_800.raw","r");
if(input_file)
begin
$display("File OPENED");
end
else
begin
$display("File error");
end

output_file = $fopen("output_800.raw", "w");
endfunction:new

task image_file_read();
count = 0;
//while (!$feof(input_file))
while(count != 1440000)
begin
fread_return = $fread(data_byte,input_file);
count++;
$display("%d %h",count,data_byte);
//$fwrite(output_file,data_byte);
end
$finish;
$fclose(input_file);
endtask : image_file_read

endclass

program Image_read_test;
int input_file;
input_video_IF In_IF = new();
initial

In_IF.image_file_read();


endprogram

关于代码的一些小注释:不应在类之外定义数据字节。count不需要是类字段。这两个变量都可以在图像文件读取任务中本地定义。另外,图像文件读取不会占用时间,所以它应该是一个函数。你确定你有足够大的文件吗?