介绍IP核:

IP(知识产权)核将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器,SDRAM控制器,PCI接口等做成一个“黑盒”或者可修改参数的模块,供设计者使用。IP核包括硬IP与软IP。调用IP核能避免重复劳动,大大减轻设计人员的工作量。

首先,使用Xilinx ISE建立一个RAM的IP核。

步骤如下:

1)用ISE Project Navigator 新建一个工程,命名为IP_RAM,右击工程,进入IP核生成界面,展开Memories & Storage Elements, 展开RAMs & ROMs,可以找到Block Memory Generator。打开这个Generator,来到如图界面,左边是当前将要创建的Memory的输入输出。稍后的设置会调整这些端口。点击Next.

2)选择Simple Dual Port RAM,如果两个端口时钟相同也可以勾选Common Clock简化输入输出以及内部设计。

可以看到左边的端口有了地址端口ADDRA,ADDRB,输入DINA,输出DOUTB。还有A口写使能WEA,以及两个端口的CLKA和CLKB。如下图示:

3)再下一步,设置Port A Options。包括数据宽度Write Width,和存储单元个数Write Depth。如图设置128个存储单元,对应的地址线7根。Port B只需要自动跟随A的设置即可(读端口)。

如下图示:

4)在第四步,下面的Memory Initialization设置存储器的初始化。勾选Load Init File以选择coe文件。下面相对详细地说明.coe文件。

注:

coe文件实质上是文本文件。我们使用记事本新建并编辑。

先写memory_initialization_radix=进制;

再写memory_initialization_vector=各单元数据逗号隔开;

编辑好后,保存并修改后缀为coe。

如下图,本RAM的coe文件为:

上面的初始化文件是我手动输入的,等学会了Matlab操作,再专门添上此知识点。

如果导入成功,则会显示COE File Contents窗口,且没有红色的错误提示。

可以上下滚动查看各个Index的初始值是否符合预期。

5)

然后点击Generate。需要等待一段时间。完成后,我们就可以在代码中使用这个名称的模块了。

比如我新建的这个是Ram,那么我就可以 Ram myram(.CLKA(clk)...)去调用它了。

RAM的IP核建立正式结束。

基于FPGA的IP核RAM的设计和调用相关推荐

  1. 弟中弟级,基于Vivado的IP核封装以及仿真调用,FPGA入门小玩

    弟中弟级,基于Vivado的IP核封装以及仿真调用,FPGA入门小玩 IP核:知识产权核,指某一方提供的.形式为逻辑单元的可重用模块.IP核通常已经通过了设计验证,设计人员以IP核为基础进行设计,可以 ...

  2. PLL锁相环原理以及Altera FPGA的IP核实现

    文章目录 前言 一.PLL锁相环功能核原理 1. 锁相环功能 2. 锁相环原理[1] 二.Altera的FPGA调用IP核实现 后续补充 总结 参考文献 前言 本文主要介绍了锁相环的原理,以及适用Al ...

  3. 【FPGA】: ip核——Fir滤波器

    文章目录 一.简介 二. ip核的端口说明 三. ip核的生成 四. 典型示例 五.结果展示 六. 参考资料 一.简介 FIR 滤波器之内插 FIR 滤波器Interpolated FIR Filte ...

  4. FPGA之IP核的使用、搞懂功能仿真和时序仿真

    因为我也是初学者,我把自己学习中的一个过程给写下来,希望对他人能有一点帮助.相信很多人一开始和我一样对功能仿真和时序仿真(后仿真)都模模糊糊,其实功能仿真是为了验证你的代码是否正确,而时序仿真则是添加 ...

  5. 基于Vivado MIG IP核的DDR3读写实验(top_rom_ddr/ddr_top)

    一.前言 关于Vivado MIG IP核详细配置可以参考我之前的文章:基于Vivado MIG IP核的DDR3控制器(DDR3_CONTROL) 关于MIG IP核的用户端的接口时序可以参考这篇文 ...

  6. 基于FPGA的音频处理芯片的设计

    基于FPGA的音频处理芯片的设计 时间:2009-01-07 10:00:18 来源:维库电子市场 作者:刘虹 黄涛 徐成 1 引言 随着数字技术日益广泛的应用,以现场可编程门阵列FPGA(Field ...

  7. 【FPGA】单端口RAM的设计(异步读、异步写)

    前面有博文写了同步读写和异步读.同步写的单端口RAM设计: [FPGA]单端口RAM的设计(同步读.同步写) [FPGA]单端口RAM的设计(异步读.同步写) 这篇博文讲异步读写: 在博文:[FPGA ...

  8. 基于FPGA的简易DDS信号发生器的设计与验证

    基于FPGA的简易DDS信号发生器的设计与验证 一,理论介绍 补充:举例理解 二,代码实现 1,实验目标 2,MATLAB代码 3,verilog代码及实现思路 一,理论介绍 DDS 是直接数字式频率 ...

  9. FPGA开源IP核下载opencores.org

    原贴 http://bbs.elecfans.com/m/jishu_384213_1_1.html [问答] opencores这个网站的使用常识 2013-9-28 22:42 关于http:// ...

最新文章

  1. 4.1 ucGUI 图片显示方法
  2. serv-u的语言界面的切换(汉英切换)
  3. LSOF 安装与使用(功能强大)
  4. sap 给集团分配一个逻辑系统
  5. python绘制直方图根据不同分类_如何在python中绘制具有多个类别的直方图
  6. React开发(255):react项目理解 ant design 注意报错提示
  7. HMM_概率计算——forwar_algorithm实现
  8. gulp-sass的有关问题
  9. Django - 模型序列化返回自然主键值
  10. 小学计算机应用能力考核记录,中小学教师信息技术应用能力校本应用考核规范...
  11. java operator 重载 ==_运算符重载
  12. java实现解压war_java文件操作之war压缩解压
  13. C语言的考试系统,C语言考试系统.doc
  14. Java笔记(韩顺平Java基础15-20章)
  15. ios 系统状态栏样式修改_IOS修改状态栏的字体颜色以及修改状态栏的背景颜色...
  16. 知乎凡尔赛沙雕语录,究竟有多沙雕?
  17. 高考首日,为梦想加油!
  18. c++ sprintf()详解
  19. adobe 奥多比bridge extention等产品 “安装程序无法初始化。请下载Adobe Support Advisor检测该问题”
  20. 知乎日报 hello android,知乎日报 - 明白人说新鲜事 - Android 应用 - 【最美应用】...

热门文章

  1. Quartz.net官方开发指南 第二课:Jobs And Triggers
  2. jenkins不能启用端口_基于K8s的Jenkins持续集成实战(上)
  3. redis在容器里连接不上_Redis服务器被劫持风波,服务器相关知识共享学习
  4. android studio 链接编辑,Android Studio怎么连接手机测试程序?
  5. 将Select转变为支持输入内容对Select的Option进行筛选的js
  6. linux能修复根目录硬盘,Linux系统报错修复的方法
  7. 长sql和短sql加java区别_Mybatis下动态sql中##和$$的区别讲解
  8. java循环队列_java实现循环队列(顺序队列)
  9. matlab怎么调用DeepLearn,使用DeepLearnToolbox-master中DBN工具箱做数据分类出现问题,求......
  10. tcc分布式事务_什么是 TCC分布式事务?