在check中,如果需要读取cmodel的数据,然后进行check,经常会使用下面的系统方法,
$fopen(file_name,operation_type): 打开文件句柄
$ftell(file_handle) :获取当前文件的位置信息(这个位置信息指得是操作到文件那个字节了)
$fseek(file_handle,offset,base):重定向文件操作的位置,base+offset等于文件中具体字节位置
$fscanf(file_handle," string format",args):读取file,按照string format的形式读,并将值赋值给args
module file_function
integer iFile;
integer i;
integer fp_offset;
string data_string;
bit[63:0] data1;
bit[63:0] data2;
initial begin
iFile=$fopen("data.txt","r");
fp_offset=$ftell(iFile);
i=$fscanf(iFile,"%s %h %h",data_string,data1,data2);
fp_offset=$ftell(iFile);
i=$fseek(iFile,fp_offset,0);
i=$fscanf(iFile,"%s %h %h",data_string,data1,data2);
end
endmodule
输出:根据我自己的data.txt输出的结果
fp_offset is 0
fp_offset is 20
bit vector function
$countbits(expressi

本文介绍了SystemVerilog中用于检查的常见I/O操作,如使用$fopen打开文件,$ftell获取文件位置,$fseek重定向文件指针,以及$fscanf按格式读取文件内容。此外,还讲解了bit vector的相关函数,如$countbits统计特定值的位数,$countones计算1的个数,$onehot和$onehot0检查1的出现情况,以及$isunknown检测X/Z的存在。
最低0.47元/天 解锁文章
1531

被折叠的 条评论
为什么被折叠?



