简介

DE2开发板上,使用串口接收PC上的Qt程序发送的640*480彩色图片,以RGB565格式存入SDRAM,通过VGA显示在屏幕上。
开发板:DE2
开发工具:Quartus II 13.0 + Modelsim 10.5 SE
全局时钟:50M
VGA时钟:25M
SDRAM时钟:100M

总体结构


上图是系统的总体结构,省略了PLL模块,实际上两个fifo都在SDRAM控制器内部。
一共5个模块:PLL、串口接收、数据合并、SDRAM控制器、VGA控制器

模块介绍

PLL模块负责生成三路时钟:

  • 25M时钟:VGA使用
  • 100M时钟:SDRAM控制器使用
  • 100M(-90degree)时钟:SDRAM芯片使用

串口接收模块
波特率:115200
数据位:8
校验:无
停止位:1

串口模块负责接收PC发送的数据。
串口模块还是用之前的,不做修改。接口如下:

module uart_rx(input               clk,input               rst_n,// uart rxinput               rx,// output data & validoutput reg          valid,output reg [7:0]    data
);

数据合并模块
由于使用RGB565格式存储彩色图片,所以要把串口接收到的单字节数据合并为16bit位宽的RGB565格式数据。接口如下:

module data_merge(input               clk,input               rst_n,// input data & validinput               iValid,input       [7:0]   iData,// output data & validoutput reg          oValid,output reg  [15:0]  oData
);

sdram控制器模块
SDRAM控制器模块负责存储图片,该SDRAM控制器是crazybingo大佬写的,不过其本质上是根据友晶提供的SDRAM控制器改良的,咱要站在巨人的肩膀上前行。接口如下:

module Sdram_Control_2Port(// HOST Sideinput                           REF_CLK;                //sdram control clockinput                           OUT_CLK;                //sdram output clockinput                           RESET_N;                //System Reset// FIFO Write Side 1input   [`DSIZE-1:0]            WR_DATA;                //Data inputinput                           WR;                      //Write Requestinput [`ASIZE-1:0]          WR_MIN_ADDR;             //Write start addressinput   [`ASIZE-1:0]          WR_MAX_ADDR;         //Write max addressinput [8:0]                 WR_LENGTH;               //Write lengthinput                          WR_LOAD;             //Write register load & fifo clearinput                          WR_CLK;                  //Write fifo clock// FIFO Read Side 1output  [`DSIZE-1:0]            RD_DATA;                //Data outputinput                           RD;                      //Read Requestinput  [`ASIZE-1:0]          RD_MIN_ADDR;             //Read start addressinput    [`ASIZE-1:0]          RD_MAX_ADDR;         //Read max addressinput  [8:0]                 RD_LENGTH;               //Read lengthinput                           RD_LOAD;             //Read register load & fifo clearinput                           RD_CLK;                  //Read fifo clock//STATUS Sideoutput                          busy;//  SDRAM Sideoutput  [`ROWSIZE-1:0]          SA;                     //SDRAM address outputoutput  [1:0]                   BA;                     //SDRAM bank addressoutput                       CS_N;                   //SDRAM Chip Selectsoutput                          CKE;                    //SDRAM clock enableoutput                          RAS_N;                  //SDRAM Row address Strobeoutput                          CAS_N;                  //SDRAM Column address Strobeoutput                          WE_N;                   //SDRAM write enableinout   [`DSIZE-1:0]            DQ;                     //SDRAM data busoutput  [`DSIZE/8-1:0]          DQM;                    //SDRAM data mask linesoutput                            SDR_CLK;             //SDRAM clock
);

VGA控制器模块
VGA控制器负责产生VGA时序,驱动显示屏。
使用友晶资料盘里面的VGA控制器。接口如下:

module VGA_Ctrl  (//  Host Sideinput       [7:0] iRed;input       [7:0] iGreen;input     [7:0] iBlue;output     [20:0]    oAddress;output      [10:0]    oCurrent_X;output        [10:0]    oCurrent_Y;output                oRequest;//  VGA Sideoutput       [7:0] oVGA_R;output        [7:0] oVGA_G;output        [7:0] oVGA_B;output    reg         oVGA_HS;output   reg         oVGA_VS;output               oVGA_SYNC;output             oVGA_BLANK;output                oVGA_CLOCK;//    Control Signalinput              iCLK;input               iRST_N;
);

顶层模块例化上面这些模块即可。

Qt上位机程序

自己用Qt写了一个串口传图程序,可以读取640*480分辨率的彩色图片,将RGB888格式的图片转RGB565,再通过串口发送,如图:

效果演示

链接:https://www.bilibili.com/video/BV1YY4y147KC

fpga串口传图

