1.代码示例:
`timescale 1ns/1ps
module file_test();
reg [3:0] data1 [15:0];
integer handle1;
integer handle2;
integer i = 0;
initial begin
$readmemb("data.txt",data1,5,8);//读data.txt中的二进制数到data1中,地址范围为5-8
handle1 = $fopen("data1.txt");//fopen返回值为data1/2.txt的句柄
handle2 = $fopen("data2.txt");
repeat(16)begin
$fwrite(handle1, "%d", data1[i]); //fwrite默认不换行, 加\n换行, 写入十进制数
$fdisplay(handle2, "%d", data1[i]);//fdisplay莫人换行, 加\n换行2次
i = i+1;
end
$fclose(handle1);//关闭文件
$fclose(handle2);
end
initial begin
#10000;
$finish;
end
endmodule
/*
notes:
1.fwrite switch line after write but fdisplay dosen't
2.fwrite %d : write decimal number format
3.readmemb/readmemh: read binary/hex number
4.$readmemb/h("filename", <mem_name>, <start_addr>, <end_addr>);
$readmemb/h("filename", <mem_name>, <start_addr>);
$readmemb/h("filename", <mem_name>);
*/
2.运行结果:
从左至右依次为data.txt(读取二进制数), data1.txt(fwrite写入, 不换行), data2.txt(fdisplay写入, 换行)