基于基于FPGA的的DDR3多端口读写存储管理设计多端口读写存储管理设计
为了解决视频图形显示系统中多个端口访问DDR3时出现的数据存储冲突问题,设计了一种基于FPGA的DDR3
存储管理系统。DDR3存储器控制模块使用MIG生成DDR3控制器,只需通过用户接口信号就能完成DDR3读写
操作。DDR3用户接口仲裁控制模块将中断请求分成多个子请求,实现视频中断和图形中断的并行处理。帧地址
控制模块确保当前输出帧输出的是最新写满的帧。验证结果表明,设计的DDR3存储管理系统降低了多端口读写
DDR3的复杂度,提高了并行处理的速度。
引言
本文以Xilinx公司的Kintex7系列XC7K410T FPGA芯片和两片Micron公司的MT41J128M16 DDR3 SDRAM芯片为硬件平台,
设计并实现了基于FPGA的视频图形显示系统的DDR3多端口存储管理。
1 总体架构设计
机载视频图形显示系统中,为了实现多端口对DDR3的读写访问,设计的DDR3存储管理系统设计框图如图1所示,主要包括
DDR3存储器控制模块、DDR3用户接口仲裁控制模块和帧地址控制模块。
图1 DDR3存储管理系统设计框图
DDR3存储器控制模块采用Xilinx公司的MIG[4](Memory Interface Generator)方案,通过用户接口建立FPGA内部控制逻辑到
DDR3的连接,用户不需要管理DDR3初始化、寄存器配置等复杂的控制逻辑,只需要控制用户接口的读写操作。
DDR3用户接口仲裁控制模块将每一个数据读写请求设置成中断,借鉴中断处理思想来进行仲裁控制,从而解决数据存储的冲
突问题。
帧地址控制模块控制帧地址的切换。为了提高并行处理的速度,减少数据读写冲突,将图形数据和视频数据分别存储在不同的
DDR3中。
2 DDR3存储器控制模块设计
MIG生成的DDR3控制器的逻辑框图[5]如图2所示,只需要通过用户接口信号就能完成DDR3读写操作,大大简化了DDR3的设
计。
图2 DDR3控制器的逻辑框图
2.1 DDR3控制模块用户接口写操作设计
DDR3存储器控制模块用户接口写操作有两套系统:一套是地址系统,另一套是数据系统。用户接口写操作信号说明如表1所
列。
表1 DDR3控制器用户接口写操作信号说明
地址系统的内容是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所示,使两套系统在时序上完全对齐。
图3 DDR3写操作时序图(突发长度BL=8)
2.2 DDR3控制模块用户接口读操作设计
用户接口读操作也分为地址系统和数据系统。用户接口读操作信号说明如表2所列。
表2 DDR3控制器用户接口读操作信号说明
地址系统与写操作相同,在时钟上升沿且app_rdy为高电平时,用户端口同时发出读命令(app_cmd=001)和读地址,并将
app_en拉高,将读命令和地址写到FIFO中。对于数据系统,当app_rd_data_valid有效,则读数据有效,读回的数据顺序与地
址/控制总线请求命令的顺序相同。
读操作地址系统和数据系统一般是不对齐的,因为地址系统发送到DDR3后,DDR3需要一定的反应时间,读操作时序如图4
所示。
评论0