基于FPGA的串口传图SDRAM缓存VGA显示相关推荐

  1. 基于FPGA的串口传图SRAM缓存VGA显示

    简介 在DE2开发板上使用串口接收PC发送的640*480分辨率灰度图,存入SRAM,通过VGA进行显示. 开发板:DE2 型号:EP2C35F672C6 开发工具:Quartus II 13.0 + ...

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

    文章目录 前言 一.串口传图顶层系统设计框图 二.各模块说明 三.系统工程及 IP 创建 四.uart_ddr3_tft模块 五.uart_ddr3_tft模块仿真文件 六.传图展示 前言 结合串口接 ...

  3. UART串口传图LCD显示----图像处理

    UART串口传图LCD显示----图像处理 设计介绍 首先需要准备一个txt文本,里面存储一个16进制200* 200的图片数据,通过串口调试助手使用串口传输一个200* 200图片,然后通过开发板上 ...

  4. 基于 DDR3 的串口传图帧缓存系统设计实现(fifo2mig_axi )

    文章目录 前言 一.接口转换模块设计 二.fifo2mig_axi 模块 二.接口转换模块仿真 四.fifo2mig_axi_tb 五.仿真展示 前言 结合串口接收模块和 tft 显示屏控制模块,设计 ...

  5. 基于FPGA的视频图像直方图均衡 图像处理 图像增强 VGA对比度增强CLAHE

    基于FPGA的视频图像直方图均衡 图像处理 图像增强 VGA对比度增强CLAHE 本设计是基于FPGA的视频图像直方图均衡,实现的效果是可以实时地将摄像头采集的图像进行直方图均衡,具体过程是FPGA控 ...

  6. 基于FPGA的数字钟——(三)时钟显示模块(数码管)

    基于FPGA的数字钟--(三)数码管显示模块 一.硬件原理 本设计中使用 6 个共阳数码管,可以显示 6 个数字(包含小数点) .电路用 PNP管来反向驱动并且控制列扫描信号来选择哪个数码管.而且所有 ...

  7. FPGA基础设计(一):VGA显示方法(文字、图形、波形)

    概述   VGA是一种学习FPGA最常见的基础实验.虽然现在的显示屏大多已经采用DVI和HDMI方案,但其实VGA在另一个地方还有应用,那就是大屏的LCD.目前4.3寸以上的TFT基本都是VGA接口, ...

  8. FPGA 20个例程篇:15.VGA显示八种颜色的彩条

    第六章 图像显示处理,经典再现 15.VGA显示八种颜色的彩条 图像和视频处理可以说是FPGA中又一个经典地应用,使用FPGA做图像处理最核心的优势就在于:FPGA能进行实时流水线运算,从而达到更高的 ...

  9. SDRAM学习(五)——串口传图

    一.串口传图设计图 这一部分在之前写的SDRAM控制顶层模块的基础上加了pll时钟,之前写的tft4.3寸显示屏控制模块,串口接收数据模块和比特计数器. pll时钟:之前在初始化部分提到过,此处有四路 ...

最新文章

  1. Genome Biology | 基于RNA-seq的孟德尔疾病变异分析
  2. 前端代码标准最佳实践:CSS篇
  3. java 反射 慢在那里_Java 反射到底慢在哪?
  4. 洛谷3317 SDOI2014重建(高斯消元+期望)
  5. 绍中考能不能用计算机了,全国计算机二级考什么内容
  6. android 直播 app下载地址,蓝泡泡直播
  7. Oracle数据库基础入门《一》Oracle服务器的构成
  8. [SCOI2015]小凸玩矩阵 (匈牙利+二分)
  9. Maven的maven-install-plugin插件详解
  10. C++ 使用模板Template
  11. java beetl 视频_04.Beetl常用内置函数以及安全输出---《Beetl视频课程》
  12. tensorflow2.1学习--tf.keras学习之tf.keras.models.Sequential
  13. FactoryBean在XML中的依赖注入方法
  14. ncm转换mp3文件时遇到问题:未找到文件
  15. 计算机电磁泄露案例,电磁泄漏
  16. 华为手机刷机后显示无服务器,华为手机刷机后,无法开机怎么办?
  17. 本地KMS虚拟服务器,搭建kms本地服务器
  18. VS2010 中文版MSDN下载
  19. 计算机图形学——简单图形绘制
  20. linux 解压 7z 分卷压缩文件,linux分卷压缩与解压缩

热门文章

  1. 移动端开发基本知识之touch.js,FastClick.js源码分析
  2. 大学物理实验——拉伸法测杨氏模量
  3. html设置请求方式为put,GET POST PUT等请求方式的区别
  4. python黑科技自动p图_不会PS也不用愁——自动P图黑科技盘点
  5. 143 auth模块
  6. ALS3-P系列限位开关
  7. java webservice 高并发_浅谈WEB中的高并发
  8. c语言中专业英文词汇,c语言需要掌握的专业英语词汇
  9. 内存(Memory)
  10. airflow error Flask-Appbuilder setp command