关于VGA显示实验的问题

今天做了一个关于VGA的显示实验,但是由于产生的25M时钟不正确所以一直没有图像产生。刚开始的程序如下

虽然仿真的时候出现了时序,但是在下载到硬件的时候不正确。

后来改成

结果就正确了。

另外之前关于分频时用边沿触发和用电平触发的结果是不一样的。

下面是VGA实验使用到了ADV7123在DE115平台进行的实验。640*480*25M水平同步信号和场同步信号可以 根据VGA的时序图进行计算。

顶层文件://THIS IS ABOUT VGA TEST 实验结果整个屏幕是红色

module VGA(CLK_50M,VGA_R,VGA_G,VGA_B,VGA_CLK,

VGA_SYNC_N,VGA_BLANK_N,VGA_VS,VGA_HS);

input CLK_50M;//THE INPUT TIME CLOCK

output [7:0]VGA_R;//OUTPUT RED PIX

output [7:0]VGA_B;//blue pix

output[7:0]VGA_G;//GREEN PIX

output VGA_CLK;//ADC7123 TIME CLOCK

output VGA_SYNC_N; //同步信号

output VGA_BLANK_N;//消隐信号

output  VGA_HS;//水平同步

output  VGA_VS;//场同步

//wire CLK_25M;

//pll_25m U1(CLK_50M,CLK_25M);

reg count=0;

//reg CLK_25M;

/*[email protected](posedge CLK_50M)

begin

count<=count+1;

if(count)

CLK_25M<=~CLK_25M;

end*/

wire CLK_25M;

[email protected](posedge CLK_50M)

begin

count<=count+1;

end

assign CLK_25M=count;

VGA_CONTRAL VGA_TEST(CLK_25M,VGA_R,VGA_G,VGA_B,VGA_CLK,

VGA_SYNC_N,VGA_BLANK_N,VGA_VS,VGA_HS);

endmodule

////////////////////////////////////

module VGA_CONTRAL(CLK_25M,VGA_R,VGA_G,VGA_B,VGA_CLK,

VGA_SYNC_N,VGA_BLANK_N,VGA_VS,VGA_HS);

input CLK_25M;//THE INPUT TIME CLOCK

output [7:0]VGA_R;//OUTPUT RED PIX

output [7:0]VGA_B;//blue pix

output[7:0]VGA_G;//GREEN PIX

output VGA_CLK;//ADC7123 TIME CLOCK

output VGA_SYNC_N; //同步信号

output VGA_BLANK_N;//消隐信号

output reg VGA_HS;//水平同步

output reg VGA_VS;//场同步

//水平参数

parameter H_SYNC_CYC=95;

parameter H_SYNC_BACK=48;

parameter H_SYNC_ACT=635;

parameter H_SYNC_FRONT=15;

parameter H_SYNC_TOTAL=793;

//垂直参数

parameter V_SYNC_CYC=2;

parameter V_SYNC_BACK=33;

parameter V_SYNC_ACT=480;

parameter V_SYNC_FRONT=10;

parameter V_SYNC_TOTAL=525;

parameter H_START=H_SYNC_CYC+H_SYNC_BACK;

parameter V_START=V_SYNC_CYC+V_SYNC_BACK;

reg [9:0]HCOUNT=0;

reg [9:0]VCOUNT=0;

assign VGA_R=((HCOUNT>=H_START)&&(HCOUNT<=H_START+H_SYNC_ACT)&&

(VCOUNT>=V_START)&&(VCOUNT<V_START+V_SYNC_ACT)) ? 200:0;

assign VGA_G=((HCOUNT>=H_START)&&(HCOUNT<=H_START+H_SYNC_ACT)&&

(VCOUNT>=V_START)&&(VCOUNT<V_START+V_SYNC_ACT)) ? 0:0;

assign VGA_B=((HCOUNT>=H_START)&&(HCOUNT<=H_START+H_SYNC_ACT)&&

(VCOUNT>=V_START)&&(VCOUNT<V_START+V_SYNC_ACT)) ? 0:0;

assign VGA_CLK=CLK_25M;

assign VGA_SYNC_N=1‘b0;

assign VGA_BLANK_N=VGA_HS&VGA_VS;

[email protected](posedge CLK_25M)

begin

if(HCOUNT<H_SYNC_TOTAL)

HCOUNT<=HCOUNT+1;

else

begin

HCOUNT<=0;

if(VCOUNT<V_SYNC_TOTAL)

VCOUNT<=VCOUNT+1;

else

VCOUNT<=0;

if(VCOUNT<=V_SYNC_CYC)

VGA_VS<=0;

else

VGA_VS<=1;

end

if(HCOUNT<=H_SYNC_CYC)

VGA_HS<=0;

else

VGA_HS<=1;

end

endmodule

时间: 2024-10-06 00:15:49

关于VGA显示实验的问题的相关文章

基于FPGA的VGA显示静态图片

