几种常见的ROM,RAM初始化文件格式

一、coe格式
Xilin ROM的初始化文件,ISE初始化ROM的时候要用扩展名为coe的文件。其格式如下:
MEMORY_INITIALIZATION_TADIX=2; //2表示数据是二进制格式,也可以是8,10,16
MEMORT_INITIALITION_VECTOR=
01110100,
00100000,
11110101,
……
二、bin格式

    bin格式是纯数据本身,不包含任何地址信息,烧写或下载时通常需要制定地址。

三、intel hex格式

记录格式
  Intel HEX由任意数量的十六进制记录组成。每个记录包含5个域,它们按以下格式排列:
  :llaaaatt[dd…]cc
  每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字。每一个域由至少两个十六进制编码数字组成,它们构成一个字节,就像以下描述的那样:
  : 每个Intel HEX记录都由冒号开头.
  ll 是数据长度域,它代表记录当中数据字节(dd…)的数量.
  aaaa 是地址域,它代表记录当中数据的起始地址.
  tt 是代表HEX记录类型的域,它可能是以下数据当中的一个:
  00 – 数据记录
  01 – 文件结束记录
  02 – 扩展段地址记录
  04 – 扩展线性地址记录
  dd 是数据域,它代表一个字节的数据.一个记录可以有许多数据字节.记录当中数据字节的数量必须和数据长度域(ll)中指定的数字相符.
  cc 是校验和域,它表示这个记录的校验和.校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足.
00-数据记录
  Intel HEX文件由任意数量以回车换行符结束的数据记录组成.数据记录外观如下:
  :10246200464C5549442050524F46494C4500464C33
  其中:
  10 是这个记录当中数据字节的数量.
  2462 是数据将被下载到存储器当中的地址.
  00 是记录类型(数据记录)
  464C…464C是数据.
  33 是这个记录的校验和.
04-扩展线性地址记录(HEX386)
  扩展线性地址记录也叫作32位地址记录或HEX386记录.这些记录包含数据地址的高16位.扩展线性地址记录总是有两个数据字节,外观如下:
  :02000004FFFFFC
  其中:
  02 是这个记录当中数据字节的数量.
  0000 是地址域,对于扩展线性地址记录,这个域总是0000.
  04 是记录类型 04(扩展线性地址记录)
  FFFF 是地址的高16位.
  FC 是这个记录的校验和,计算方法如下:
  01h + NOT(02h + 00h + 00h + 04h + FFh + FFh).
  当一个扩展线性地址记录被读取,存储于数据域的扩展线性地址被保存,它被应用于从Intel HEX文件读取来的随后的记录.线性地址保持有效,直到它被另外一个扩展地址记录所改变.
  通过把记录当中的地址域与被移位的来自扩展线性地址记录的地址数据相加获得数据记录的绝对存储器地址.
  示例
  以下的例子演示了这个过程..
  来自数据记录地址域的地址 2462
  扩展线性地址记录的数据域 + FFFF
  绝对存储器地址 FFFF2462
02-扩展段地址记录(HEX86)
  扩展段地址记录也叫HEX86记录,它包括4-19位数据地址段.扩展段地址记录总是有两个数据字节,外观如下:
  :020000021200EA
  其中:
  02 是记录当中数据字节的数量.
  0000 是地址域.对于扩展段地址记录,这个域总是0000.
  02 是记录类型 02(扩展段地址记录)
  1200 是地址段.
  EA 是这个记录的校验和,计算方法如下:
  01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).
  当一个扩展段地址记录被读取,存储于数据域的扩展段地址被保存,它被应用于从Intel HEX文件读取来的随后的记录.段地址保持有效,直到它被另外一个扩展地址记录所改变.
  通过把记录当中的地址域与被移位的来自扩展段地址记录的地址数据相加获得数据记录的绝对存储器地址.
  以下的例子演示了这个过程..
  来自数据记录地址域的地址 2462
  扩展段地址记录数据域 + 1200
  绝对存储器地址 00014462
