在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(expression,control_bit): control_bit可以是任意4值逻辑(0,1,Z,X) ,单bit值,统计control_bit的个数
$countones(expression):统计1的个数
$onehot(expression):检测expression中1的个数是否是1
$onehot0(expression):检测expression中1的个数最大是1
$isunknown(expression):检测expression是否存在X/Z。
版权声明:本文为liuwei848原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。