我是靠谱客的博主 孝顺荷花,最近开发中收集的这篇文章主要介绍【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手册。

最后

以上就是孝顺荷花为你收集整理的【SV】SystemVerilog系统函数文件读写一、简介二、常用系统函数的全部内容,希望文章能够帮你解决【SV】SystemVerilog系统函数文件读写一、简介二、常用系统函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部