一、coe格式
Xilin ROM的初始化文件,ISE初始化ROM的時(shí)候要用擴(kuò)展名為coe的文件。其格式如下:
MEMORY_INITIALIZATION_TADIX=2; //2表示數(shù)據(jù)是二進(jìn)制格式,也可以是8,10,16
MEMORT_INITIALITION_VECTOR=
01110100,
00100000,
11110101,
……
二、bin格式
bin格式是純數(shù)據(jù)本身,不包含任何地址信息,燒寫(xiě)或下載時(shí)通常需要制定地址。
三、intel hex格式
記錄格式
Intel HEX由任意數(shù)量的十六進(jìn)制記錄組成。每個(gè)記錄包含5個(gè)域,它們按以下格式排列:
:llaaaatt[dd…]cc
每一組字母對(duì)應(yīng)一個(gè)不同的域,每一個(gè)字母對(duì)應(yīng)一個(gè)十六進(jìn)制編碼的數(shù)字。每一個(gè)域由至少兩個(gè)十六進(jìn)制編碼數(shù)字組成,它們構(gòu)成一個(gè)字節(jié),就像以下描述的那樣:
: 每個(gè)Intel HEX記錄都由冒號(hào)開(kāi)頭。
ll 是數(shù)據(jù)長(zhǎng)度域,它代表記錄當(dāng)中數(shù)據(jù)字節(jié)(dd…)的數(shù)量。
aaaa 是地址域,它代表記錄當(dāng)中數(shù)據(jù)的起始地址。
tt 是代表HEX記錄類型的域,它可能是以下數(shù)據(jù)當(dāng)中的一個(gè):
00 – 數(shù)據(jù)記錄
01 – 文件結(jié)束記錄
02 – 擴(kuò)展段地址記錄
04 – 擴(kuò)展線性地址記錄
dd 是數(shù)據(jù)域,它代表一個(gè)字節(jié)的數(shù)據(jù)。一個(gè)記錄可以有許多數(shù)據(jù)字節(jié)。記錄當(dāng)中數(shù)據(jù)字節(jié)的數(shù)量必須和數(shù)據(jù)長(zhǎng)度域(ll)中指定的數(shù)字相符。
cc 是校驗(yàn)和域,它表示這個(gè)記錄的校驗(yàn)和。校驗(yàn)和的計(jì)算是通過(guò)將記錄當(dāng)中所有十六進(jìn)制編碼數(shù)字對(duì)的值相加,以256為模進(jìn)行以下補(bǔ)足。
00-數(shù)據(jù)記錄
Intel HEX文件由任意數(shù)量以回車(chē)換行符結(jié)束的數(shù)據(jù)記錄組成。數(shù)據(jù)記錄外觀如下:
:10246200464C5549442050524F46494C4500464C33
其中:
10 是這個(gè)記錄當(dāng)中數(shù)據(jù)字節(jié)的數(shù)量。
2462 是數(shù)據(jù)將被下載到存儲(chǔ)器當(dāng)中的地址。
00 是記錄類型(數(shù)據(jù)記錄)
464C…464C是數(shù)據(jù)。
33 是這個(gè)記錄的校驗(yàn)和。
04-擴(kuò)展線性地址記錄(HEX386)
擴(kuò)展線性地址記錄也叫作32位地址記錄或HEX386記錄。這些記錄包含數(shù)據(jù)地址的高16位。擴(kuò)展線性地址記錄總是有兩個(gè)數(shù)據(jù)字節(jié),外觀如下:
:02000004FFFFFC
其中:
02 是這個(gè)記錄當(dāng)中數(shù)據(jù)字節(jié)的數(shù)量。
0000 是地址域,對(duì)于擴(kuò)展線性地址記錄,這個(gè)域總是0000.
04 是記錄類型 04(擴(kuò)展線性地址記錄)
FFFF 是地址的高16位。
FC 是這個(gè)記錄的校驗(yàn)和,計(jì)算方法如下:
01h + NOT(02h + 00h + 00h + 04h + FFh + FFh)。
當(dāng)一個(gè)擴(kuò)展線性地址記錄被讀取,存儲(chǔ)于數(shù)據(jù)域的擴(kuò)展線性地址被保存,它被應(yīng)用于從Intel HEX文件讀取來(lái)的隨后的記錄。線性地址保持有效,直到它被另外一個(gè)擴(kuò)展地址記錄所改變。
通過(guò)把記錄當(dāng)中的地址域與被移位的來(lái)自擴(kuò)展線性地址記錄的地址數(shù)據(jù)相加獲得數(shù)據(jù)記錄的絕對(duì)存儲(chǔ)器地址。
示例
以下的例子演示了這個(gè)過(guò)程。.
來(lái)自數(shù)據(jù)記錄地址域的地址 2462
擴(kuò)展線性地址記錄的數(shù)據(jù)域 + FFFF
絕對(duì)存儲(chǔ)器地址 FFFF2462
02-擴(kuò)展段地址記錄(HEX86)
擴(kuò)展段地址記錄也叫HEX86記錄,它包括4-19位數(shù)據(jù)地址段。擴(kuò)展段地址記錄總是有兩個(gè)數(shù)據(jù)字節(jié),外觀如下:
:020000021200EA
其中:
02 是記錄當(dāng)中數(shù)據(jù)字節(jié)的數(shù)量。
0000 是地址域。對(duì)于擴(kuò)展段地址記錄,這個(gè)域總是0000.
02 是記錄類型 02(擴(kuò)展段地址記錄)
1200 是地址段。
EA 是這個(gè)記錄的校驗(yàn)和,計(jì)算方法如下:
01h + NOT(02h + 00h + 00h + 02h + 12h + 00h)。
當(dāng)一個(gè)擴(kuò)展段地址記錄被讀取,存儲(chǔ)于數(shù)據(jù)域的擴(kuò)展段地址被保存,它被應(yīng)用于從Intel HEX文件讀取來(lái)的隨后的記錄。段地址保持有效,直到它被另外一個(gè)擴(kuò)展地址記錄所改變。
通過(guò)把記錄當(dāng)中的地址域與被移位的來(lái)自擴(kuò)展段地址記錄的地址數(shù)據(jù)相加獲得數(shù)據(jù)記錄的絕對(duì)存儲(chǔ)器地址。
以下的例子演示了這個(gè)過(guò)程。.
來(lái)自數(shù)據(jù)記錄地址域的地址 2462
擴(kuò)展段地址記錄數(shù)據(jù)域 + 1200
絕對(duì)存儲(chǔ)器地址 00014462
01-文件結(jié)束(EOF)記錄
Intel HEX文件必須以文件結(jié)束(EOF)記錄結(jié)束。這個(gè)記錄的記錄類型域的值必須是01.EOF記錄外觀總是如下:
:00000001FF
其中:
00 是記錄當(dāng)中數(shù)據(jù)字節(jié)的數(shù)量。
0000 是數(shù)據(jù)被下載到存儲(chǔ)器當(dāng)中的地址。在文件結(jié)束記錄當(dāng)中地址是沒(méi)有意義被忽略的.0000h是典型的地址。
01 是記錄類型 01(文件結(jié)束記錄)
FF 是這個(gè)記錄的校驗(yàn)和,計(jì)算方法如下:
01h + NOT(00h + 00h + 00h + 01h)。
Intel HEX文件例子:
下面是一個(gè)完整的Intel HEX文件的例子:
:10001300AC12AD13AE10AF1112002F8E0E8F0F2244
:10000300E50B250DF509E50A350CF5081200132259
:03000000020023D8
:0C002300787FE4F6D8FD7581130200031D
:10002F00EFF88DF0A4FFEDC5F0CEA42EFEEC88F016
:04003F00A42EFE22CB
:00000001FF
Intel HEX文件是由一行行符合Intel HEX文件格式的文本所構(gòu)成的ASCII文本文件。在Intel HEX文件中,每一行包含一個(gè)HEX記錄。這些記錄由對(duì)應(yīng)機(jī)器語(yǔ)言碼和/或常量數(shù)據(jù)的十六進(jìn)制編碼數(shù)字組成。Intel HEX文件通常用于傳輸將被存于ROM或者EPROM中的程序和數(shù)據(jù)。大多數(shù)EPROM編程器或模擬器使用Intel HEX文件。
四、mif文件
mif文件是altera ROM的初始化文件(hex亦可)。mif文件是在編譯和仿真過(guò)程中作為存儲(chǔ)器(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文件的格式是固定的,對(duì)于前4行(DEPTH,WIDTH,ADDRESS_RADIX, DATA_RADIX),前2個(gè)參數(shù)應(yīng)與lpm_ROM宏模塊LPM_WIDTHAD和LPM_WIDTH相關(guān)聯(lián),后2個(gè)參數(shù)為了方便一般設(shè)置為DEC (十進(jìn)制)。關(guān)鍵是文件內(nèi)容的begin與end之間的部分。mif文件的使用就是修改begin與end之間的內(nèi)容。
-
ROM
+關(guān)注
關(guān)注
4文章
539瀏覽量
85427 -
RAM
+關(guān)注
關(guān)注
8文章
1344瀏覽量
114210
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論