verilog讀寫檔案(整理)
阿新 • • 發佈:2019-01-04
以前我一般常用到的系統函式只有幾個:$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