背景:FPGA的片上BRAM内存较少,难以实现大量的存储。DDR的内存较多,若可直接用FPGA调用则可以实现很多东西。

目的:运用MIG调用DDR相关文档学习。

参阅的文档:DS176:Zynq-7000 AP SoC and 7 Series FPGAs Memory Interface Solutions Data Sheet

UG586: zynq-7000 AP Soc and 7 Series Devices Memory Interface Solutions

具体操作见:

FPGA实践教程(七)运用IPcore调用DDR https://blog.csdn.net/weixin_36474809/article/details/84942607

FPGA实践教程(五)PS用MIG调用DDR https://blog.csdn.net/weixin_36474809/article/details/80997945

目录

一、简介

二、在vivado中运用MIG(Memory interface generator)

三、定制与生成MIG core

四、其他选项

五、vivado集成设计环境


一、简介

Xilinx 7系列的FPGA的内存接口,MIS(memory interface solutions)core是一个预定制的,控制器和物理层接口,是AXI4(AMBA Advanced eXtensible Interface)DDR3与DDR2 SDRAM设备的从接口。文档UG586: zynq-7000 AP Soc and 7 Series Devices Memory Interface Solutions 提供了定制core和接口的细节。

相比之前的版本,Xilinx 7系列的memory solution接口优化包括:

  • 更高性能
  • 新的硬件模块被用于physical layer,PHASER_IN,PHASE_OUT,PHY control block,与IO FIFOs。
  • 基于硬件block的管脚输出。
  • controller与user接口,1/4的时钟周期。

二、在vivado中运用MIG(Memory interface generator)

MIG(Memory interface generator)内存接口生成器,是一个IPcore,运用vivado定制用于调用DDR。

这部分介绍如何生成MIG的IPcore,并且用vivado设计套件进行实现。

2.1 打开vivado,创建新工程,创建RTL工程,添加源,添加IP,添加constraints。

2.2 点击IP catalog,找到目录Memory&storage elements>Memory Interface Generators,找到相应的IP,或者直接搜索MIG

三、定制与生成MIG core

3.1 点击create Design来创建相应的memory controller design,输入Component Name。DDR2与DDR3的SDRAM设计需要支持memory-mapped的AXI4接口,AXI4接口只能用verilog语言来实现。如果需要AXI4接口,就需要在此之前勾选verilog选项。

3.2 Pin compatible FPGAs(没什么用),可兼容的FPGA板子,在这里勾选可以兼容的板子。

3.3 创建7 series FPGA DDR3 Memory Controller Block design

3.3.1 选择DDR3 SDRAM

3.3.2 Controller Options

  • Frequency:控制器的操作频率。
  • PHY to controller frequency ratio: Physical layer(memory)与controller的时钟频率的比率。2:1可以降低memory的接口的频率,4:1可以提升数据传输率。
  • VCCAUX_IO:电压,基于周期与频率。MIG一般需要2。0V, 1.8V和2.0V可以被用于低频率。
  • Memory type与memory part:内存的类型与模块。
  • Data Width:基于之前的memory type做出选择。
  • Data mask:这个选项会分配data mask管脚。这个选项通常是用于AXI设计,并且通常是灰的,即不能被选择。对于AXI而言,RMW(read modify write)是支持的。
  • Ordering与Memory details:改善总线性能,显示相应的内存具体信息。

3.3.3 创建定制模块

3.3.4 AXI参数选项

address width与address ID width:引用XPS时,地址与ID宽度会自动的由XPS选择并且不会显示。

Base与High address:创建系统地址空间,必须为2的次方,并且至少4KB。Base addres必须与内存空间的大小对齐。

narrow burst support: 不选此项可以让AXI4总线去掉用于AXI narrow burst的logic,从而节省资源和改善时间。XPS会自动的根据AXI主线来决定是否narrow burst。

Arbitation Scheme:在读地址与写地址之间选择arbitration scheme

四、其他选项

4.1 Setting DDR3 memory parameter option,FPGA options,DCI description,Bank selection

DDR2和DDR3只支持(BL8)burst length 8. Bankselection

Digitally controlled impedance(DCI)数字控制电阻

此部分细节过多,过于繁琐,且涉及过多硬件部分,不太能理解。

4.2  summary

这页给出相应的core selection的总结,关于接口参数,IP catalog选项,FPAG与相应的工程。

后面两个为PCB information与Design Notes

五、vivado集成设计环境

5.1 点击generate之后,generate output products窗口生成,OOC settings窗口弹出。

5.2 点击OOC settings,

5.3 MIG core需要遵从Hierarchial design

