[verilog]用文件初始化ROM

来源:互联网 发布:html5仿淘宝手机商城 编辑:程序博客网 时间:2024/05/29 03:13
`timescale 1ps/1ps/*从文件中读入ROM的值2013-4-14*/module FILEROM(iCLK,iRST_N,iREAD,iADDR,oDATA);parameter DATA_WIDTH=8;//数据位宽parameter ADDR_WIDTH=8;//地址位宽parameter ADDR_START=0;//地址起始parameter ADDR_END  =255;//地址尾parameter FILE_NAME="file.txt";//文件名input iCLK;input iRST_N;input iREAD;input [ADDR_WIDTH-1:0] iADDR;output [DATA_WIDTH-1:0] oDATA;reg [DATA_WIDTH-1:0] oDATA;reg [DATA_WIDTH-1:0] rMem[ADDR_END:ADDR_START];integer fp;integer i;integer n;initial beginfp=$fopen(FILE_NAME,"r");i=ADDR_START;while(!($feof(fp)) && i<=ADDR_END) beginn=$fscanf(fp,"%x",rMem[i]);i=i+1;end$fclose(fp);end//oDATAalways@(posedge iCLK or negedge iRST_N)beginif(!iRST_N) oDATA<=0;else if(iREAD) oDATA<=rMem[iADDR];endendmodule