1.文件打开和关闭:
首先定义integer指针,然后调用$fopen(file_name,mode)任务,不需要文件时,调用$fopen(file_name)
常用mode包括:
“w"打开文件并从文件头开始写,如果不存在就创建文件。
“w+"打开文件并从文件头开始读写,如果不存在就创建文件
"a"打开文件并从文件末尾开始写,如果不存在就创建文件
“a+"打开文件并从文件末尾开始读写,如果不存在就创建文件
2.输出到文件:显示任务前加f,调用格式:
$fdisplay(文件指针,"显示内容",显示变量),再如$fmonitor(…)
除了多一个文件指针外,其他与在控制台输出的任务是用方法一致。
3.读存储器操作
$readmemh读十六进制文件,$readmemb读二进制文件
$readmemh (" file_name",
$readmemh (" file_name",
$readmemh (" file_name",
4.输出存储器中数据写入一个文件中
例如:
module readmem;
reg [7:0] mem[7:0];
reg [2:0] i;
integer file;
initial
begin
file = $fopen("memory.txt","w");
$readmemb("memoryb.txt",mem,4,0);// 从文本的读取数据向mem[4]开始写入,知道写到mem[0]
for(i =0;i<7;i= i+1)
begin
$display("mem[%d] = %b",i,mem[i]);
$fdisplay(file,"mem[%d] = %b",i,mem[i]);
end
end