FPGA在做功能仿真过程中,例如算法实现,数据处理等,往往需要把实际采集的数据作为仿真的输入,所以需要实现对文件数据的读写操作,具体读写操作代码如下所示:
`timescale 1ns / 100ps
module wr_rd_file
#(
parameter FILE_NUM = 2,
parameter DATA_WITH = 32,
parameter DATA_LEN = 2048
)
(
input clk ,
input rst_n ,
input start_en,
input file_1w0rd,
input data_vld,
input [DATA_WITH-1:0] data_in ,
output reg data_en ,
output reg[DATA_WITH-1:0] data_out
);
//`ifdef FILE_WR //********************WR**********************************
reg [64*8-1:0] filename;
integer file_handle;
initial
begin
$swrite(filename,"DATA_WR_%1d.pcm",FILE_NUM);
file_handle = $fopen(filename);
end
reg start_reg;
reg [15:0] cnt;
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
start_reg <= 0;
else if(start_en==1)
start_reg <= 1;
else if(cnt>DATA_LEN)
start_reg <= 0;
else
start_reg <= start_reg;
end