【SV】SystemVerilog系统函数文件读写

一、简介

        在systemverilog验证环境中,可能需要使用读写文本的操作,本文主要介绍sytemverilog中常用的文件处理系统函数。

二、常用系统函数

1.打开关闭文件

        打开文件:fd = $fopen(file_name,type),文件打开成功fd返回1,打开失败返回0。file_name是一个带hierarchy的字符串。type有如下类型:

        “r” or “rb”,只读打开

        “w” or “wb”,打开从0开始或创建只写

        “a” or  “ab”,打开文件追加从文件末尾(EOF)写或创建文件写

        “r+” or  “rb+”,打开文件,可读可写

        “w+” or "wb+",打开或创建文件写

        关闭文件:$fclose(fd),一个良好的习惯,打开文件处理完后关闭文件。

        检测EOF:$feof(fd)

2.写文件

        向文件中格式化写一行:$fdisplay(fd,"地址:%h,数据:%b ",addr,data)

        向文件中格式化写(不换行):$fwrite(fd,"地址:%h,数据:%b ",addr,data)

3.读文件

        一次读一行:fd_line = $fgets(str,fd),按行读取字符串存取到str中

        一次格式化读一行:$fscanf(fd,format,args),从文件中按给定格式读取对应内容到对应变量中

                                        $sscanf(str,format,args),从字符串str中给定格式读取对应内容到对应变量中

        其中format有如下选项:

        %b,匹配一个二进制数,0,1,X,x,Z,z,_

        %o,匹配一个八进制

        %d,匹配一个十进制

        %h or %x,匹配一个十六进制

        %s,匹配一个字符串

        例子:

        integer fd;

        integer index;

        string str_tmp;

        while(!$feof(fd)) begin

                fd = $fgets(str_line,fd_file);//从文件中按行读取内容到str_line

                $sscanf(str_line,"%d %s",index,str_tmp)  //格式化读出到指定变量中

        end

        详细解释可以翻看systemverilog手册。

  • 5
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X-Lancer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值