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

x = linspace(0, pi/2 ,1024);     % 在区间[0,2pi]之间等间隔地取1024个点

y_cos = cos(x);

y_sin = sin(x);

y_cos = y_cos * 2^16;

y_sin = y_sin * 2^16;

fid = fopen('D:/cos_coe.txt','wt');   fprintf(fid, ' .0f \n ' , y_cos);

fclose(fid);

fid = fopen('D:/sin_coe.txt','wt');

fprintf(fid, ' .0f \n ' , y_sin);

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的使用相关推荐

  1. FPGA开发之SRIO接口

    FPGA开发之SRIO接口回环测试 一.接口部分 s_axis_ireq:发送接口 m_axis_treq:接收接口 m_axis_iresp:接收应答接口 s_axis_tresp:发送应答接口 t ...

  2. FPGA 单端口RAM IP核使用 vivado仿真

    一.各类存储器简介 ROM:只读,只有读接口(读地址.读数据) RAM:可读可写,有读接口(读地址.读数据)和写接口(写使能.写数据.写地址),默认任何时刻都能读,没有读使能,大小和位宽查手册,需要持 ...

  3. FPGA开发之UART的使用

    UART使用过程中的一些错误提示 首先是关于UART测试的步骤: 在使用超级终端软件测试UART的回显时,一定要遵循以下步骤: 1.烧写工程与测试程序给FPGA芯片 2.连接串口通信线 3.打开软件  ...

  4. FPGA开发之SD卡初始化

    终于找到一篇说人话的了.使用下面的东西进行SD卡初始化,接着用命令进行读写操作看下一篇博客! 1.SD卡的官方资料(我承认这个资料很垃圾,比起民间的技术总结它的内容可谓又臭又长,但是作为基础也要了解一 ...

  5. 浅谈嵌入式MCU软件开发之S32K1xx系列MCU启动过程及重映射代码到RAM中运行方法详解

    内容提要 注:本文摘自NXP工程师胡恩伟的微信公众号"汽车电子expert成长之路",大家感兴趣可以关注一下. 引言 1. S32K1xx系列MCU启动过程详解(startup_S ...

  6. 从全职高手开始的系统_动画全职高手第二季热血回归,腾讯视频的国漫IP全链路开发之道...

    这个国庆档,国产动画在内容市场上的存在感比想象中更加有分量.电影市场上,动画IP电影<姜子牙>完成票房领跑,掀起观影热潮:动画番剧市场上,头部IP动画<全职高手>第二季时隔三年 ...

  7. FPGA中ROM IP与RAM IP核配置与调用

    目录 一.ROM IP核 1.简介 2.创建立初始化文件 3.配置 4.调用 4.1 整体设计 4.2 编写rtl代码: 4.3 仿真验证 二.RAM IP核 1.简介 2.配置 3.调用 3.1 整 ...

  8. ZYNQ之FPGA学习----RAM IP核使用实验

    1 RAM IP核介绍 RAM 的英文全称是 Random Access Memory, 即随机存取存储器, 它可以随时把数据写入任一指定地址的存储单元,也可以随时从任一指定地址中读出数据,其读写速度 ...

  9. 嵌入式开发之zynqMp ---Zynq UltraScale+ MPSoC 图像编码板zcu102

    嵌入式开发之zynqMp -Zynq UltraScale+ MPSoC 图像编码板zcu102 1.1 xilinx zynqMp 架构 1.1.1 16nm 级别工艺 Zynq UltraScal ...

最新文章

  1. 低数值精度推理和训练
  2. vue 页面生成pdf并下载 vue页面转PDF
  3. c语言 sqrt求100以内素数,C语言实现判断一个数是否为素数并求100以内的所有素数...
  4. 190728每日一句 不经一番寒彻骨 怎得梅花扑鼻香,一个人怎样保持激情去奋斗?
  5. 全网最详细的ensp模拟器安装教程
  6. matlab中画三瓣花瓣,如何绘制漂亮的“花瓣”韦恩图?
  7. Sass -- 基础知识与环境搭建
  8. 李白的诗: 南陵别儿童入京
  9. 紫罗兰永恒花园rust简谱_みちしるべ简谱-紫罗兰永恒花园ed
  10. ASM diskgroup dismount with Waited 15 secs for write IO to PST (文档 ID 1581684.1)
  11. 关于个人目标的一篇博客
  12. Android系统时间
  13. 与你分享如何做好企业汇算清缴
  14. Unity动态(在代码中)更改Shader的相关属性(如颜色、Smoothness、材质……)
  15. Windows自动同步网络时间
  16. JS 小写数字格式转大写格式
  17. [unity]使用Unity粒子系统制作跑尘
  18. PHP实现获取url地址中一级域名
  19. 恒生电子实习记录-13
  20. checking for mysql_commit in -lmy_安装ruby环境,用mysql数据库,总是报错,调了一下午,网上方法都用了也不管事...

热门文章

  1. php5.5.33 源码安装,Linux PHP5.3升级PHP5.5.33
  2. c语言的图像拼接,OpenCV实现多图像拼接成一张大图分享!
  3. java的数组是对象吗_在Java中数组是原始类型还是对象?
  4. mfc编辑框显示数据_Excel表格技巧—Excel表格中怎么给数据分等级
  5. revit建筑样板_Revit出建筑施工图步骤及注意事项
  6. php 4443 端口_Server configuration (Notary)
  7. 电话双音频拨号声音中的干扰信号
  8. 建立UDP到虚拟串口的映射软件 : USR-VCOM,并应用到WiFi调试ESP32
  9. 基于ESP32的竞赛裁判系统功能调试-计时线圈功能
  10. 一款DIY矢量网络分析仪:NanoVNA