FPGA实现DDRIP核配置(Memory Interface Solutions)

news/2024/10/21 22:53:45/

FPGA实现DDRIP核配置(Memory Interface Solutions)
DDR读写控制分三个文章来写,一部分写DDR的IP核配置,一部分写DDR的读写基本的过程和仿真,最后写读写控制的实现和需要注意的问题。
同步动态随机存取内存(synchronous dynamic random-access memory,简称SDRAM)是有一个同步接口的动态随机存取内存(DRAM)。简单粗暴点说这个东西就是存储数据的。数据的读写速率对系统性能有很大的影响。在使用FPGA的过程中DDR是避免不开的一个高速数据存储介质。如何高速使用DDR是一块很大的内容,这里主要说MIG的IP配置。会根据配置选项讲讲SDRAM的使用原理。其实最好把你选用的DDR数据手册读懂就会特别的好使用SDRAM了。这里的IP配置主要是根据Xilinx官方文档UI806来配置的。
1、首先要申请一个DDR的IP核,在Xilinx的IP中是内存解决方案(Memory
Interface Solutions)这个IP。这个是默认选项,其中Component是用户自己定义的模块的名字。
Number of controller 这个是你控制多少DDR模块,这里一般选择一个模块。(这个和DDR芯片数量没有直接关系,有时候用户选择2片DDR级联,但是实际上还是属于一个DDR模块)
在这里插入图片描述
2、这个选项栏是选择兼容相同封装的其他型号FPGA芯片,默认是不兼容。
在这里插入图片描述
3、 这个选项栏的选择SDRAM类型,这里需要根据硬件类型来确定选项。
在这里插入图片描述
4、这个选项卡比较重要。

Frequency是DDR工作的主频率。也是这个IP核工作的频率,这个频率的设定要根据芯片支持的频率来设定。
Memory type也要根据你的SDRAM类型来选则,根据所选内存的不同而选用不同内存组件和模块分为组件、UDIMM、SODIMM和RDIMM。Virtex-5fpga
ddr2sdram控制器仅支持双列DIMM的深度设计。
Memory Part芯片型号。此功能有助于为设计选择内存部件。可以从现有列表中进行选择,也可以创建新零件。
Data Width数据宽度。数据宽度值可以根据前面选择的存储器类型在这里选择。该列表显示所选零件的所有支持数据宽度。选择其中一个。这些值通常是单个设备数据宽度的倍数。在某些情况下,宽度可能不是精确的倍数。例如,虽然16位是x16组件的默认数据宽度,但8位也是有效值。
Memory Depth记忆深度。DDR2 SDRAM Virtex-4 FPGA控制器采用直接时钟捕获方法,支持1到4个内存深度。DDR2 SDRAM Virtex-5 FPGA控制器仅支持双列DIMM的内存深度为2。深部设计支持的最大频率小于或等于150 MHz。对于其他设计,此选项不可用。
ECC代表纠错码。此功能允许生成ECC和代码。此部分基于选定的数据宽度启用。此选项仅适用于DDR2 SDRAM
Virtex-4和Virtex-5 FPGA设计。
Data Mask数据掩码。标记此数据掩码复选框时,将分配数据掩码管脚。如果未选中此数据掩码复选框,则不会分配数据掩码管脚,这会提高管脚效率。对于不支持数据掩码的内存部件,此选项已禁用且无法更改。同样,对于启用ECC的设计,此选项也被禁用。此选项仅适用于DDR2和DDR SDRAM。
在这里插入图片描述5、这部分是设置读写突发长度、突发类型、预充电时间和IO的阻抗匹配。
在这里插入图片描述
下面这个图就能很好的说明突发长度、突发类型和预充电时间的关系。突发类型分为Sequential 顺序突发和 Interleaved交错突发。突发长度是根据芯片来设置,一般是1、2、4、8突发,芯片得到读出命令到数据实际输出的时间就是预充电时间,就是下图中的CAS。
在这里插入图片描述
6、这部分主要是选择IP核的时钟源核时钟方式。可以使用由主时钟的PPL产生的时钟也可以使用DCM来产生时钟,也可以使用外部差分时钟输入来作为IP核的时钟。这几种方式通过实际的验证发现对最终数据的读写都没有影响,但是使用外部差分时钟需要注意内外时钟不同源导致的时钟域的变化问题(内外时钟不一致如果不进行处理的话容易造成数据的读写错误)。
在这里插入图片描述
7、这部分就默认设置就行。
在这里插入图片描述
8、IO口的选择和配置。这里要根据原理图来进行连接。我在用6SLX45芯片时的原理图连接对应关系如下图
在这里插入图片描述
在这里插入图片描述
在原理图设计时应该严格按照FPGA芯片推荐设计设置,然后根据具体选择的BANK来选择引脚IO配置。
在这里插入图片描述在这里插入图片描述
也可以通过直接填写每个IO口来完成。
在这里插入图片描述
9、这部分的前面配置信息的一个总览,这部分需要仔细查看配置是否和芯片型号一致,如果不一致可以返回去更改。
在这里插入图片描述在这里插入图片描述
10、接下来一致点next即可。
在这里插入图片描述
DDR的IP核配置相对简单,通过上面的配置即可生成一个完整的DDR控制器的例程。


