本帖最后由 ifpga 于 2014-3-20 23:17 编辑
最近做的项目要量产,而其中需要对一个512Byte的RAM进行初始化。之前一直没做,因为如果用Quartus的话,只能一个字节一个字节往里敲,这样做下去会死人的。
现在马上要量产,绕不过去了。于是,打开了一个Quartus自动生成的Mif文件,发现结构非常简单。如下:
– Quartus II generated Memory Initialization File (.mif)
WIDTH=8;
DEPTH=512;
ADDRESS_RADIX=HEX;
DATA_RADIX=HEX;
CONTENT BEGIN
000 : 10;
[001..008] : 00;
009 : 68;
[00A..1FF] : 00;
END;
其结构一目了然,其中,width 表示每个word的宽度,depth 表示Memory的深度。
Address_radix/data_radix 表示地址和数据的编码格式,其中HEX表示十六进制编码。
而 CONTENT BEGIN 和 END 之间就是一个一个WORD的数据了。
立马,就写了一个简单的BIN2MIF 的小程序用于自动生成 .mif 文件。
希望,对大家也有帮助。(源码也一并上传上来啦!)
clip_image001
注:如果勾选 .bin file ,则可以将一个 .bin 文件转换成相应的 .mif 文件。如果不勾选,则使用源码中的 bin_init 数组。因此,有特殊要求的,可以直接修改代码 生成相应的 bin_init 数组即可。
点击这里下载:
http://i-fpga.com/?p=199
|