基于FPGA的mif文件创建与使用
3 lpm_ROM初始化及mif文件
引入lpm_ROM宏模块后,开始ROM的初始化,这是运用lpm_ROM宏模块做为系统开发的关键。ROM 初始化就是要在对应的地址赋初始值以实现查找表的功能。在系统编译之前一定要先设置LPM_FILE参数。实际上就是要加入一个mif文件或hex文件。以下详细讨论在MAX+PLUSⅡ环境下mif文件的创建和使用。
3.1 mif文件的格式及创建
3.1.1 mif文件格式
mif文件是在编译和仿真过程中作为存储器(ROM或RAM)初始化输入的文件,即memory initialization file。mif文件格式为:
基于FPGA的mif文件创建与使用
3.1.2 mif文件创建
mif文件的创建很简单,主要有两种方法,一种是在MAX+PLUSⅡ环境下,新建文件,选文本输入,保存为mif文件。另一种方法是建立一个txt文件,然后将扩展名改成mif即可。
3.2 mif文件的使用
依上述方法创建的mif文件只是一个空文件,在lpm_ROM宏模块的LPM_FILE中引入这样的文件,仅仅能帮助lpm_ROM宏模块通过编译并把所有的存储单元初始化为零。且在编译出现:Warning:Can't find data in initial memory content[MIF/HEX]file。
mif文件的格式是固定的,对于前4行(DEPTH,WIDTH,ADDRESS_RADIX, DATA_RADIX),前2个参数应与lpm_ROM宏模块LPM_WIDTHAD和LPM_WIDTH相关联,后2个参数为了方便一般设置为DEC (十进制)。关键是文件内容的begin与end之间的部分。mif文件的使用就是修改begin与end之间的内容。主要有两种修改方法。
3.2.1 mif文件的修改方法1
mif文件的使用,即修改begin与end之间的内容,最常用的就是高级语言法。本文借助实例给以说明,并给出相应的m(Matlab)语言程序。
设计要求:8位地址输入,8位数据输出,输出数等于地址高4位对应的数加低4位对应的数,即实现1个4位二进制加法的查找表。这里只用到lpm_ROM宏模块的Address[]、q []两个端口。lpm_ROM宏模块及mif文件格式如图3所示。