File io 从verilog中的文件读取半字节

File io 从verilog中的文件读取半字节,file-io,verilog,File Io,Verilog,我需要在verilog中逐字节(半字节)读取文件中的数据。我知道我可以用字符读8位,但有没有读半字节的方法? 我用于字符读取的代码是 reg [7:0] char1; integer read_file; initial begin read_file = $fopen("D:\\signal.txt","rb"); char1 = $fgetc(read_file); // read a byte end 还有什么可以读的吗?考虑一下$fread reg [3

我需要在verilog中逐字节(半字节)读取文件中的数据。我知道我可以用字符读8位,但有没有读半字节的方法? 我用于字符读取的代码是

reg [7:0] char1;
integer read_file;

initial begin
    read_file = $fopen("D:\\signal.txt","rb");

    char1 = $fgetc(read_file);       // read a byte
end
还有什么可以读的吗?

考虑一下$fread

reg [3:0] data;
integer rtn_val;
... 
rtn_val = $fread(data, read_file);

只需读入字节,然后将其分成两个半字节。这对多个半字节不起作用。它将一个半字节加载到
数据中
,但丢弃下一个半字节。根据IEEE标准1800,
$fread
文件中的数据应逐字节读取。。。如果内存宽度不能被8平均整除,则由于截断,文件中的数据不会全部加载到内存中。