基于DDR3存储器接口控制器IP核的视频数据处理
与过去几代(DDR和DDR2)器件相比,DDR3存储器器件有了明显的进步。DDR3存储器系统可以大大提升各种数据处理应用的性能。为了充分利用和发挥DDR3存储器的优点,使用一个高效且易于使用的DDR3存储器接口控制器是非常重要的。视屏处理应用就是一个很好的示例,说明了DDR3存储器系统的主要需求以及在类似数据流处理系统中DDR3接口所需的特性。希望能给大家有个客观的认知。
视频处理系统将对于数据带宽的要求推高到了极致:系统可以处理越多的数据,就具有越高的性价比。视频聚合器和路由器可并行处理多个视频流,因此对于匹配数据处理能力和视频带宽的需求就成为了设计的一大挑战。FPGA可通过在单个FPGA中实现多个视频处理器来提供强大的处理能力。那么现在的挑战就变成了要使数据尽快且高效地从FPGA进出。DDR3存储器系统在大多数情况下可以为这些基于FPGA的系统提供足够的带宽。
视频处理设计说明
我们的目标视频处理设计将同时处理四个视频源,将视频数据转换和压缩为一种可以通过PCI Express接口传输到存储器hub的格式。系统的主要功能块如图1所示。
图1:视频处理器框图
FPGA获取并缓存四个视频源的数据流。这些FIFO缓冲器由DDR3存储器控制器清空并保存在DDR3存储器中。一旦一个完整的视频数据包存储完毕,视频处理器会向DDR3存储器控制器申请数据,存储器控制器读取数据并将其传到视频处理器。视频处理器对视频数据进行格式化和压缩,并通过DDR3存储器控制器写回存储器。当一个视频数据包全部处理完毕,并准备通过PCI Express接口进行传输,DDR3存储器控制器从视频处理器获取数据并将其传到PCI Express接口。
DDR3存储器接口控制器概述
双倍数据速率(DDR3)同步动态随机存取存储器(SDRAM)控制器是一种通用存储器控制器,能与行业标准的DDR3 SDRAM器件和具有JESD79 - 3C型规范兼容的模块接口。并对用户应用提供了一个通用命令接口。DDR3 SDRAM是新一代SDRAM存储器技术,具有更快的速度,缓冲SSO,由于直接将信号连到SDRAM,取代了低偏移的树状分布的方法,因此减少了布线。这个IP核减少了需要整合DDR3存储器控制器与应用的其余部分所需投入的工作量。
特点
支持所有LatticeECP3“EA”器件
能与工业标准的DDR3 SDRAM器件和具有JESD79 - 3C规范兼容的模块接口
高性能DDR3,高达400 MHz/800 Mbps的操作
支持存储器数据路径宽度为8 - ,16 - ,32和64位
支持x8和x16器件配置
支持无缓冲的DDR3 DIMM
支持一个DIMM和每个DIMM的一个级
8(固定)、“chopped 4”,或8(传输),或“chopped 4”(固定)的可编程突发长度
可编程的CAS延迟
可编程写延迟
四位顺序或交织的读突发类型
支持自动的DDR3 SDRAM的初始化和刷新
对每个DQS自动写
支持掉电模式
支持动态片上终端(ODT)的控制
终端数据选通(TDQS),仅适用x8宽度
ECP3 IO原语管理读偏移(读电平相等)
自动可编程间隔刷新,或用户启动刷新
DDR3的SDRAM控制器可作为IPexpress用户可配置的IP核,能够进行IP的配置,生成网表和模拟文件用于设计。请注意,除非购买了这个IP 的许可证,否则生成的位流可能会被阻止,或比特流可能有时间逻辑。
图2:DDR3存储器控制器IP核框图 DDR3存储器控制器应支持广泛的存储器速率和配置,以满足各种应用需求。例如,Lattice ECP3 DDR3存储器控制器支持高达800Mb/s的DDR3器件速率,8至64位的存储器数据通道(带有x8或x16 DDR3器件),并且同时支持双列直插式存储器块(Dual Inline Memory Modules,DIMM)和单个存储器的器件。
DDR3存储器控制器必须为各种存储器访问实现不同的时序要求。一些要求对于我们的目标应用来说非常重要,包括以下几个方面:
DDR3存储器使用"类似cache"的bank进行组织,每个器件带有8个bank.访问最近工作(打开)的bank比访问未工作的(关闭)的bank速度快。
可使用4位、8位或交叉存取方式进行突发(burST)模式读访问。
根据存储器速率和用户设置,CAS和写延迟都是可变的。从读请求转换为写请求需要额外的延迟时间,因为双向的数据总线必须改变传输方向。
针对视频处理的IP核实现
为了使存储器数据带宽和效率最大化,针对视频处理设计的IP核实现需根据DDR3存储器特性使用相匹配的算法。下面列出了一些重要的实现考虑。
使用突发(Burst)模式的数据访问
DDR3存储器可通过突发模式访问,突发模式在数据以数据块形式存放(如视频处理应用)的应用中是非常有效的。同样,通过将视频数据以优化的方式放入8个bank中,数据传输带宽和之后的数据处理率可维持在一个高速的水平。在我们的示例
- μC/GUI在基于NiosⅡ嵌入式开发平台的环境智能监控系统中的移植与应用(01-14)
- 基于Zynq的OLED驱动设计(10-04)
- 如何仿真IP核(06-06)
- LabVIEW FPGA代码模块设计(IP核)(06-06)
- IP核互连策略及规范(06-06)
- 如何实现IP核心网的QoS(06-06)