Bootstrap

第一章:1.2.8.6 Verilog系统函数

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,对文件一行进行读写。
    下面是一些常见的应用&#

;