基于FPGA的通信显示系统设计
一、系统介绍
本设计给出了一种基于FPGA的通信显示系统设计方法,采用EDA作为开发工具,作为运行程序的平台,结合所学知识设计一个基于FPGA的通信显示系统设计,通过串口调试器发送图片数据,通过串口调试器发送图片数据,用RXD进行接收UART接收器,并通过双口RAM进行存储,最后VGA显示。
二、设计任务及要求 1、设计任务
基于FPGA 的通讯显示系统设计。
2、要 求
(1)上位机软件发送图片数据通过串口接收至VGA终端显示
(2)学习用FPGA实现串口数据的接收和发送。
(3)发送1个数据,UART接收器会接收到1个数据,对接收到的数据进行存储,读取该数据显示到VGA指定区域
(4)会分析波形、懂得整体代码设计思路
三、系统实现 1.1系统总体设计
系统设计思路如下:
串口调试器发送文件(图片数据36000个:200*1580),以一定的速率对数据串行传输(发送1个数据,UART接收器会收到1个数据,对接收到的数据进行存储,读取该数据显示到VGA指定区域)
系统整体设计框架:
RTL视图:
1.2系统模块架构 1.2.1 PLL()
PLL模块为VGA驱动提供25M时钟
1.2.2 串口接收器()
串口接收模块接收来自PC发送的图片数据
UART接收数据时:将接收的串行数据转换成并行数据
1.2.3 写入地址计数()
写入地址计数模块根据接收到的数据,产生写入地址,并在接收完整张图片后,输出信号,允许VGA从SRAM读取数据
1.2.4 SRAM驱动(
SRAM驱动模块对SRAM芯片进行读写
1.2.5 VGA驱动()
VGA驱动模块产生VGA时序显示图片
VGA的扫描原理:逐行扫描(Z型扫描)、隔行扫描
VGA的显示区域:
只在显示区域内,RGB有效才能显示数据,在消隐区内,RGB无效无法显示数据
综合RTL视图:
四、仿真结果与软件 1、仿真结果
2、软件
次设计中用到了取模软件,采用软件,此软件支持字符、图片的取模,使用起来比较方便,也较为简单。
五、顶层代码
module uart_vga(input clk, input rst_n, input rxd, output vga_hs, output vga_vs, output [7:0] vga_rgb
);wire uart_clk; wire vga_clk; wire locked;wire [7:0] rx_data; wire rx_data_flag; wire [15:0] wr_addr; wire wren; wire [7:0] q; wire [15:0] rd_addr; my_pll my_pll_dut(.areset(~rst_n),.inclk0(clk),.c0(uart_clk),.c1(vga_clk),.locked(locked));uart_rx uart_rx_dut(.uart_clk(uart_clk), .rst_n(locked),.rxd(rxd), .rx_data(rx_data), .rx_data_flag(rx_data_flag) );//双口RAM写控制ram2_wr_ctrl ram2_wr_ctrl_dut(.wr_clk(vga_clk), .rst_n(locked), .rx_data_flag(rx_data_flag), .wr_addr(wr_addr), .wren(wren) );//DPRAM:IP核my_dpram my_dpram_dut(.data(rx_data),.rdaddress(rd_addr),.rdclock(vga_clk),.wraddress(wr_addr),.wrclock(vga_clk),.wren(wren),.q(q));//VGA显示vga_ctrl vga_ctrl_dut(.clk_40mhz(vga_clk), .rst_n(locked),.q(q),.addr(rd_addr),.vga_hs(vga_hs),.vga_vs(vga_vs),.vga_rgb(vga_rgb));endmodule
;
五、结语
关于本项目相关源码和软件一起上传到资源当中