在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 8803|回复: 5

hex文件读取任务和应用实例(systemverilog)

[复制链接]
发表于 2008-7-11 08:52:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
用于初始化存储器,省的再用工具进行hex->bin转换,自己改写的,出了什么问题还请各位指教

`define rom_size 16'hffff

module irom64kx8(     
input  [15:0] irom_addr,
input  irom_rd_n,
input  irom_cs_n,
output reg [7:0] irom_data_out
);

logic [7:0] rom_data[`rom_size];
logic [7:0] temp;
int i=0;
int h_mt;
initial begin
read_hex_file("../soft/main.hex",rom_data);
end
always @(*) begin
irom_data_out<=((~irom_rd_n) && (~irom_cs_n))? rom_data[irom_addr]:8'bZ;
end

task read_hex_file(input string file_name , output [7:0] rom_data[`rom_size]);
logic [7:0]  column;
logic [15:0] address;
logic [7:0] len;
logic [7:0] dat;
logic [7:0] check_sum;
int i,fd,code;
//initial all data with zero
foreach(rom_data
)
rom_data
=0;

fd=$fopen(file_name,"r");
if(fd==0) begin
  $display("hex file not found,please check file path and file name!");
  $stop;            // stop when no such file
end
while(~$feof(fd)) begin
    //find ":" at the beginning of a record
while(1) begin
  if($feof(fd))begin
   $fclose(fd);
   return;
  end
  
   column=$fgetc(fd);
  if(column==":") break;    // every line begin with ":" int the IntelHex form
end
   
  
   code=$fscanf(fd,"%2x",len);
   if(len==0) return;      // stop when no data
  
   check_sum=len;
   code=$fscanf(fd,"%4x",address);
   check_sum=check_sum+address;
   check_sum=check_sum+(address>>8);  // unsigned check_sum
   code=$fscanf(fd,"%2x",dat);     // data type
   check_sum=check_sum+dat;
  
  
   for(i=0;i<len;i=i+1) begin
     code=$fscanf(fd,"%2x",dat);
     check_sum=check_sum+dat;
     rom_data[address]=dat;     // rom_data read data from file
     //$display("rom_data[%6d]=%2h",address,dat);
     address=address+1;
   end
  
   code=$fscanf(fd,"%2x",dat);   // check data
   check_sum=check_sum+dat;
  
   if(check_sum!=0) begin
     $display("hex file error:checkcheck_sum is not zero!");
     $stop;
   end
end
endtask:read_hex_file


endmodule


[ 本帖最后由 pengyoust 于 2008-7-11 08:56 编辑 ]
发表于 2008-7-13 03:05:24 | 显示全部楼层

花童装出售

支持。support!
where buy flower girl dresses online?
i'm a bride, will marry next 2 month, i have bought my wedding dress, now i like to know where we buy my flowr girl dresses and prom dresses?
we saw jorma wedding dresses factory, anybody know jorma?
who can help me?
bridal gowns
回复 支持 反对

使用道具 举报

发表于 2008-7-17 17:11:17 | 显示全部楼层

学习了!

学习了!
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2008-8-7 06:26:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2010-7-3 13:14:34 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

发表于 2010-7-4 10:31:38 | 显示全部楼层
有必要那么复杂吗?直接调用$readmemh不行吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-8-9 22:01 , Processed in 0.473489 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表