在FGPA的设计中,经常会对ROM进行初始化 *** 作,如果内存数据不是很大(比如几十个),完全可以在quartus
II
中逐个输入,但如果输入的数据较多,且数据的位数较大,如果依然采用逐个手工输入的方法的话,会遇到两个问题,一是工作量激增,二是容易出错。
通常情况下,需要初始化的数据都已知,可以在TXT文本中,把所有的数据排成一列,再借助excel就可以很轻松的得到“.MIF”文件。
首先仔细研究下
MIF
文件的格式,例如下面的这个.MIF文件:
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文件分两部分,一部分是格式说明部分:DEPTH
就是地址深度,
WIDTH
就是字宽,而ADDRESS_RADIX
和
DATA_RADIX
通常用
UNS;而另一部分则是
begin与end中间的"00
:
00000000
"
是一一对应的地址与数据。
因此,要得到MIF文件,只需要把begin与end中间的这段换成所需要的即可,具体步骤如下:
1.
打开TXT文本文件,打开excel软件;
2.
将TXT文件中一列数据全部复制到
excel
表格的第二列;
3.
在excel的第一列第一行输入“0
:”,(注意:此处是0,是因为地址总是从0开始),在第一列第二行输入“1
:”,把这两个单元格选中,鼠标往下拉到与数据行对齐的地方即可,这是利用了excel软件的序号自动增加的特性;
4.
将得到的excel文件另存为“Unicode文本(*.txt)”文件,此时会有一些提示出现,一律确定,不影响使用;
5.
打开quartus,新建一个TXT文件(file-new-other
file-txt文件),将MIF文件的格式说明拷贝过来,再将第4步得到的TXT文本文件中的数据全部复制到begin与end中间,
另存为“.mif”,即可!
二、利用Uedit编译器生成MIF文件
主要思想跟用excel方法一样,利用Uedit编译器可以列选的功能进行编序以及添加“:”。具体步骤如下:
1、
打开Uedit软件,并新建一个文件-New
File;
2、
将已知初始化数据编排成一列数据全部复制到刚创建的新文件中(同excel方法第二步);
图一:创建一个新文件并将初始化数据copy到其中
3、
“列选”第一列,如图二所示
图二,列选每行数据的起始
4、
通过Column菜单中的“Insert
Number”命令在每行加入序号。
5、
给每行加入序号后,再次通过列选功能,选中序号后面一列,加入“:”,MIF文件的格式说明拷贝过来再另存为MIF文件即可。
图三:列选序号后一列
图四:列选行号后一列,输入“:”
哦首先你得有一个mif文件 (HEX也可以)在创建IP的时候在倒数第二个选项有个输入你把MIF加载进去就行了。如果是自己些Mif的话,你在quartus中点新建文件,选择其他的有mif文件创建是一个EXERL形式的电子表格,输入数据,或者导入EXERL也可以。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)