第一章:1.2.8.6 Verilog系统函数

本文介绍了Verilog HDL中的系统函数,如$fopen、$fscanf、$fseek等,用于文件的读写、定位操作。通过示例代码展示了如何在Testbench中使用这些函数读取和写入文件,以及进行文件处理定位等功能。
摘要由CSDN通过智能技术生成

Verilog HDL语言中共有以下一些系统函数和任务:
$bitstoreal, $rtoi,$display,$setup,$finish,$skew,$hold,$setuphold,
$itor,$strobe,$period,$time,$printtimescale,$timeformat,$realtime,
$width,$realtobits,$write,$recovery.

1.打开文件 

integer file_id;
file_id = fopen("file_path/file_name");

2.写入文件

//$fmonitor只要有变化就一直记录
$fmonitor(file_id, "%format_char", parameter_list);
$fmonitor(file_id, "%m: %t in1=%d o1=%h", $time, in1, o1);
//$fwrite需要触发条件才记录
$fwrite(file_id, "%format_char", parameter_list);
//$fdisplay需要触发条件才记录
$fdisplay(file_id, "%format_char", parameter_list);
$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"); //初始化数据为二进制

    以前我一般常用到的系统函数只有几个:$readmemb,$readmemh,$display,$fmonitor,$fwrite,$fopen,$fclose等。通常需要对文件作预处理,才能用于Testbench读取。今天又尝试了几个其他的文件输入输出函数,不需要对文件进行预处理,直接使用需要的文件,只对需要的部分进行读取。
    $fseek,文件定位,可以从任意点对文件进行操作;
    $fscanf,对文件一行进行读写。
    下面是一些常见的应用&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值