导言
本文以Xilinx公司的Kintex-7系列XC7K410T FPGA芯片和两片Micron公司的MT41J128M16 DDR3 SDRAM芯片为硬件渠道,规划并完结了根据FPGA的视频图形显现体系的DDR3多端口存储办理。
1 整体架构规划
机载视频图形显现体系中,为了完结多端口对DDR3的读写拜访,规划的DDR3存储办理体系规划框图如图1所示,首要包含DDR3存储器操控模块、DDR3用户接口裁定操控模块和帧地址操控模块。
DDR3存储器操控模块选用Xilinx公司的MIG(Memory Interface Generator)计划,通过用户接口树立FPGA内部操控逻辑到DDR3的衔接,用户不需求办理DDR3初始化、寄存器装备等杂乱的操控逻辑,只需求操控用户接口的读写操作。
DDR3用户接口裁定操控模块将每一个数据读写恳求设置成中止,学习中止处理思想来进行裁定操控,然后处理数据存储的抵触问题。
帧地址操控模块操控帧地址的切换。为了进步并行处理的速度,削减数据读写抵触,将图形数据和视频数据别离存储在不同的DDR3中。
2 DDR3存储器操控模块规划
MIG生成的DDR3操控器的逻辑框图如图2所示,只需求通过用户接口信号就能完结DDR3读写操作,大大简化了DDR3的规划。
2.1 DDR3操控模块用户接口写操作规划
DDR3存储器操控模块用户接口写操作有两套体系:一套是地址体系,另一套是数据体系。用户接口写操作信号阐明如表1所列。
地址体系的内容是app_addr和app_cmd,两者对齐绑定,app_cmd为000时为写指令。当app_rdy(DDR3操控)和app_en(用户操控)一起拉高时,将app_addr和app_cmd写到相应FIFO中。数据体系的内容是app_wdf_data,它在app_wdf_rdy(DDR3操控)和app_wdf_wren(用户操控)一起拉高时,将写数据存到写FIFO中。
为了简化规划,本文规划的用户接口写操作时序如图3所示,使两套体系在时序上彻底对齐。
2.2 DDR3操控模块用户接口读操作规划
用户接口读操作也分为地址体系和数据体系。用户接口读操作信号阐明如表2所列。
地址体系与写操作相同,在时钟上升沿且app_rdy为高电平时,用户端口一起宣布读指令(app_cmd=001)和读地址,并将app_en拉高,将读指令和地址写到FIFO中。关于数据体系,当app_rd_data_valid有用,则读数据有用,读回的数据次序与地址/操控总线恳求指令的次序相同。
读操作地址体系和数据体系一般是不对齐的,因为地址体系发送到DDR3后,DDR3需求必定的反应时刻,读操作时序如图4所示。
3 DDR3用户接口裁定操控模块规划
每片DDR3只要一组操控、地址和数据总线,因而同一时刻只能有一个设备在拜访。常见的总线切换方法有两种:一种是轮询机制,软件完结简略,但实时性不高;另一种是裁定机制,设备发送中止恳求,然后进行总线切换。因为视频图形显现体系对实时性要求高,因而挑选裁定机制。
DDR3用户接口裁定操控框图如图5所示。为了进步并行速度,将图形和视频别离进行中止处理。将设备中止恳求解析成多个子恳求,进行优先级判别,每个子恳求对应一个中止处理逻辑。
3.1 视频处理写恳求中止处理器规划
因为视频处理写恳求不涉及到图形中止处理,所以对应一个子恳求——视频处理写子恳求。
视频处理模块将收集到的视频通过缩放、旋转等操作后存储在缓存区中,当缓存区满时发送视频处理模块写恳求。视频处理写中止处理首要是从视频处理模块的缓存区中将地址和数据取出,写入到视频存储DDR3中。
视频处理写恳求中止处理流程图如图6所示。当视频处理模块写恳求信号有用时,生成子中止恳求信号,若总线闲暇则响应该中止。当指令接纳安排妥当(app_rdy=1)且数据接纳安排妥当(app_wdf_rdy=1)时,从视频处理缓存区中读取地址和数据,一起发送写指令、写地址和写数据。若缓存区为空,阐明悉数写完,视频处理写中止完毕。
3.2 叠加输出读恳求中止处理器规划
叠加输出模块需求从DDR3中将待输出的图形数据和视频数据存储到行缓存中,因而分为两个子恳求:视频输出读恳求和图形输出读恳求。因为两者别离在图形中止处理和视频中止处理中完结,因而能够一起进行。
视频输出读中止处理首要从视频存储DDR3中读取1行视频数据,写入到叠加输出模块的视频缓存区中,视频输出读中止处理流程图如图7所示。本体系中突发长度BL=8,即每个用户时钟周期对应接纳同一行地址中相邻的8个存储单元的接连数据。输出视频分辨率为cols×rows,则地址体系需求发送cols/8个突发读指令。数据体系接纳读数据时,若读数据有用(app_rd_data_valid=1),则将读到的数据存储到叠加输出模块的视频缓存区中,一起读数据个数加1。当读数据个数为cols/8时,一切读指令对应的读数据悉数接纳,视频输出读中止处理完毕。
图形输出读中止处理包含两个进程:从图形存储DDR3中读取1行图形数据,写到叠加输出模块的图形缓存区中;将刚刚搬移数据到图形缓存区的DDR3存储空间清零。前者与视频输出读中止的处理进程相似。
图形数据写入DDR3时只写入有图形的方位,而不是全屏扫描,假如不进行清屏操作会导致下一帧图形画面上残留上一帧的图形数据。清屏操作指图形输出后将DDR3中对应地址的存储空间悉数写入数值0,然后将当时图形数据铲除。
3.3 图形生成写恳求中止处理器规划
为了进步读写速度,图形中止处理器中先进行直接成果写中止处理,一起视频中止处理器中进行插值布景视频读中止处理,完结后再进行插值成果写中止处理。
4 帧地址操控模块规划
帧地址操控模块首要是将DDR3空间进行区分,一起操控帧地址的切换。为了简化规划,将存储器区分为若干块,每块存储一帧数据,在用户裁定操控模块读写缓存区时只生成帧内地址,帧地址的切换由帧读写操控模块完结,帧内地址结合帧地址组合成对应DDR3的内部地址值。DDR3的帧地址区分如图8所示。
设置三个帧存储空间,其间一帧用于读出,一帧用于写入,还有一帧闲暇,别离称作输入帧、输出帧和闲暇帧。用三者的切换来完结帧速率的转化,保证输出帧相关于当时输入帧的推迟最小,即当时输出帧输出的是最新写满的帧。当写入的帧存储空间现已写满,而读存储空间还没读完,将下一帧的图画数据写入当时闲暇的帧存储空间。
图9为PAL输入帧和输出帧读写操控流程图。以A空间为输出帧,B空间为输入帧,C空间为闲暇帧为例。若A空间读完,B空间写满,则将B空间变成输出帧并输出,将C空间变成输入帧并持续输入;若A空间还没有读完,B空间现已写满,则将下一帧数据写入到C空间,并持续从A空间输出。
5 验证成果与剖析
图形生成写中止处理仿真图略——编者注。
本文算法中,插值布景读操作与直接成果写操作一起在视频中止处理和图形中止处理中进行,使用并行操作削减时刻,并大大下降了杂乱度。
结语
本文规划并完结了根据FPGA的DDR3多端口存储办理,首要包含DDR3存储器操控模块、DDR3用户接口裁定操控模块和帧地址操控模块。DDR3存储器操控模块选用Xilinx公司的MIG计划,简化DDR3的逻辑操控;DDR3用户接口裁定操控模块将图形和视频别离进行中止处理,进步了并行速度,一起简化了裁定操控;帧地址操控模块将DDR3空间进行区分,一起操控帧地址的切换。
通过剖析,本文将图形和视频中止分隔处理,下降多端口读写DDR3的杂乱度,进步并行处理速度。