Verilog HDL VGA Driver for Xilinx Nexys 4 适用于Nexys4的VGA驱动
/*
* Function: VGA Timing Generator
* Author: Liutianchen
* Date: 2016-12-5
* Version: 6.0
* Environment: Verilog HDL with Vivado 2016.3
*/ `timescale 1ns / 1ps /*
PARAMETER:
0: Sync
1: Sync + Back porch
2: Sync + Back porch + Display Area
3: Sync + Back porch + Display Area + Front Porch
*/ module vga_time_gen(
input clk,
input rst,
input ena,
output VGA_HS,
output VGA_VS,
output reg Ready,
output [:] HCounter,
output [:] VCounter); reg [:] cntH=,cntV=; reg [:] Hpara [:];
reg [:] Vpara [:]; initial begin
///Parameter Announcement /// 1280 x 1024@60hz 108MHz
Hpara[]=;
Hpara[]=+;
Hpara[]=++;
Hpara[]=+++; Vpara[]=;
Vpara[]=+;
Vpara[]=++;
Vpara[]=+++; ////800x600@60hz 40MHz
// Hpara[0]=128;
// Hpara[1]=128+88;
// Hpara[2]=128+88+800;
// Hpara[3]=128+88+800+40;
//
// Vpara[0]=4;
// Vpara[1]=4+23;
// Vpara[2]=4+23+600;
// Vpara[3]=4+23+600+1; ////1024x768@85hz 94.6MHz
// Hpara[0]=96;
// Hpara[1]=96+208;
// Hpara[2]=96+208+1024;
// Hpara[3]=96+208+1024+48;
//
// Vpara[0]=3;
// Vpara[1]=3+36;
// Vpara[2]=3+36+768;
// Vpara[3]=3+36+768+1;
end ///////////////Horizontal Scanning/////////////////// always@(posedge clk or posedge rst) begin
if(rst)
cntH<=;
else if(cntH==Hpara[])
cntH<=;
else
cntH<=cntH+;
end ///////////////Vertical Scanning///////////////////// always@(posedge clk or posedge rst) begin
if(rst)
cntV<=;
else if(cntV==Vpara[])
cntV<=;
else if(cntH==Hpara[])
cntV<=cntV+;
end ///////////////Displaying Area Ready?/////////////// always@(posedge clk or posedge rst) begin
if(rst)
Ready<=;
else if(cntH>Hpara[] && cntH<Hpara[] &&
cntV>Vpara[] && cntV<Vpara[])
Ready<=;
else
Ready<=;
end ///////////////////Output Sync Signal/////////////// assign VGA_HS=cntH<=Hpara[]?(ena?:):;
assign VGA_VS=cntV<=Vpara[]?(ena?:):; ///////////////////Ouput Position//////////////////// assign HCounter=cntH-Hpara[];
assign VCounter=cntV-Vpara[]; endmodule
VGA端口时序发生器,适用于Xilinx公司Nexys4开发板。
Nexys4开发板支持4096色RGB显示输出。
请使用时钟IP核发生VGA显示需要的时钟频率。频率对应的时序参数表可从Tiny VGA网站查阅。
转载请注明出处。
原文地址:http://www.cnblogs.com/liutianchen/p/6292721.html
如果你还没选课那请选张志峰别问为什么。。。
Verilog HDL VGA Driver for Xilinx Nexys 4 适用于Nexys4的VGA驱动的更多相关文章
- 基于Verilog HDL 的数字时钟设计
基于Verilog HDL的数字时钟设计 一.实验内容: 利用FPGA实现数字时钟设计,附带秒表功能及时间设置功能.时间设置由开关S1和S2控制,分别是增和减.开关S3是模式选择:0是正常时钟 ...
- 浅谈Verilog HDL代码编写风格
消失了好久,没有写文章,也没有做笔记,因为最近再赶一个比赛,时间很紧,昨天周六终于结束了,所以趁着周末这会儿有时间,写点东西,记录下来.首先我学习FPGA才一年多,我知道自己没有资格谈论一些比较深层次 ...
- 如何高效的编写Verilog HDL——进阶版
博主之前写过一篇文章来谈论如何高效的编写Verlog HDL——菜鸟版,在其中主要强调了使用Notepad++来编写Verilog HDL语言的便捷性,为什么说是菜鸟版呢,因为对于新手来说,在还没有熟 ...
- Sublime Text 2 和 Verilog HDL
Sublime Text 2 和 Verilog HDL Date Fri 04 July 2014 Tags Sublime Text / Vivado Sublime Text 代码编辑器之于程 ...
- 基于Verilog HDL整数乘法器设计与仿真验证
基于Verilog HDL整数乘法器设计与仿真验证 1.预备知识 整数分为短整数,中整数,长整数,本文只涉及到短整数.短整数:占用一个字节空间,8位,其中最高位为符号位(最高位为1表示为负数,最高位为 ...
- 关于初次使用Verilog HDL语言需要懂的基本语法
关于初次使用Verilog HDL语言需要懂的基本语法 1.常量 数字表达式全面的描述方式为:<位宽><进制><数字> 8’b10101100,表示位宽为8的二进制 ...
- FPGA Verilog HDL 系列实例--------步进电机驱动控制
[连载] FPGA Verilog HDL 系列实例 Verilog HDL 之 步进电机驱动控制 步进电机的用途还是非常广泛的,目前打印机,绘图仪,机器人等等设备都以步进电机为动力核心.那么,下面我 ...
- Verilog HDL基础语法讲解之模块代码基本结构
Verilog HDL基础语法讲解之模块代码基本结构 本章主要讲解Verilog基础语法的内容,文章以一个最简单的例子"二选一多路器"来引入一个最简单的Verilog设计文件的 ...
- Verilog HDL模块的结构
一个设计是由一个个模块(module)构成的.一个模块的设计如下: 1.模块内容是嵌在module 和endmodule两个语句之间.每个模块实现特定的功能,模块可进行层次的嵌套,因此可以将大型的数字 ...
随机推荐
- Android 4 学习(21):对话框
对话框 创建Dialog的两种方式: 1. 使用Dialog类或其子类,包括DialogFragment 2. 在Activity中使用Dialog主题(theme) 下面是使用Dialog类的一个例 ...
- linux下使用adb查看android手机的logcat
root@ubuntu:/home/song# adb logcat -s VLC
- tomcat的中的Apache的apr是个啥东东???
这东西的作用说白了就是让我们的项目在其他系统中也可以正常运行!!!!
- C#隐式类型局部变量&隐式类型数组
[隐式类型局部变量] 可以赋予局部变量推断“类型”var 而不是显式类型.var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型.推断类型可以是内置类型.匿名类型.用户定义类型或 .NET ...
- SpringBoot31 整合SpringJDBC、整合MyBatis、利用AOP实现多数据源
一.整合SpringJDBC 1 JDBC JDBC(Java Data Base Connectivity,Java 数据库连接)是一种用于执行 SQL 语句的 Java API,可以为多种关系数 ...
- Opencv Laplace算子
//通过拉普拉斯-锐化边缘 kernel = (Mat_<float>(3,3)<<1,1,1,1,-8,1,1,1,1);//Laplace算子 filter2D(img2, ...
- OCFS2 Fencing
OCFS2 FencingPosted on February 8, 2011 by Abdulhameed Basha I am very excited to start writing my e ...
- 利用SHELL脚本修改当前环境变量
转自http://www.chinaunix.net/old_jh/7/21485.html 1.背景 ---- 在日常的工作中,为了设置一大批环境变量,我们通常编辑了一个shell程序,包含了多个的 ...
- p4688 [Ynoi2016]掉进兔子洞
传送门 分析 我们考虑先将所有数离散化 之后我们对于每个状态用一个bitset来记录 其中第i段表示颜色i的信息 对于每一段信息均是段首若干1,剩余若干0表示这种颜色有多少个 于是我们不难想到莫队 答 ...
- Linux 添加新硬盘
1.识别分区和硬盘 在 /dev/ 目录下找到新的硬盘,sda 为本地硬盘,sda1.sda2.. 为分区,sdb 就是新添加的硬盘,如: [root@wusuyuan ~]# ls -ltr /de ...