FPGA学习笔记之LPM RAM使用
2014-11-25 15:59
267 查看
转自: 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宏模块了,其他暂时不清楚是干什么,干脆就默认。
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学习笔记之先定义还是先使用?
- FPGA学习笔记之Altera FPGA使用JIC文件配置固化教程(转)
- 浮点数定化--altera 乘除法ip使用FPGA学习笔记
- C#学习笔记(二十一):使用文件基础
- C# 学习笔记 -- 第二天 使用注释提高代码可读性
- PHP学习笔记(3)----phpmyadmin的安装与使用[原创]
- JbuilderX使用Junit学习笔记
- LINUX学习笔记—SAMBA使用篇 smb 文件共享
- C#学习笔记(十六):使用打开保存文件对话框
- .Net学习笔记 - Web页中使用WinForm
- 学习笔记,VB.NET使用DirectSound9 (1) 简单播放
- [2004-8-4]VB.Net学习笔记,使用ADO.Net对象访问数据库,将结果写入ListView
- IssueVision 学习笔记(一)-----使用SoapHeader传递Web Serivices自定义的身份验证数据
- Chap 4 学习笔记-使用C#存储变量数据
- C#中使用委托的学习笔记
- C# 学习笔记 -- 第三天 申明和使用数据
- JSP学习笔记(二)-----使用Tomcat运行JSP文件
- Servlet学习笔记(四)-----使用Servlet处理用户注册和登陆
- JSP学习笔记(五)-----JSP中使用JavaBean
- 学习笔记,VB.NET使用DirectSound9 (1) 简单播放