0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

四种常见的ROM、RAM初始化文件格式

Hx 作者:工程师陈翠 2018-06-29 09:08 次阅读

一、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编程器或interwetten与威廉的赔率体系 器使用Intel HEX文件。

四、mif文件

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

1

2

% 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之间的内容。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ROM
    ROM
    +关注

    关注

    4

    文章

    572

    浏览量

    85736
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1368

    浏览量

    114650
收藏 人收藏

    评论

    相关推荐

    RIFF文件格式简介

    RIFF(Resources Interchange File Format)中文翻译为资源互换文件格式,是Windows下大部分多媒体文件遵循的一文件结构。
    的头像 发表于 10-07 16:25 1729次阅读
    RIFF<b class='flag-5'>文件格式</b>简介

    阻止RAM初始化文件

    嗨,大家好我对Xilinx板上的RAM有疑问。我正在寻找电路板上给定Block RAM的VHDL描述,在那里我可以直接将内存初始化文件的链接写入VHDL代码。上次我使用Altera板时
    发表于 05-08 14:38

    .mpp文件格式打开软件下载

    .mpp文件格式打开
    发表于 07-07 13:14 2517次下载

    适用于IPTV大并发应用的文件格式

    分析交互式网络电视(IPTV)大并发应用的特性,提出一适用于IPTV大并发应用的服务器内部文件格式cl4文件格式。该文件格式采用了符合IPTV大并发应用特性的音视频数据交织、媒体数
    发表于 04-15 10:02 17次下载

    CD-ROM映像文件格式转换工具

    WinISO是一个CD-ROM映像文件格式转换工具,并且可以直接编辑光盘映像文件!WinISO能够运行在Windows95/98/Me/NT/2000环境下。它可以处理几乎所有的CD-ROM
    发表于 05-25 13:33 44次下载

    数码相机伴侣的文件格式

    数码相机伴侣的文件格式              文件格式指的是数码相机伴侣独特的文件系统结构在
    发表于 12-23 10:05 876次阅读

    FPGA的ROM初始化问题讨论

    本文讨论FPGA的ROM初始化问题,详细介绍mit文件的创建与使用。利用FPGA实现的ROM只能认为器件处于用户状态时具备ROM功能。使用时
    发表于 02-08 14:24 5496次阅读
    FPGA的<b class='flag-5'>ROM</b><b class='flag-5'>初始化</b>问题讨论

    GIF图形文件格式文档

    GIF图形文件格式文档 GIF图形文件格式文档 GIF图形文件格式文档
    发表于 05-24 10:53 2次下载

    GIF文件格式详解

    GIF文件格式详解 GIF文件格式详解 GIF文件格式详解
    发表于 05-24 10:53 2次下载

    在51平台下初始化文件的引入导致全局变量无法初始化的问题如何解决

    本文档的主要内容详细介绍的是在51平台下初始化文件的引入导致全局变量无法初始化的问题如何解决。
    发表于 08-20 17:31 0次下载
    在51平台下<b class='flag-5'>初始化</b><b class='flag-5'>文件</b>的引入导致全局变量无法<b class='flag-5'>初始化</b>的问题如何解决

    想要对RAM初始化该怎么操作

    RAM初始化并没有那么神秘,如果是采用Xilinx的IP Core,只需提供一个.coe文件,其内容就是RAM初始值,只需要注意coe
    的头像 发表于 06-06 14:36 8715次阅读

    根据MATLAB中的伪随机交织器产生的交织图案初始化ROM的实验

    根据MATLAB中的伪随机交织器产生的交织图案初始化ROM的实验(嵌入式开发工程师报名)-根据MATLAB中的伪随机交织器产生的交织图案初始化ROM
    发表于 07-30 16:19 13次下载
    根据MATLAB中的伪随机交织器产生的交织图案<b class='flag-5'>初始化</b>到<b class='flag-5'>ROM</b>的实验

    STM32--hex文件格式

        hex 是 Intel 公司制定的一使用 ASCII 文本记录机器码或常量数据的文件格式,它可以烧录到MCU中,被MCU执行的一文件格式。一个hex
    发表于 12-06 11:21 4次下载
    STM32--hex<b class='flag-5'>文件格式</b>

    WAV文件格式详解

    WAV是微软公司开发的一音频格式文件,用于保存Windows平台的音频信息资源,它符合资源互换文件格式(Resource Interchange File Format,RIFF)文件
    的头像 发表于 10-21 09:52 5314次阅读
    WAV<b class='flag-5'>文件格式</b>详解

    常用对象文件格式

    电子发烧友网站提供《常用对象文件格式.pdf》资料免费下载
    发表于 10-15 09:25 0次下载
    常用对象<b class='flag-5'>文件格式</b>