verilog常用系统函数以及例子.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
verilog常用系统函数以及例子.doc

1.打开文件 integer file_id; file_id = fopen(file_path/file_name); 2.写入文件 //$fmonitor只要有变化就一直记录 $fmonitor(file_id, %format_char, parameter); eg:$fmonitor(file_id, %m: %t in1=%d o1=%h, $time, in1, o1); //$fwrite需要触发条件才记录 $fwrite(file_id, %format_char, parameter); //$fdisplay需要触发条件才记录 $fdisplay(file_id, %format_char, parameter); $fstrobe(); 3.读取文件 integer file_id; file_id = $fread(file_path/file_name, r); 4.关闭文件 $fclose(fjile_id); 5.由文件设定存储器初值 $readmemh(file_name, memory_name); //初始化数据为十六进制 $readmemb(file_name, memory_name); //初始化数据为二进制 ? 提供了丰富的系统函数,这为Testbench的编写提供了方便。尤其是IEEE1364-2005,其系统级建模的能力更强。 ??? 以前我一般常用到的系统函数只有几 个:$readmemb,$readmemh,$display,$fmonitor,$fwrite,$fopen,$fclose等。通常需要对文件 作预处理,才能用于Testbench读取。今天又尝试了几个其他的文件输入输出函数,不需要对文件进行预处理,直接使用需要的文件,只对需要的部分进行 读取。 ??? $fseek,文件定位,可以从任意点对文件进行操作; ??? $fscanf,对文件一行进行读写。 ??? 下面是一些常见的应用: ??? 1、读写文件 `timescale 1 ns/1 ns module FileIO_tb; integer fp_r, fp_w, cnt; reg [7:0] reg1, reg2, reg3; initial begin ? fp_r = $fopen(data_in.txt, r); ? fp_w = $fopen(data_out.txt, w); ? ? while(!$feof(fp_r)) begin ??? cnt = $fscanf(fp_r, %d %d %d, reg1, reg2, reg3); ??? $display(%d %d %d, reg1, reg2, reg3); ??? $fwrite(fp_w, %d %d %d\n, reg3, reg2, reg1); ? end ? ? $fclose(fp_r); ? $fclose(fp_w); end endmodule ??? 2、 integer file, char; reg eof; initial begin ? ?file = $fopenr(myfile.txt); ? ?eof = 0; ? ?while (eof == 0) begin ? ? ? ?char = $fgetc(file); ? ? ? ?eof = $feof (file); ? ? ? ?$display (%s, char);? ???end end ??? 3、文件处理定位 `define SEEK_SET 0 `define SEEK_CUR 1 `define SEEK_END 2 integer file, offset, position, r; r = $fseek(file, 0, `SEEK_SET); r = $fseek(file, 0, `SEEK_CUR); r = $fseek(file, 0, `SEEK_END); r = $fseek(file, position, `SEEK_SET); ??? 4、 integer r, file, start, count; reg [15:0] mem[0:10], r16; r = $fread(file, mem[0], start, count); r = $fread(file, r16); ??? 5、 integer file, position; position = $ftell(file); ?? 6、 integer file, r, a, b; reg [80*8:1] string; file = $fopenw(output.log); r = $sformat(string, Formatte

文档评论(0)

tangtianbao1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档