1 ROM初始化文档创建
Xilinx FPGA的片内ROM支持初始化数据配置。如图所示,我们可以创建一个名为rom_init.coe的文件,注意后缀一定是“.coe”,前面的名称当然你可以随意起。
ROM初始化文件的内容格式如下所示。是这个64*32bit大小ROM的初始化数据。
MEMORY_INITIALIZATION_RADIX=16;//表示ROM内容的数据格式是16进制
MEMORY_INITIALIZATION_VECTOR=
00000000,
0000C000,
0003C000,
0003C000,
0007E000,
0007E000,
0007E000,
0006E000,
000CF000,
000CF000,
000CF000,
000CF000,
00187800,
00187800,
00187800,
00187800,
00303C00,
00303C00,
00303C00,
00303C00,
00701C00,
00601E00,
00601E00,
00601E00,
00E00E00,
00C00F00,
00C00F00,
00FFFF00,
01FFFF00,
01800F80,
01800780,
01800780,
03800780,
030007C0,
030003C0,
030003C0,
070003C0,
060003E0,
060001E0,
060001E0,
0E0001E0,
0E0001F0,
1F0001F8,
7FC00FFE,
7FC00FFE,
00000000,
00000000,
00000000,
00000000,
00000000,
00000000,
00000000,
00000000,
00000000,
00000000; //每个数据后面用逗号或者空格或者换行符隔开,最后一个数据后面加分号
2新建源文件
打开ISE工程,如图所示,在“Designà Implementation à Hierarchy”中的任意位置单击鼠标右键,弹出菜单中选择“New Source..”。
在“New Source Wizard”中,做如图所示的设置。
● “Select Source Type”中选择新建文件类型为“IP (CORE Generator & Architecture Wizard)”。
● “File name”即文件名,我们命名为“rom_controller”。
● “Location”下面输入这个新建文件所存放的路径,我们将其定位到工程路径下的“ipcore_dir”文件夹下。
● 勾选上“Add to project”。
完成以上设置后,点击“Next”进入下一步。
3 IP选择
在“Select IP”页面中,如图所示,我们在“View by Function”下面找到“Memories & Storage Elementsà RAMs & ROMs à Block Memory Generator”,单击选中它,接着点击“Next”进入下一步。
弹出“Summary”页面后,点击“Finish”即可。
4 ROM配置
弹出的第1个页面中,如图所示,“Interface Type”选择“Native”,然后点击“Next”到下一个配置页面。
弹出的第2个页面中,如图所示,“Memory Type”选择“Single Port ROM”,其他配置默认即可,然后点击“Next”到下一个配置页面。
弹出的第3个页面中,如图所示,ROM位宽“Read Width”输入“32”bit;ROM深度“Depth”输入“64”。其他配置默认即可,然后点击“Next”到下一个配置页面。
第4个配置页面中,如图所示勾选“Memory Initiazation”下的“Load Init File”,然后点击“Browse”定位到前面创建的rom_init.coe文件所在路径。
余下2个页面均使用默认设置即可,点击“Generate”生成ROM。