FPGA开发之RAM IP的使用
来源:互联网 发布:移动广告联盟源码 编辑:程序博客网 时间:2024/06/05 11:47
CORE Generator里有很多的IP核,适合用于各方面的设计。一般来说,它包括了:基本模块,通信与网络模块,数字信号处理模块,数字功能设计模块,存储器模块,微处理器,控制器与外设,标准与协议设计模块,语音处理模块,标准总线模块,视频与图像处理模块等。
在Xilinx的IP核里有xilinx core generator 里面的memory interface generator 和block ram,使用这两个可以使用FPGA内部和外部的RAM。memory interface generator 是 ddr2/ddr3/qdr2 这些外部存储器的接口,block ram 是 fpga 芯片内部片上的存储器。接下来介绍一下block ram。
block ram有三种:单口RAm、简化双口RAM和真双口RAM。
单口:
简化双口,A写入,B读出:
真双口,A和B都可以读写:
使用IP核,确定数据位宽和深度:(超出地址范围将返回无效数据,在对超出地址范围的数据进行操作的时候,不能够set或者reset)。这里我选择的是16位的位宽,128的深度。
设置操作模式:(写优先,读优先,不改变)
这里的写优先的意思就是你写入的数据,会出现在输出端口,不管你给的地址是什么。这种好处就是保证了你读出的数据是最新的。
读优先指的就是:不管你写入的数据,是先把你要读的数据读出。
不改变模式就是正常的模式,该读的时候读,改写的时候写:(一般没有特殊要求就是选这个)
接着写coe文件,打开txt,输入:
MEMORY_INITIALIZATION_RADIX=10;
MEMORY_INITIALIZATION_VECTOR=
512,515,518,522,525,528,531,535,538,54,......12,23;
保存之后为coe格式。
这个如果很少就自己输入,如果比较大,比如一幅图片,那就使用matlab吧!
举个栗子,你要生成ROM:
% 生成 ROM 的 .coe文件
clc
clear all
close all
fclose(fid);
比特写功能(byte_write):
当使用8bit一字节的时候没有优先级,而存储在宽度限定为8bit的倍数。当使用9bit一字节的时候,每一个字节都包含一个优先级位,存储限定为9bit的倍数。9bit的一般不用于NO_CHANGE模式。对于双口的RAM,只能是读优先或者写优先。
我们要设置为primitive原语的模式,还可以选择增加复位等功能,但是复位不能异步,只能同步实现。
最后生成了IP核之后,点击你的IP核的下方,然后可以看到你的instance,你就知道怎么用这个IP核了。另外对于IP核的使用,其实你看datasheet那就更好了。
参考资料:
初始化文件写法:http://www.openhw.org/guozhiyang/blog/14-03/302478_4c05f.html
http://www.openhw.org/guozhiyang/blog/14-03/302479_5e3a4.html#articletop
http://bbs.eetop.cn/thread-291962-1-1.html
http://blog.sina.com.cn/s/blog_6f3d37ff01012fea.html
RAM的用法指南:http://wenku.baidu.com/view/b98307ddce2f0066f5332283.html
IP核的使用: http://wenku.baidu.com/view/6256fa4e767f5acfa1c7cd44.html?re=view
Block ram设计: http://wenku.baidu.com/link?url=O5AfZGnBEbW68cMpLbxI1vQ0MgsAiZD2dyIw9NFDRnjlcRgU_ZdDvjidH-ZasUz7Yw8I4RdA2TtvOz7FQK87nhgb0Pz3brhjfcIb100Hc4O
一些问题: http://xilinx.eetrend.com/forum/627
http://xilinx.eetop.cn/viewthread-304021
综合时使用BR: http://www.eefocus.com/utoo/blog/10-03/185645_ed1e3.html
- FPGA开发之RAM IP的使用
- FPGA里的RAM使用
- FPGA学习笔记之LPM RAM使用
- FPGA之RAM
- FPGA开发之IP核
- FPGA开发之UART的使用
- 七、FPGA设计之RAM
- 双口RAM及Vivado RAM IP核的使用
- 1.1 FPGA项目问题 之 RAM的collision
- FPGA开发之调用FFT IP核
- FPGA开发之FPGA的资源
- FPGA的IP核之FIFO
- FPGA中block ram和distributed ram的区别
- fpga资源中的block ram和分布式ram的区别
- Lattice FPGA中假双口RAM控制器的设计
- [altera MegaFunction] RAM-1 Port IP的使用
- FPGA第零篇:我的FPGA开发之旅
- FPGA的IP核
- (一)Python入门:环境变量和开发环境的配置
- 汇编语言学习心得
- Oracle RAC 10.2.0.5 Install For redhat 5.8(use raw device)
- ajax同步加载
- voip穿越防火墙技术
- FPGA开发之RAM IP的使用
- iOS 使用Method Swizzling隐藏Status Bar
- 网络数据包转发过程
- The declared package "com.dao" does not match the expected package "src.com.dao"
- IOS学习 Json解析时,方便的小技巧
- Android的系统服务一览
- ItemsControl使用
- 谈谈安卓中的下拉刷新,上拉加载ListView的实现
- MySQL 5.6 for Windows 解压缩版配置安装GOOD