终于熬到暑假了,记过三四周的突击带考试,终于为我的大二画上了一个完整的句号,接下来终于可以静心去做自己想做的事情了,前一阵子报了一个线上培训班,学学Sobel边缘检测,之前一直在学习图像处理,但是因为一直看人家的代码,到后来难免有点空虚.所以说自己狠下心来,报了一个线上培训班,重新学习一下,自己设计Sobel边缘检测,势要摆脱抄别人代码的魔咒.所以这次图像显示部分和在彩色条纹中显示一副图片的代码,全部是我自己设计的,虽然不是什么大工程,但是还是满满的成就感,这次用的时间比较久,因为使用的是新板子

进阶项目(7)VGA显示程序设计讲解

 写在前面的话 可能大家觉得之前设计都是各种看波形,比较的单一.乏味.那么本节的内容,一定可以带给大家全新的感受,现代电子技术中,图像处理技术可谓是发展迅猛,其带给大家独特的视觉感受也总是那么的赏心悦目.这里,梦翼师兄和大家一起敲开图像世界的大门,让我们一起为之痴迷,为之陶醉. 什么是VGA? VGA(Video Graphics Array,视频图形阵列),是 IBM 于1987年提出的一个使用类比讯号的电脑显示标准.这个标准已对于现今的个人电脑市场已经十分过 时.即使如此,VGA 仍然是很多

VGA显示

module vga_control( //syste, clk input clk, input rst_n, //vga interface input [9:0] hx, input [9:0] vy, output reg [23:0] rgb, //pinlv interface input [31:0] pinlv ); reg [6:0] add; wire [31:0] q; wire display_value; assign display_value = ((hx >0 &am

VGA显示SDRAM内容_1&mdash;&mdash;DE1-SOC学习笔记(3)

在这篇文以及下面几篇文里里使用HPS-FPGA-Slave实现HPS读取一张bmp图片,发送至SDRAM,然后由自定义的IP读取SDRAM输出至VGA显示. 不妥当的地方还需多多指教 IP逻辑设计 VGA时序控制模块,选择mod控制输出不同的分辨率 //vga timing ctrl module // systemverilog // //by Sorin module vga_timctrl( input clk,//200MHz input [1:0] mod, //input rst,

NIOS2随笔——JPEG解码与VGA显示

1. 系统概述 本设计采用NIOS2 32位处理器,通过SPI接口将SD/TF卡中的JPEG图片数据读取到内存中,SD/TF卡的文件系统为FAT32,NIOS2软件实现JPEG解码后,启动framereader和Clocked Video Output模块,最终在VGA显示器上显示JPEG图像,系统框图如下: 2. JPEG格式 JPEG(Joint Photographic Experts Group)是第一个国际图像压缩标准,提供了良好的压缩性能的同时,具有较好的图像质量,被广泛应用电子产品

VmodCAM图像采集 VGA显示

先上图 总体框图 效果图 效果不是很好,因为暂时用的是zedboard自带的VGA,其只能RGB只有3*3*3的彩色度 VmodCAM原理图 VmodCAM的zedboard管脚约束见:http://blog.csdn.net/xiabodan/article/details/26144749 VmodCAM的zedboard初始化见    :http://blog.csdn.net/xiabodan/article/details/26346935 初始化采用SDK 中C编程,没有用HDL,原

基于FPGA的VGA显示设计(二)

上一篇:基于FPGA的VGA显示设计(一)     参照 CrazyBingo 的 基于FPGA的VGA可移植模块终极设计代码  的工程代码风格,模块化处理了上一篇的代码,并增加了一点其它图形. 顶层模块: 1 /**************************************************** 2 * Module Name : VGA_color_all.v 3 * Author : yllinux 博客:http://www.cnblogs.com/yllinux/

VGA系列之一:VGA显示网络图片

一休哥是在读研究生的时候开始正式接触FPGA的,之所以这么说呢,是因为之前本科参加电赛的时候也学过一点FPGA的知识,可惜学习周期太短导致那次电赛惨败.可能世上就是有这么巧的事,刚上研究生的第一天,老板就给了我一块FPGA板,让我自己玩去,从此就踏上了这条不归路. 好了,闲话不多说,接下来我们来讲讲如何用FPGA实现VGA显示网络图片.这里我们先提出几个问题,通过解决这几个问题,从而实现工程效果. 1.  如何用FPGA实现VGA显示 2.  网络图片和VGA显示有何区别 3.  VGA如何显示

基于FPGA驱动VGA显示图片的小问题

学习VGA显示图片的过程中,遇到了一个小问题,我在显示屏上开了一个60x60的框,放了一张图片进去显示,但是最终的结果如下图所示. 出现了一个竖黑边,看了看代码,分析了一下逻辑没问题,然而看这个显示那肯定是有问题的,然后仿真了一下看看,时序图如下. 正确的时序 错误的时序 我这是的是当行计数器记到200和场计数器记到200的时候显示ROM中的数据,在显示屏中开出一个60x60的正方形显示区域,对比上两幅图可得,第二幅图在当行计数器计数到200的时候lcd_data本应该是ROM里的数据,但是却输