整体设计 基于 DDR3 的串口传图帧缓存系统设计实现

文章目录
前言
结合串口接收模块和 tft 显示屏控制模块,设计一个基于 DDR3 的串口传图帧缓存系统 。
提示:以下是本篇文章正文内容,下面案例可供参考
一、串口传图顶层系统设计框图
二、各模块说明
(1) 模块:负责串口图像数据的接收,该模块的设计前面章节已经有讲(可参考串口接收) 。
(2) 模块:将串口接收的每两个 8bit 数据转换成一个 16bit 数据(图像数据是 16bit 的的数据,电脑是通过串口将一个像素点数据分两次发送到 FPGA,FPGA 需将串口接收数据重组成 16bit 的图像数据),实现过程相对比较简单(可参考) 。
(3) 模块:tft 屏显示驱动控制,对缓存在 DDR3 中的图像数据进行显示(可参考VGA成像原理) 。
(4) 模块:使用的 FIFO IP ,主要用于写入 DDR3 数据的缓存、解决数
据跨时钟域以及数据位宽的转换(IP生成在下方有介绍) 。
(5) 模块:使用的 FIFO IP ,主要用于读出 DDR3 数据的缓存、解决数据
跨时钟域以及数据位宽的转换(IP生成在下方有介绍) 。
(6) 模块:主要是用于接口的转换,将 MIG IP 的 AXI 接口换成与 FIFO
对接的接口(可参考) 。
(7) 模块: DDR3 控制器,使用的(MIG 7

整体设计  基于 DDR3 的串口传图帧缓存系统设计实现

文章插图
)IP(可参考DDR3 控制器 MIG IP 详解完整版) 。
(8)pll 模块:上述各个模块所需时钟的产生,使用 PLL IP 。除去使用 IP 和前面章节讲过的模块外,还需要设计的模块包括模块和 模块(IP生成在下方有介绍) 。
(9)顶层模块,用于实现上述模块的转换与连接(参考第四节模块) 。
三、系统工程及 IP 创建
新建一个以名为的工程,工程创建好之后,根据系统整体结构图将所需的 IP 的进行一一创建,DDR 控制器 IP就不多说,按照前面 MIG IP 创建流程,创建一个 的 DDR 控制器 。接下来对两个 FIFO IP 进行创建 。首先对模块进行分析,这个 FIFO 处于串口接收模块与模块之间,主要是由于两个模块之间时钟和数据传输速率不一致导致需要进行数据缓存 。端口数据是 16bit 图像数据,写入时钟采用与串口接收模块相同的工作时钟 50MHz 。读端口数据是用于写入到 DDR 存储器,与 DDR 控制器保持一致,数据位宽使用 ,读时钟使用的时钟 。根据分析,需创建一个独立时钟的
读写数据位宽不一样的 FIFO,具体 FIFO 的相关配置如下图 。注意,这里 FIFO 的 Read Mode需要设置成 First Word Fall ,写入数据深度暂时设置为 512,根据后面设计情况可进行修改 。
模块与模块类似,同样处于串口接收模块与模块
之间 。不同的是,这个 FIFO 的写入数据是来自从 DDR 存储器读出的数据,而读出的数据
是用于图像显示 。所以写端口数据位宽为 ,写入时钟使用 MIG IP 输出的的
时钟 。读端口数据位宽为 16bit,读时钟使用与 TFT 驱动时钟一致的时钟 。根据分析,
需创建一个独立时钟的读写数据位宽不一样的 FIFO,具体 FIFO 的相关配置如下图 。注意,
这里 FIFO 的 Read Mode 需要设置成 First Word Fall ,写入数据深度暂时设置为 64,根据后面设计情况可进行修改 。
pll 模块是用于产生整个系统中所需各种时钟,整个系统中主要使用到 3 个时钟,分别为 DDR 控制器所需时钟、串口模块工作的 50MHz 时钟、5 寸 TFT 屏驱动模块的33MHz 。板卡 FPGA 的输入时钟是 50MHz 的输入时钟 。根据分析可知,PLL 模块的输入时钟是来自外部的 50MHz 晶振时钟,输出时钟为 、50MHz、33MHz 。具体IP 配置界面如下图,其余界面保持默认即可 。