用文件初始化FIFO

来源:互联网 发布:fedora安装wine软件 编辑:程序博客网 时间:2024/06/05 15:09
`timescale 1ps/1psmodule FILEFIFO(iCLK,iRST_N,iREAD,oDATA,iWRITE,iDATA);parameter DATA_WIDTH=8;//数据位宽parameter DATA_LENGTH=256;//FIFO深度parameter FILE_NAME="file.txt";input iCLK;input iRST_N;input iREAD;output [DATA_WIDTH-1:0] oDATA;input iWRITE;input [DATA_WIDTH-1:0] iDATA;reg [DATA_WIDTH-1:0] oDATA;reg [DATA_WIDTH-1:0] rMem[DATA_LENGTH-1:0];integer fp;integer i;integer n;initial beginfp=$fopen(FILE_NAME,"r");i=0;while(!($feof(fp)) && i<DATA_LENGTH) beginn=$fscanf(fp,"%x",rMem[i]);i=i+1;end$fclose(fp);endinteger readAddr;integer writeAddr;initial beginreadAddr=0;writeAddr=0;endalways@(posedge iCLK or negedge iRST_N)beginif(!iRST_N) oDATA<=0;else if(iWRITE) beginrMem[writeAddr]<=iDATA;if(writeAddr==DATA_LENGTH-1) writeAddr<=0;else writeAddr<=writeAddr+1;endelse if(iREAD) beginoDATA<=rMem[readAddr];if(readAddr==DATA_LENGTH-1) readAddr<=0;else readAddr<=readAddr+1;endendendmodule


原创粉丝点击