二进制写SystemVerilog

时间:2016-07-21 11:55:29

标签: file-io system-verilog verification questasim

我尝试在我的测试平台中的SystemVerilog中编写二进制文件。

int file   = $fopen(path,"w");
if (!file) begin
    $error("File could not be open: ", path);
    return;
end
$fwrite(file, "%u", 32'h4D424D42);
$fclose(file);

得到结果: 02 0c 02 0c

我使用QuestaSum 10.2c。 为什么我得到这个结果?感谢。

1 个答案:

答案 0 :(得分:1)

%u将原始未格式化的二进制数据放入文件中。不要指望它是可读格式。确保以二进制格式“rb”或“wb”打开文件....尝试读回二进制数据并显示写入的值。

如果要保存4个状态值,可以使用%z。

int rd;
int file   = $fopen(path,"wb"); // open in binary mode
if (!file) begin
    $error("File could not be open: ", path);
    return;
end
$fwrite(file, "%u", 32'h4D424D42);
$fclose(file);
 // read back binary data from file 
file = $fopen (path,"rb");  // open in binary mode
if (!file) begin
    $error("File could not be open: ", path);
    return;
end
$fscanf(file,"%u",rd);
$fclose(file);
$display("%h",rd);