DDR3

作者:圆宵 FPGA那点事儿

之前分享过一篇LVDS接收在高温环境下不稳定的Case,这篇可以算作其姊妹篇,也是基于一个真实的Case。

问题描述:

所用器件: Kintex7-325T,-3速度等级,商业档
系统描述: 使用3个HPbank接了4片16位宽的DDR3颗粒,DDR3控制器使用MIG生成,Data Rate 为1866Mbps。使用的是Native Interface,命令和数据通道分开,分别提供一读一写2个数据通道。

该视频讲解了如何使用mig为Xilinx的fpga进行扩容,CPU为microblaze,编程平台为vivado

DDR3参考设计

Xilinx®7系列FPGA内存接口解决方案是组合了预置的控制器和物理层(PHY),以用于互连用户的7系列FPGA设计和基于AMBA® AXI4总线的DDR3 SDRAM设备。

特性

  • 支持的内存组件位宽高达64位
  • 可选的AXI4 从接口
  • 支持 single & Dual rank SODIMM插槽
  • 1,2,4和8GB设备支持
  • 支持8 bank
  • 支持 DQ : DQS率8:1
  • 支持8-word burst操作
  • 支持ODT模式
  • 初次和定期ZQ校准(可配置)
  • JEDEC® - 兼容DDR3初始化支持
  • Verilog或VHDL源码交付(仅限于顶层文件)
  • 内存到FPGA逻辑接口时钟比支持4:1和2:1
  • 应用

    MIG核可用来链接用户设计和DDR3 SDRAM设备。设计的物理层(PHY)一侧的设计通过FPGA I/O块链接到DDR3 SDRAM设备,用户接口部分则通过FPGA逻辑链接到用户的设计。

    系统框图

    Zedboard学习笔记之——PS读写DDR3测试

    在Zedboard开发板上,DDR3是连接在PS侧的,有两片DDR3,组成32bit,容量512Mb,下面就通过一个简单的读写测试来演示PS如何操作DDR3。

    首先,打开Vivado,建立一个工程,选择器件时,选择Zedboard开发板。生成ZYNQ IP核,

    可以双击IP核进行设置,确保串口模块勾选上了,确保DDR3的类型和板上型号相符,因为我们在建立工程时已经选择了开发板的型号,所以相关的配置软件已经自动加载好了。

    基于FPGA的DDR3 SDRAM控制器的设计与优化

    宋明,赵英潇,林钱强 (国防科学技术大学电子科学与工程学院,湖南长沙410073

    摘要:为解决超高速采集系统中的数据缓存问题,文中基于Xilinx Kintex-7 FPGA MIG_v1.9 IP核进行了DDR3 SDRAM控制器的编写,分析并提出了提高带宽利用率的方法。最终将其进行类FIFO接口的封装,屏蔽掉了DDR3 IP核复杂的用户接口,为DDR3数据流缓存的实现提供便利。系统测试表明,该设计满足大容量数据缓存要求,并具有较强的可移植性。

     随着宽带雷达技术的发展,超高速和宽带采样已成为基本要求[1],超高速采集系统需要相匹配的数据缓存设计,DDR3 SDRAM是当前最常用的高效方案[2-4]。

    Artix-7-50T EVM 试用日志(三)——MicroBlaze测试DDR3

    我们在平常的调试过程中尤其在进行大批量数据处理时,经常需要缓存大量的数据,虽然较高级别的FPGA都用于大量的片内BlockRAM,但是在算法较为复杂时,BlockRAM依然显得捉襟见肘,外置的SDRAM容量大成本低,为FPGA扩容提供了良好的平台。Xilinx系列FPGA随软件拥有免费的SDRAM控制器,可以很方便的让用户对FPGA进行缓存扩容,而不用费神于如何控制SDRAM的读写时序和自刷新等繁杂的操作。

    我们手中这块A7-50T的开发板上便集成了位宽为16bit,容量位256MB的DDR3-SDRAM。这次我们就着手测试一下开发板的DDR3存储。

    测试内容为将DDR3扩展为MicroBlaze软核的存储空间。这样不但省掉我们用HDL语言去编辑整个用户时序,还可以在生成MicroBlaze软核时配置较小的片上缓存,而将较大的程序空间分配如DDR3内,从而可以节省出有限的片上缓存空间用于数据接口的缓存。

    测试步骤:
    1. 新建一个工程,在其内部新建一个Block Design,将我们需要的IP核加入到Block Design中,分别为UART核和MIG,新建完工程如图1。

    成本的敏感和性能的提升在设计中需要同时满足,当Artix-7和Spartan-7越来越多被用来与高性能DDR2/DDR3一起设计,系统设计人员经常面临需要设计最低BOM成本PCB的挑战,低成本的同时还解决了设计者选择先进的PCB制造技术以减少PCB层数的成本折中。

    大型矩阵90°转置的实现方法

    在实际应用中,可能会碰到大型矩阵转置的需求,尤其是对于图像应用,转置就是实现图像的90°旋转。

    由于FPGA片内的RAM资源一般不足以缓存这样大规模的矩阵数据,所以一般都要借助于外部的存储器,一般是DDR3。我们需要按照行的方向组织数据写入DDR3,然后按照列的方向读出数据。那么如何高效的利用DDR3的带宽,是实现图像矩阵90°翻转的核心!

    如下是一个大小为1920x1080的矩阵,存取DDR3的示意图。写入和读取都按照4x4的块来进行:

    写入时,按照如下的数据组织方式,至少需要4行缓存:

    读出时,按照如下的数据组织方式,也至少需要4行缓存:

    DDR4,DDR3,DDR2,DDR1及SDRAM各有何不同?

    SDRAM(Synchronous Dynamic Random Access Memory):为同步动态随机存取内存,前缀的Synchronous告诉了大家这种内存的特性,也就是同步。1996年底,SDRAM开始在系统中出现,不同于早期的技术,SDRAM是为了与中央处理器的计时同步化所设计,这使得内存控制器能够掌握准备所要求的数据所需的准确时钟周期,因此中央处理器从此不需要延后下一次的数据存取。举例而言,PC66 SDRAM以66 MT/s的传输速率运作;PC100 SDRAM以100 MT/s的传输速率运作;PC133 SDRAM以133 MT/s的传输速率运作,以此类推。

    SDRAM亦可称为SDR SDRAM(Single Data Rate SDRAM),Single Data Rate为单倍数据传输率,SDR SDRAM的核心、I/O、等效频率皆相同,举例而言,PC133规格的内存,其核心、I/O、等效频率都是133MHz。而Single Data Rate意指SDR SDRAM在1个周期内只能读写1次,若需要同时写入与读取,必须等到先前的指令执行完毕,才能接着存取。

    基于FPGA的DDR3用户接口设计

    作者:潘一飞,余海 (南京理工大学 电子工程与光电技术学院)

    摘要:本文详细介绍了在Xilinx Virtex-6系列FPGA中使用MIG3.7 IP核实现高速率DDR3芯片控制的设计思想和设计方案。针对高速实时数字信号处理中大容量采样数据通过DDR3存储和读取的应用背景,设计和实现了适用于该背景的控制状态机,并对控制时序作了详尽的分析。系统测试结果表明,该设计满足大容量数据的高速率存储和读取要求。

    一、引言
    随着软件无线电[1]思想的提出和FPGA技术[2]的不断发展,高速实时数字信号处理[3]已经成为FPGA的一个重要课题,高速的采样频率带来的是大容量的存储数据。在存储芯片领域,DDR3以较低的功耗,较快的存储速度,较高的存储容量和较低的价格迅速占领市场;同时在绘制PCB板图时,DDR2对信号完整性[4]的要求比较高,在很多地方都要求T型连接;而DDR3引入了write leveling的模块[5],专门用于各个模块间时钟的对齐,因此可以采用菊花链的连接方式,大大方便了PCB互联设计[6]。因此,在FPGA中使用DDR3进行大容量数据的存储是一种趋势。

    同步内容