01-文件结束(EOF)记录
  Intel HEX文件必须以文件结束(EOF)记录结束.这个记录的记录类型域的值必须是01.EOF记录外观总是如下:
  :00000001FF
  其中:
  00 是记录当中数据字节的数量.
  0000 是数据被下载到存储器当中的地址.在文件结束记录当中地址是没有意义被忽略的.0000h是典型的地址.
  01 是记录类型 01(文件结束记录)
  FF 是这个记录的校验和,计算方法如下:
  01h + NOT(00h + 00h + 00h + 01h).
  Intel HEX文件例子:
  下面是一个完整的Intel HEX文件的例子:
  :10001300AC12AD13AE10AF1112002F8E0E8F0F2244
  :10000300E50B250DF509E50A350CF5081200132259
  :03000000020023D8
  :0C002300787FE4F6D8FD7581130200031D
  :10002F00EFF88DF0A4FFEDC5F0CEA42EFEEC88F016
  :04003F00A42EFE22CB
  :00000001FF
  Intel HEX文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。Intel HEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据。大多数EPROM编程器或模拟器使用Intel HEX文件。

四、mif文件

   mif文件是altera ROM的初始化文件(hex亦可)。mif文件是在编译和仿真过程中作为存储器(ROM或RAM)初始化输入的文件,即memory initialization file。mif文件格式为:

% multiple-line comment
multiple-line comment %

– single-line comment

DEPTH = 32; – The size of data in bits
WIDTH = 8; – The size of memory in words
ADDRESS_RADIX = HEX; – The radix for address values
DATA_RADIX = BIN; – The radix for data values
CONTENT – start of (address : data pairs)
BEGIN
00 : 00000000; – memory address : data
01 : 00000001;
02 : 00000010;
03 : 00000011;
04 : 00000100;
05 : 00000101;
06 : 00000110;
07 : 00000111;
08 : 00001000;
09 : 00001001;
0A : 00001010;
0B : 00001011;
0C : 00001100;
END;

 mif文件的格式是固定的,对于前4行(DEPTH,WIDTH,ADDRESS_RADIX, DATA_RADIX),前2个参数应与lpm_ROM宏模块LPM_WIDTHAD和LPM_WIDTH相关联,后2个参数为了方便一般设置为DEC (十进制)。关键是文件内容的begin与end之间的部分。mif文件的使用就是修改begin与end之间的内容。

转载地址:http://blog.sina.com.cn/s/blog_6f3d37ff01012fea.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPGA RAM初始化是指在FPGA(现场可编程门阵列)芯片中的RAM(随机存取存储器)单元中写入初始值的过程。因为FPGA RAM可以随时重置,所以在设计中对其进行初始化非常重要。 FPGA RAM初始化可以通过多种方式完成。一种常用的方式是使用硬件描述语言(例如Verilog或VHDL)来编写逻辑代码,在代码中设置RAM的初始值。这些初始值可以是预先定义的常数、固定值,也可以是来自于外部存储介质的值。 另一种方式是使用软件工具来完成初始化。FPGA厂商通常提供了专门的软件工具,允许用户使用图形界面或命令行界面来设置FPGA RAM的初始值。用户可以选择使用预先定义的模板或自定义的初始值,然后通过软件工具将初始值下载到FPGA芯片中。此外,这些工具还可以进行动态的RAM初始化,即在FPGA运行时执行初始化操作。 在FPGA设计中,RAM初始化非常重要,因为它决定了RAM的初始状态,进而影响整个系统的行为。例如,在数字信号处理系统中,RAM初始化可以决定滤波器系数的初始值,从而影响滤波器的性能。在通信系统中,RAM初始化可以决定FPGA的初始状态,从而影响系统的启动时间和通信质量。 总之,FPGA RAM初始化是将初始值写入RAM单元的过程,可以使用硬件描述语言或软件工具来完成。通过合适的初始化,可以确保FPGA系统在运行时拥有正确的起始状态,从而提高系统的性能和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值