1. 程式人生 > >verilog讀寫檔案(整理)

verilog讀寫檔案(整理)



以前我一般常用到的系統函式只有幾個:$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