RISC-V MCU中文社区

【分享】 【队伍编号CICC1607】Soc视频通路搭建——VGA接口的配置

发表于 全国大学生集成电路创新创业大赛 2022-05-29 13:56:37
0
196
0

Soc视频通路搭建——VGA接口配置

团队名称:就你手搓CPU是吧
报名编号:CICC1607
文章编号:4


我们组计划基于E203内核搭建用于手势识别任务的智能Soc,为了实现结果输出,需要给系统搭建视频输出接口。因为Nexys A7板卡有一个VGA视频输出接口,需要实现其驱动,下面介绍我们的方法。

VGA接口简介

VGA的全称是Video Graphics Array,即视频图形阵列,是一个使用模拟信号进行视频传输的标准。早期的CRT显示器由于设计制造上的原因,只能接收模拟信号输入,因此FPGA内部的需要进行数模转换。VGA接口共有15针,分成3排,每排5个孔。最基本的包含R\G\B\H\V(分别为红、绿、蓝、行、场)5个分量,不管以何种类型的接口接入,其信号中至少包含以上这5个分量。

实现基本原理

VGA 显示器扫描方式从屏幕左上角一点开始,从左向右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT 对电子束进行消隐,每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。完成一行扫描的时间称为水平扫描时间,其倒数称为行频率;完成一帧(整屏)扫描的时间称为垂直扫描时间,其倒数称为场频率,即屏幕的刷新频率,常见的有 60Hz,75Hz 等等,但标准的 VGA 显示的场频 60Hz

VGA接口时序

VGA的配置主要是设置对应分辨率输出的时序,其配置参数如下所示:

如640*480的时钟位25.175M = (96+48+16+640) * (2+33+480+10) * 60,不同的分辨率与帧率对应了不同的时钟频率,都可以通过这张表进行查询/计算

接口与管脚分配

对于VGA的逻辑控制接口主要有以下

module VGA(
    input wire i_clk,           // base clock
    input wire i_pix_stb,       // pixel clock strobe
    input wire i_rst,           // reset: restarts frame
    output wire o_hs,           // horizontal sync
    output wire o_vs,           // vertical sync
    output wire o_blanking,     // high during blanking interval
    output wire o_active,       // high during active pixel drawing
    output wire o_screenend,    // high for one tick at the end of screen
    output wire o_animate,      // high for one tick at end of active drawing
    output wire [9:0] o_x,      // current pixel x position
    output wire [8:0] o_y       // current pixel y position
    );

板卡管脚分配如下所示:

在配置过程中要注意:
1、行时序是以”像素”为单位的, 场时序是以”行”为单位的。

2、VGA 工业标准显示模式要求:行同步,场同步都为负极性,即同步脉冲要求是负脉冲。

3、VGA 行时序对行同步时间、消隐时间、行视频有效时间和行前肩时间有特定的规范,场时序也是如此。

喜欢0
用户评论
XinChen

XinChen 实名认证

Nan

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板