IPROM核介绍
IPROM核,即ROM(只读存储器)IP核,是FPGA开发中不可或缺的组成部分。这种固态半导体存储器专门用于存储和检索数据,其独特之处在于它仅允许访问预先存储的信息。一旦数据被编程进入ROM,就无法进行修改或删除,而且这些数据即使在电源关闭后也能保持不丢失。
在FPGA的应用中,通过IP核生成的ROM或RAM实际上都是利用FPGA内部的BRAM(块存储器)资源。值得注意的是,这些存储器的内容在断电后将会丢失。ROM IP核在出厂时由制造商进行一次性编程,之后用户只能读取其中的信息,不能进行写入操作。
使用方法
1.点击tool-->MegaWizard Plug-In Manager
2.点击creat new(如果建立好后需要修改IP核,则点击Edit)
3.根据自身需要选择ram核或者rom核;并且选择端口数量,名字任起。
4根据所设计CPU的指令地址,q表示每条指令的字长,address表示IM中最大能存储的指令条数。
5.对关于时钟的部分进行配置,一般情况按下图配置即可。
6.将设计好的汇编指令对应的mif文件导入IP核。
注:导入ROM核的文件既可以是.hex文件,也可以是.mif文件;mif文件格式相对于hex文件内容更为清晰。
(生成mif文件的方式在网上可以查找到)
//.mif
/*
在MIF文件中,每一行直接指定了内存地址及其对应的数据内容。可以看到地址、数据和注释都清晰易读。
*/
-- 32-bit wide memory initialization file example for a block of 16 words
-- Starting at address 0x00000000
WIDTH = 32;
DEPTH = 16;
ADDRESS_RADIX = HEX;
DATA_RADIX = HEX;
CONTENT
BEGIN
00000000 : 01234567 89ABCDEF ; Comment: This is the first word.
00000004 : FEDCBA98 76543210 ; Second word.
...
00000020 : 00000000 00000000 ; Sixteenth word.
END;
//.hex
:10000000 01234567 89ABCDEF 00000000 00000000
:10000010 FEDCBA98 76543210 00000000 00000000
...
:10000020 00000000 00000000 00000000 00000000
:00000001 FF ; End Of File record
/*HEX 文件中的每一行(称为记录)包含多个字段,从左到右分别是:
- 记录长度(10表示该行有16字节数据)
- 起始地址(00000000)
- 数据类型(默认是数据记录)
- 数据区(十六进制形式的数据,每两个字符一组)
- 校验和(用于验证数据正确性)*/
7.在生成的IP核文件中进行端口的连接,便可成功使用,IM模块构建成功。