verilog读取txt文件

以前我一般常用到的系统函数只有几个:$readmemb,$readmemh,$display,$fmonitor,$fwrite,$fopen,$fclose等。通常需要对文件作预处理,才能用于Testbench读取。今天又尝试了几个其他的文件输入输出函数,不需要对文件进行预处理,直接使用需要的文件,只对需要的部分进行读取。

$fseek,文件定位,可以从任意点对文件进行操作;

$fscanf,对文件一行进行读写。

下面是一些常见的应用:
1、读写文件

module read_write_file();
	integer fp_r,fp_w;
	integer count;
	reg [9:0] reg1;
 
	initial
		begin
			fp_r=$fopen("data_in.txt","r");//以读的方式打开文件
			fp_w=$fopen("data_out.txt","w");//以写的方式打开文件
 
			while(! $feof(fp_r))
				begin
					count=$fscanf(fp_r,"%b" ,reg1) ;//每次读一行
					$display("%d::::%b",count,reg1) ;//打印输出
					$fwrite(fp_w,"%b\n",reg1) ;//写入文件
				end
 
			$fclose(fp_r);//关闭已打开的文件
			$fclose(fp_w);
		end
 
endmodule
			

参考1:http://wenku.baidu.com/link?url=dk32mjICpEit1GGy9gKiuFtuS1X0xz9FoLfO9EvzAuhi08yLGWY38aMPl9LZPVhY_nc7OmOgtbZ26ac0Y8bq3T3Kdz-CHbNmokQrItRBeNe&from_mod=download

你可能感兴趣的:(verilog读取txt文件)