Verilog实现VGA显示控制器
具体原理就不详细讲了,这里给出完整的代码以及Nexys3开发板的引脚文件。
最终实现的效果是:
以 640*480 的分辨率在显示器屏幕显示一个矩形方块,方块在屏幕中以 45 度的角度、60 像素/秒的速度移动,到达屏幕边沿的时候反弹。
// 设计文件:vga_controller.v `timescale 1ns / 1ps module vga_controller( input clk, input rst, output reg [2:0] r, output reg [2:0] g, output reg [1:0] b, output hs, output vs ); parameter UP_BOUND = 31; parameter DOWN_BOUND = 510; parameter LEFT_BOUND = 144; parameter RIGHT_BOUND = 783; reg h_speed, v_speed; reg [9:0] up_pos, down_pos, left_pos, right_pos; wire pclk; reg [1:0] count; reg [9:0] hcount, vcount; // 获得像素时钟25MHz assign pclk = count[1]; always @ (posedge clk) begin if (rst) count <= 0; else count <= count+1; end // 列计数与行同步 assign hs = (hcount < 96) ? 0 : 1; always @ (posedge pclk or posedge rst) begin if (rst) hcount <= 0; else if (hcount == 799) hcount <= 0; else hcount <= hcount+1; end // 行计数与场同步 assign vs = (vcount < 2) ? 0 : 1; always @ (posedge pclk or posedge rst) begin if (rst) vcount <= 0; else if (hcount == 799) begin if (vcount == 520) vcount <= 0; else vcount <= vcount+1; end else vcount <= vcount; end // 显示方块 always @ (posedge pclk or posedge rst) begin if (rst) begin r <= 0; g <= 0; b <= 0; end else begin if (vcount>=up_pos && vcount<=down_pos && hcount>=left_pos && hcount<=right_pos) begin r <= 3'b000; g <= 3'b111; b <= 2'b00; end else begin r <= 3'b000; g <= 3'b000; b <= 2'b00; end end end // 每一帧动画之后根据方块当前位置调整速度 always @ (negedge vs or posedge rst) begin if (rst) begin h_speed <= 1; v_speed <= 0; end else begin if (up_pos == UP_BOUND) v_speed <= 1; else if (down_pos == DOWN_BOUND) v_speed <= 0; else v_speed <= v_speed; if (left_pos == LEFT_BOUND) h_speed <= 1; else if (right_pos == RIGHT_BOUND) h_speed <= 0; else h_speed <= h_speed; end end // 每一帧动画之后根据速度值更新方块的位置 always @ (posedge vs or posedge rst) begin if (rst) begin up_pos <= 391; down_pos <= 510; left_pos <= 384; right_pos <= 543; end else begin if (v_speed) begin up_pos <= up_pos+1; down_pos <= down_pos+1; end else begin up_pos <= up_pos-1; down_pos <= down_pos-1; end if (h_speed) begin left_pos <= left_pos+1; right_pos <= right_pos+1; end else begin left_pos <= left_pos-1; right_pos <= right_pos-1; end end end endmodule
// Nexys3开发板引脚文件 NET "clk" LOC = "V10"; NET "rst" LOC = "C9"; NET "r[0]" LOC = "U7"; NET "r[1]" LOC = "V7"; NET "r[2]" LOC = "N7"; NET "g[0]" LOC = "P8"; NET "g[1]" LOC = "T6"; NET "g[2]" LOC = "V6"; NET "b[0]" LOC = "R7"; NET "b[1]" LOC = "T7"; NET "hs" LOC = "N6"; NET "vs" LOC = "P7";
相关推荐
vga控制器的verilog代码 很好用的……不是简单的色带……
此代码已经用FPGA验证过~完全可以使用
包含: 基于FPGA的VGA图像显示设计_桂淮濛.caj 基于FPGA的VGA接口实现和字符显示_贾伟伟.caj 基于FPGA的VGA接口显示技术_刘占军.caj ...基于Verilog的VGA控制器_惠为君.caj 基于Verilog的VGA显示控制电路设计_王涌.caj
实验内容 1、使用Verilog HDL设计一个VGA显示控制器,在VGA显示器(VGA:分辨率:640x480@60Hz)上显示RGB八色彩条。 2、VGA显示器(分辨率自定)上显示杭电logo+学号姓名,居中。
基于FPGA的VGA图形控制器的设计,蒋智军,,VGA(视频图形阵列)作为一种标准的显示接口得到广泛的应用。本文依据VGA显示原理,介绍了利用FPGA实现对VGA图形控制器的Verilog设计方法��
1、FPGA视频采集,包括OV5640和HDMI,有纯verilog的i2c控制器配置OV5640和HDMI芯片的寄存器; 2、图像三帧缓存,三帧缓存到DDR3,读写地址错开,保证图像输出稳定无撕裂; 3、图像字符叠加,利用VGA时序的特点,在...
用Verilog HDL 写的数字示波器的源代码,其中还包括VGA控制源代码
使用Verilog HDL语言编写的VGA控制器,可以在LCD上显示数据的IP
基于XILINX的XC3系列FPGA的VGA控制器的VHDL源程序.rar 实现在Sparton-3E板卡上的按键及开关的控制.zip 实现基于spartan3与CAN总线连接后的的汽车时速的模拟仿真.zip 扩频接收机设计实例.zip 摄像头的硬件函数(IP核)....
:随着高速图像处理技术的发展,VGA控制器知识产权...On—a·Programmable·Chip,SOPC)技术实现了VGA控制器IP核设计,并对该设计方案进行了测试和验证. 关键词:现场可编程门阵列;SOPC;VGA控制器IP核;Verilog HDL
在 VGA 控制器中,根据扫描的行或列数据,输出两种以上的不同颜色条纹(横条或竖条均可以)。利用上述控制器,在显示器上显示一张静态图片。使用低比特的颜色显示的方式来绕过 RAM 不足的问题。显示一张自定义的图片...
VGA控制器,它显示大小为256x256的图像,每个像素为256色(8位)。 该设计在Digilent的Nexys 3 FPGA板上进行了测试。 如果要更改图像,还可以共享Matlab / Octave代码,该代码可以缩放图像并将其转换为用于初始化...
本系统采用Basys2板为控制主板,用ps2键盘控制打地鼠,VGA显示开机画面,地鼠的出现和等级,失败和胜利画面。每个难度级别对应不同背景音乐,用蜂鸣器播放。用数码管显示当前的分数、命数,并记录最高分。可以直接下...
这里依据 VGA接口原理采用了 Verilog HDL语言对 Altera的 Cyclone系列 FPGA(现场可编程门阵列)进行了设计,并验证了结果。通过采用 FPGA设计 VGA接口 可以将要显示的数据直接送到显示器,节省了计算机的处理过程,加快...
verilog控制sdram,nios系统控制vga显示器,能够从sdram中读出图片在vga屏幕上显示,采用双缓冲,速度更快。 通过修改,能够用于视频监控处理。
OV7670摄像头模块负责图像的实时釆集工作。OV7670内部相关寄存器的配置信息被写入到控制模块,在程序运行时通过I²C总线与OV...图像数据经过图像处理模块(Robert)被发送到VGA控制器,经VGA接口电路,显示在VGA显器上。
直接在quartus 2上运行,然后烧进试验箱,可以播放梁祝,连线就两根,一根连20MHZ,一根连蜂鸣器输入端,另一头连拓展插槽的B01,按键1控制播放、暂停,模式5,可以用点个赞,
FPGA:使用 VGA 进行图形输出的简单迷宫游戏 概述 利用 Nexy3 Spartan-6 FPGA 板 ...包括控制台应用程序,用于将图像转换为合成器使用的 8 位 ROM Verilog 文件 FPGA 上的方向按钮用于移动 效果展示: ...
① 设计一个智能洗衣机控制器,能够实现洗衣,漂洗和脱水的功能。 ②要求能够使用按键模拟对洗衣机的控制,能够设置工作模式,为了便于观察,将洗衣机设定的工作模式(1~5)和整个过程所剩的工作时间用数码管显示出来...