FPGA基础知识(六)UG586 Mermoy Interface Solutions内存接口的生成与使用相关推荐

  1. 初学者必须要知道的FPGA基础知识

    初学者必须要知道的FPGA基础知识 一.FPGA是什么? 在<FPGA至简设计原理与应用>一书里是这样描述的:『FPGA的全称为Field-Programmable Gate Array, ...

  2. FPGA基础知识极简教程(10)二进制到BCD转换算法

    文章目录 写在前面 正文 快速认识 实现方式一 实现方式二 写在最后 写在前面 FPGA基础知识极简教程(9)讲到了七段数码管的显示Verilog设计,我们都知道,要在数码管上显示的数字,使用BCD编 ...

  3. FPGA基础知识|芯片设计基础知识

    FPGA 基础知识 可查看原文:FPGA基础知识 1.查找表 LUT 和编程方式第一部分: 查找表 LUT FPGA 是在 PAL.GAL.EPLD.CPLD 等可编程器件的基础上进一步发展的产物.它 ...

  4. FPGA基础知识极简教程(7)详解亚稳态与跨时钟域传输

    博文目录 写在前面 正文 FPGA或ASIC中的传播延迟 建立和保持时间是什么? 建立和保持时间与传播延迟和时钟频率有何关系? 如果违反建立和保持时间会发生什么? FPGA中的亚稳定是什么? 亚稳态何 ...

  5. FPGA基础知识极简教程(4)从FIFO设计讲起之异步FIFO篇

    博文目录 写在前面 正文 同步FIFO回顾 $clog2()系统函数使用 综合属性控制资源使用 异步FIFO设计 FIFO用途回顾 异步FIFO原理回顾 异步FIFO设计 异步FIFO仿真 参考资料 ...

  6. 嵌入式Linux应用开发基础知识(六)——Makefile实例

    前面我们学了很多Makefile相关的知识,但是没有写过一个完整的代码,这一章我们写出一个实例 一.完善Makefile 在之前我们写了一个较为完善的Makefile程序,但是还是存在一些问题,我们需 ...

  7. FPGA基础知识极简教程(9)七段数码管显示的Verilog简单设计

    博文目录 写在前面 正文 七段数码管原理 七段数码管译码表 单个七段数码管显示verilog设计 多个数码管动态扫描显示 参考资料 交个朋友 写在前面 作为FPGA的基础知识教程怎么能少得了这个简单的 ...

  8. 详解服务器异构计算FPGA基础知识

    随着云计算,大数据和人工智能技术应用,单靠CPU已经无法满足各行各业的算力需求.海量数据分析.机器学习和边缘计算等场景需要计算架构多样化,需要不同的处理器架构和GPU,NPU和FPGA等异构计算技术协 ...

  9. FPGA基础知识极简教程(1)从布尔代数到触发器

    博文目录 写在前面 正文 初学者数字设计 什么是FPGA? 什么是ASIC? 数字设计师如何使用布尔代数? 使用查找表(LUT)在FPGA内部执行布尔代数 触发器如何在FPGA中工作? 参考资料 交个 ...

最新文章

  1. 一年的天数 Exercise06_16
  2. 代码检查规则:Python语言案例详解
  3. JFree chart
  4. Last_Errno: 1755 Last_Error: Cannot execute the current event group in the parallel mode错误解决
  5. 8_python基础—高级变量类型(字符串、列表、元组、字典、集合)
  6. bootstrap table 服务器端分页例子
  7. glibc之pthread_mutex_t/pthread_cond_t实现原理(十七)
  8. 传递参数安全验证代码示例
  9. 数据库系统基础教程(1)数据库系统世界
  10. ajax请求resource文件Access to XMLHttpRequest at 'file:'
  11. shell 删除simatic_卸载西门子软件.doc
  12. java 输出 new date,new Date() 方法到底是获取什么时间
  13. 七牛sdk 上传视频 - 前端
  14. 文件夹删除不掉-需要管理员权限删除
  15. 小文一篇,说说:where、:has和:is的特殊性吧
  16. python 英语词汇_【我爱背单词】用Python提炼3000英语新闻高频词汇
  17. 手机连不上电脑WIFI并且一直提示正在获取IP地址
  18. 四轴mpu6050姿态角卡尔曼滤波代码分析
  19. revit里的BIM模型转fbx真的可以带纹理材质吗?
  20. 【计算机科学基础】元宇宙的最新技术、应用和挑战

热门文章

  1. linux安装cuda出现You appear to be running an X server; please exit X before installing.错误
  2. wow服务器显示锦标赛,2010全球魔兽世界竞技场锦标赛注册开放
  3. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day28
  4. 乳腺增生中度严重吗 中度乳腺增生结节怎么治疗
  5. 最终幻想14无法获取服务器信息,最终幻想14无法连接到服务器 | 手游网游页游攻略大全...
  6. 只能在公司代码XXX的期间 2022/03 和2022/02 中记账,MMPV打开物料账记账期间
  7. word/excel打开超链接时,提示“找不到Internet服务器或代理服务器”
  8. 阿宝体育技术服务支持
  9. 恢复Win10中缺少的电源计划
  10. 工业4.0下:毫米波产业链的落地变革