【原创】FPGA开发手记(二) VGA接口
以下内容均以Xilinx的Nexys3作为开发板
1.VGA接口介绍
首先,先看电路图(3*5为例):

标准VGA一共15个接口,但是实际应用的接口信号只用五个:HSYNC,行同步信号;VSYNC,场同步信号;RED[2:0];Green[2:0];Blue[1:0]。注意着三个信号是模拟信号,所以很多时候需要将数字信号转化为模拟信号。由于没有D/A转化器,所以只能认为的用0/1代替模拟量,因此颜色最多为八种。我看到过有些人在此处会用一个3-8译码器来模拟D/A转换器,但是我个人没有这样做,而且我也不推荐这样做,不能混用模拟量和数字量。我们的整个实验其实主要围绕着HS和VS来进行。总而言之,一句话,仅就我个人而言,VGA接口实验最重要也最核心的是对时序的约束。但这种约束我们是用counter方式来完成的,而非static timing closure。
2.VGA时序介绍
VGA时序约束,很多书上都有讲,殊途同归。就拿开发板manual为例。
如图所示:

首先,行(场)同步信号HS(VS)在每行(帧)开始的时候产生一个固定宽度的低脉冲信号,表示行(场)扫描开始,当同步信号持续front porch(显示前沿)之后,开始扫描有效数据,当有效数据扫描完会产生一个低脉冲,进行扫描线折返,在一个低脉冲后持续back porch(显示后沿)的时间,开始重新扫描。其实就是这样一个翻来复去,反反复复的过程,知道所有的像素都被扫描完全,我们需要做的就是保证扫描线的时序。
下面给出常用的刷新频率时序表。

3.程序源代码
以上内容均可以从百度网盘下载http://pan.baidu.com/share/link?shareid=940132753&uk=1092766566。
【原创】FPGA开发手记(二) VGA接口的更多相关文章
- 【原创】FPGA开发手记(三) PS/2键盘
以下内容均以Xilinx的Nexys3作为开发板 1.PS/2键盘简介 虽然Nexys3开发板是利用USB接口搭载键盘,但是其原理与PS/2键盘完全相同,现在就仅以PS/2键盘为例讲解如何将键盘搭 ...
- 使用FPGA开发板驱动VGA显示器
1. 本次使用的是cyclone4开发板,先看下原理图,因为右边的RGB应该是模拟信号量,但是本次例程只接了3根线,那就是说颜色只有8种. 2. 代码,输出信号有R,G,B三色,就是上图右边的,行同步 ...
- 【原创】FPGA开发手记(一) UART接口
以下内容均以Xilinx的Nexys3作为开发板 1. UART简介 UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是广泛使用的串 ...
- Android 开发手记二 C可执行程序编译实例(转帖)
http://www.cnblogs.com/gaozehua/archive/2011/09/02/2164077.html
- FPGA学习-VGA接口
一般FPGA开发板的VGA会向用户暴露两共五个种接口,第一种是时序信号,用于同步传输和显示:第二种是色彩信号,用于随着时序把色彩显示到显示器上 时序接口 行同步信号-用于指示一行内像素的显示 场同步信 ...
- 【接口时序】7、VGA接口原理与Verilog实现
一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE 硬件平台: 1. FPGA型号:Xilinx公 ...
- 【FPGA篇章二】FPGA开发流程:详述每一环节的物理含义和实现目标
欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 FPGA的开发流程是遵循着ASIC的开发流程发展的,发展到目前为止,FPGA的开发流程总体按照下图进行,有些步骤可能由于其在当前项目中的条件 ...
- C#/ASP.NET MVC微信公众号接口开发之从零开发(二) 接收微信消息并且解析XML(附源码)
文章导读: C#微信公众号接口开发之从零开发(一) 接入微信公众平台 微信接入之后,微信通过我们接入的地址进行通信,其中的原理是微信用户发送消息给微信公众账号,微信服务器将消息以xml的形式发送到我们 ...
- 基于FPGA的VGA接口使用
前言 什么是VGA? VGA(视频图形阵列)是IBM公司制定的一种视频数据传输标准. 接口信号主要有5个:R(Red),G(Green),B(Blue),HS(Horizontal synchroni ...
随机推荐
- html-----020----事件
html事件 <body> <a href="http://www.cctv.com" accesskey="k" target=" ...
- php封装文件上传
这是一个经常在项目中遇到的问题,所以封装一个,分享给大家. 一,前期配置php.ini 如果上传文件超过了php配置那么$_POST或者$_FILES等都是空数组,这点是一个坑,因为那时候就不 ...
- struts2 package元素配置(转载)
package 元素的所有属性及对应功能: Attribute Required Description name yes key to for other packages to reference ...
- sea.js说明文档
Sea.js 手册与文档 首页 | 索引 目录 模块定义 define id dependencies factory exports require require.async require.re ...
- js方法的命名不能使用表单元素的名称或ID
今天在写页面的时候,遇到一个关于js方法的命名问题,先看下代码: 表单元素如下: <select name="isCulture" onchange="isCult ...
- web页面背景色控制
有一道题要实现输入rgb数值,实现更换页面背景色的功能,如下图所示: 答案: <html> <head> <script type="text/javascri ...
- Android 之 悬浮窗
昨天研究Android的悬浮窗,遇到一个问题,研究了一天,总算找到结症了,原因非常坑人..... 问题是这样的,我想要将悬浮窗展现在桌面或其他应用之上,我的开发机子用的是MIUI,结果发现在机子上无论 ...
- 修改centos环境变量
1.vim /etc/profile 2.PATH=$PATH:/usr/local/php/bin;export PATH 3.source /etc/profile
- Cygwin下设置ls显示颜色
vi ~/.bashrc 找到alias ls="xxxxxxxxxxxxxxxxxxxxxxxx"这一项,把注释去掉 修改后的这一行为: alias ls='ls -hF --c ...
- 一步步学习NHibernate(3)——NHibernate增删改查
请注明转载地址:http://www.cnblogs.com/arhat 在上一章中,我们配置了以下NHibernate的运行环境, 并介绍了NHibernate的中两个非常中重要的接口"I ...