http://www.ppmy.cn/news/729486.html

相关文章

启明云端分享|IDO-SOM3022-V1.0:可适用于物联网等多个领域

适用范围 IDO-SOM3022-V1.0 适用于工业主机,物联网设备,医疗健康设备, 广告一体机,互动自助终端,教学实验平台,显示控制,车载安防等多个领域 。 产品概述 IDO-SOM3022-V1.0 采用瑞芯微 PX30 &…

Xilinx ZYNQ MPSOC 多核高性能计算平台

Xilinx ZYNQ MPSOC 多核高性能计算平台 转自:微信公众号 FPGA渠道及方案一站式服务商 本平台搭载16nm工艺的ZYNQ UltraScale XCZU15EG-2FFVB1156 器件。其中ZU器件内嵌有四核ARM-CortexA53硬核、双核ARM-CortexR5硬核、Mali400 GPU 以及丰富的FPGA可编程逻辑资源。同时还板载…

数学建模常用模型(二):插值与拟合

数学建模常用模型(二):插值与拟合 在数学建模中,插值和拟合是常用的数据分析技术,用于从给定的离散数据中推断出连续函数或曲线的近似形式。 插值是通过已知数据点之间的插值多项式来估计未知数据点的值。插值方法的目…

DDR2 sodimm + Flash + Triple-Speed Ethernet + IO in nios

DDR2用作代码和数据区。TSE采用10/100/1000BASE SGMII模式。web server 模板运行顺利。 两个输入时钟,其中一个通过PLL生成系统时钟100MHz,以及IO时钟10MHz;另一个直接给DDR2做参考时钟输入,DDR2 memory clock frequency为300MHz…

UDIMM、RDIMM、SODIMM区别

UDIMM,Unbuffered DIMM,定位于 桌面市场,指地址和控制信号没有经过缓冲器,没有做任何时序调整(缓冲器延迟是有的),直接到达DIMM上的DRAM芯片。而Registered内存模组则对地址和控制信号等进行寄存&#xff…

内存规格的解释(Unbuffered DIMM,Registered DIMM和SODIMM)

常见的[内存]模组有三种:Unbuffered DIMM,Registered DIMM和SODIMM。 首先解释DIMM的含义,DIMM指Dual Inlined Memory Module,即双列直插式[内存]模组。 Unbuffered DIMM:指没有经过缓冲,定位在桌面市场&a…

【内存】UDIMM、RDIMM、SODIMM以及LRDIMM的区别

说明 转载自【精品博文】UDIMM、RDIMM、SODIMM以及LRDIMM的区别。 DIMM简介 DIMM(Dual Inline Memory Module,双列直插内存模块)与SIMM(single in-line memory module,单边接触内存模组)相当类似,不同的只是DIMM的金…

Micron:DDR2 SDRAM与SODIMM

最近研究了Mircon的DDR2 SDRAM和SODIMM存储结构,于是记录下自己的一点小发现。 SODIMM:Small Outline Dual In-line Memory Module,即小型双列直插式内存模块,也就是大家口中的内存条。在介绍SODIMM之前,我们先来了解一…