FPGA学习笔记之LPM RAM使用

转自: http://bbs.ednchina.com/BLOG_ARTICLE_3007031.HTM


1、RAM初始化文件的生成,其格式必须满足一定的要求,对于Quartus II,其能接受的两种格式初始化文件:.mif格式(即memory initialization file )和.hex格式(即hexadecimal 16进制),下面是两种格式的建立方法:

    (1).MIF文件
     如果要生成的数据表相对简单,那么可以手动填写。即在quarter ii 中File,new, 选择memory file中的memory initialization file。,点击OK后需要选择存储器地址和数据宽度,比如说对应地址线是八位的,那么number应该是256,word size是8位,OK后即生成数据表格,然后自己填就行,填完保存。
     如果要生成的数据表比较复杂和庞大,那么就必须用高级语言编写生成,如用matlab或C写。此外,还有专门的MIF文件生成器,康芯电子mif-maker。
    (2).hex文件 
    在quarter ii 内部建立方法和.mif文件类似,第二种方法则是利用51编译器来,这个比较简单,学过51的都会。
  
2、具体操作:
    (1)从quartus ii 菜单栏tools下拉菜单中选择megawizard plug-in manager ,然后点击新建一个新宏模块变量;
   (2)next ,然后再选择你要调用的RAM模块,在左边memory 下有1port ,2port,等RAM宏模块,根据自己需要选择,这里选择1port,Device 选择Cyclone II ,语言选择Verilog, 在下面路径中选择你项目路径,并为RAM命名,下面那个return to this page for another create operation ,意思我想是当你下次创建类似操作时会跳过前面页面,直接来到当前页面,所以这里我不必选它;
   (3)选择长度和位宽后,我一般选择AUTO 自动分配所需存储空间大小,也有常用M4K的,当然看自己所需要的空间大小,若是小于4KB的,选M4K就好了。这是固定分配的存储器,比较节约逻辑资源;然后选择Single block ;
    (4)接着便是使能端和清零端口设置的选择,这里直接默认就可以了;
    (5)下一个选择便是选择是要空白的数据表,还是加载你已经做好的MIF文件,这里我选加载mif;
     (6)是产生仿真需要的网络表,要仿真的话,就需要这个咯;
    (7)最后是选择你需要产生的文件,.V文件是肯定要的, 不然在顶层模块或其他模块里无法例化调用这个RAM宏模块了,其他暂时不清楚是干什么,干脆就默认。

你可能感兴趣的:(FPGA,RAM)