本人现在正在研究 基于FPGA 的FFT设计,希望和大家一起交流讨论

RAM初始化的测试文件编写

上一篇 / 下一篇  2007-08-12 16:58:01 / 天气: 晴朗 / 心情: 高兴 / 个人分类:技术摘要

modelsim中,需要一个程序把intel hex文件中的数据读到ram中,作为ram的初始化数据

以下为一示例:

module ReadHexFile;

parameter filename="cos.hex";

reg[7:0]  column;
reg[15:0] address;
reg[7:0] len;
reg[7:0] dat;
reg[7:0] sum;

reg[500*8:1] noused;
reg[640:1] errstr;

reg[7:0] ram[0:2047];

integer i,fd,code;

initial begin
 fd=$fopen(filename,"r");
 if(fd==0) $stop;      // stop when no such file
 forever begin : continue
  if($ferror(fd,errstr))
  begin
    $display("%s",errstr);
    $stop;
  end
  column=$fgetc(fd);
  if(column!=":")    // every line begin with ":" int the IntelHex form
  begin
    code=$fgets(noused,fd);
    disable continue;
  end
  code=$fscanf(fd,"%2x",len);
  if(len==0) $stop;  // stop when no data
  sum=len;
  code=$fscanf(fd,"%4x",address);
  sum=sum+address;
  sum=sum+(address>>8); // unsigned sum
  code=$fscanf(fd,"%2x",dat); // data type
  sum=sum+dat;
  for(i=0;i<len;i=i+1)
  begin
    code=$fscanf(fd,"%2x",dat);
    sum=sum+dat;
    ram[address]=dat;   // ram read data from file
    address=address+1;
  end
  code=$fscanf(fd,"%2x",dat); // check data
  sum=sum+dat;
  if(sum!=0) begin
    $display("error:checksum is not zero!");
    $stop;
  end
 end
end

endmodule


FPGA/CPLD器件价格查询

TAG: 技术摘要

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-11-29  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

数据统计

  • 访问量: 14892
  • 日志数: 90
  • 文件数: 4
  • 建立时间: 2007-04-21
  • 更新时间: 2008-10-30

RSS订阅

Open Toolbar