systemverilog中对文件的操作方法

1. 打开文件和关闭文件
利用$fopen()函数打开文件,打开一个名为filename的文件,filename里可包含文件路径,同时filename为字符串类型,type也为字符串类型,决定对文件的操作方式,可包括如下的操作类型,默认方式为以“w”或“wb”方式打开。注意"w","wb","w+","w+b","wb+"打开文件将会清空文件原有数据。其中“b”用于区别文本文件和二进制文件。如果一个文件因为某种无法打开,将会返回0,通过$ferror可用于检测失败原因
                                        fb=$fopen(filename,type)
systemverilog中对文件的操作方法_第1张图片

利用$fclose()函数关闭文件 ,$fclose(fb)

integer fb;
fb = $fopen("./data.txt","r");
$fclose(fb);

2. 从文件中读取数据 
$fscanf(), 以指定格式从文件中读取数据,flag=$fscanf(fd,format,args);

integer fb;
integer flag;
int a;

fb = $open("./data.txt","r");
flag = $fscanf(fb,"%h",a);
$fclose(fb);

$fgets(),  一次读取一行数据并以string类型存起来,当遇到错误返回值code为0

 

 3. 向文件中写数据
$fwrite(),可以不使用中间的format,直接$fwrite(fb,data)

4. 检测文件结尾,$feof(),当检测到EOF时返回非零值,反之则返回0

systemverilog中对文件的操作方法_第2张图片

 5. 文件错误监测函数,$ferror(),当文件操作有误时,$ferror函数会将错误描述存入到str变量里

 

 6. 文件定位函数
$ftell(),用于确定文件中当前的读取或写入位置。返回fd文件当前位置距文件首部偏移量(按字节计算),可以用于后续的$fseek使用,以将文件重新定位到此点。

$fseek和$rewind用来改变当前读写的位置,

 offset为偏移量,新位置是从文件开头、当前位置或文件末尾的有符号距离偏移字节处,根据operation的值来决定,如下:

        0:设置位置到偏移地址

        1:设置位置到当前位置加偏移量

        2:设置位置到文件结束位置加偏移量(向前)

 $rewind()等价于$fseek(fd,0,0);
systemverilog中对文件的操作方法_第3张图片

 

你可能感兴趣的:(systemverilog)