1、系统函数$display
作用是控制台输出信息
$display("Start simulation") //显示字符串
$display("data_play = %h hex", 100) //显示data_play的16进制数(或者其他进制)
$display("Simulation time is %t", $time) //显示仿真的时间
2、$fopen
用法:<文件句柄>=$fopen("<文件名>");
句柄就是任务$fopen返回的多通道描述符,默认为32位,最低位(第0位)默认被设置1,默认开放标准输出通道,即transcript窗口。
每一次使用$fopen函数后都打开了一个新的通道,并且返回了一个设置为1的位相对应。默认应该是0001,以上每调用分别设置为0010 ,0100,1000(只考虑最低四位)。
例子:读取文件
define `DATA_LENGTH 8 //宏定义,定义数据长度
reg [15:0] Sig0[`DATA_LENGTH-1:0];
reg [15:0] Sig1[`DATA_LENGTH-1:0]; //定义RAM大小
integer data_file0; //定义句柄
integer data_file1; //定义句柄·
initial
begin
#200
data_file0 = $fopen("file/rd_data0_fpga.txt", "r");
data_file1 = $open("file/rd_data1_fpga.txt, "r");
for(i=0; i<`DATA_LENGTH; i++)
begin
$fscanf(data_file0, "%d", Sig0[i]); //读取十进制
$fscanf(data_file1, "%h", Sig1[i]); //读取十六进制
end
$fclose(data_file0); //关闭这个句柄
$fclose(data_file1); //关闭这个句柄
end
3、$fscan
函数功能,读取txt(.dat)文件数据
$fscanf(文件句柄(指针),读取格式, 数组) //读取格式可以是二进制,八进制或十六进制
(上例将rd_data0_fpga.txt的数据存储到寄存器Sig0中)
https://blog.csdn.net/weizhl10131729/article/details/78556489
https://blog.csdn.net/yanchuan23/article/details/80547272
4、$fwrite($display)