verilog常用系统任务和函数

您所在的位置:网站首页 mem寄存器 verilog常用系统任务和函数

verilog常用系统任务和函数

#verilog常用系统任务和函数| 来源: 网络整理| 查看: 265

在FPGA开发中编写仿真测试激励文件,经常会用到verilog的系统函数,使用系统函数会非常方便,本文总结了常用的系统函数,并提供了说明和使用示例。

一、文件操作1、打开文件和关闭文件integer fp; fp = $fopen("file_path/file_name","wb"); $fclose(fp);

打开文件$fopen函数:

第1个参数:文件路径,绝对路径和相对路径均可。

第2个参数:

返回值:0表示打开文件成功,非0值表示打开文件失败

关闭文件$fclose函数:参数是$fopen返回的整型变量

2、写入文件$fdisplay(fp,"%d", dout); $fwrite(fp,"%d", dout); $fmonitor(fp, "%h", $time); $fstrobe(fp, "%h", 16'h78)

$fdisplay等函数是将数据写入到指定文件中,第1个参数是文件指针,第二个参数是写入数据格式,第3个参数是写入数据。

写入数据格式:

说明:

$fdisplay 调用即执行,可以自动换行,

$fwrite调用即执行,换行则需写成“%d\n”。

$fmonitor只有在变量发生变化时,才会写入文件,在initial中调用一次即可。

$fstrobe语句执行完毕后写文件

3、读取文件

读取文件函数,需要设定存储器用来存储数据,存储器可设定为二维数组。

$fread(mem, fd, start, count)

参数说明:mem是存储数组或寄存器变量 ,fp为文件指针,start 为文件起始地址,count 为读取长度。若 start和count省略,数据会全部填充至变量 mem即停。

$readmemh("file_path/file_name",mem,start, end); $readmemb("file_path/file_name",mem,start, end);

$readmemb是以2进制读取,$readmemh是以16进制读取

参数说明:file_path/file_name为文件路径,mem是存储数组或寄存器变量 ,start 为起始地址,end 为结束低至。若 start和end省略,数据会全部填充至变量 mem。

$fgetc( fd ) 按字符读取文件,每次执行读取8bit。

$fgets(str, fd) 按行读取文件,每次执行读取一行。

localparam FILE_LEN = 1000; localparam WIDTH = 8; integer num, i; reg [WIDTH-1:0] mem [0:FILE_LEN-1]; reg [WIDTH-1:0] mem_r; reg [31:0] mem_load [3:0] ; reg [99:0] line_buf [9:0] ; //方法1 $fread(mem,fp,0,FILE_LEN);//数组型读取 $fread(mem_r,fp);//单个寄存器 //方法2 $readmemb("file_path/file_name", mem); $readmemb("file_path/file_name", mem,0,FILE_LEN-1); $readmemh("./DATA_WITHNOTE.HEX", mem_load); //方法3 mem[0] = $fgetc(fp); for(i=0;i

说明:

$display不管是阻塞赋值还是非阻塞赋值,直接打印结果。

$strobe执行等到非阻塞赋值完成后再打印结果。

$monitor用于变量的持续监测,只要变量发生变化,就会打印显示。

三、其它1、随机数产生函数

$random,用于产生随机数

//num为范围在 -(b-1):(b-1) 中的随机数, b为十进制整数 num = $random%b; //产生随机正整数, 在 0:(b-1) 中的随机数 num = {$random}%b 2、仿真过程控制函数

$finish表示结束当前仿真,$stop表示暂停当前仿真。

$finish; $stop; 3、显示仿真时间

$time返回整数时间值,$realtime返回实数时间值,都是以仿真开始时的仿真时间为参考。

$display($time,“ dout=%d”,dout);

本文将不断定期更新中,关注,收藏,不走丢哦

有任何问题,都可以在评论区和我交流哦

本文由FPGA入门到精通原创,公众号为“FPGA入门到精通”,github开源代码:“FPGA知识库”

您的支持是我持续创作的最大动力!如果本文对您有帮助,还请多多点赞、评论和收藏。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3