今天做了一个关于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;
/*always@(posedge CLK_50M)
begin
count<=count+1;
if(count) 
CLK_25M<=~CLK_25M;
end*/
wire CLK_25M;
always@(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;
 
 
 
always@(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

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

  1. 基于FPGA的VGA显示静态图片

    终于熬到暑假了,记过三四周的突击带考试,终于为我的大二画上了一个完整的句号,接下来终于可以静心去做自己想做的事情了,前一阵子报了一个线上培训班,学学Sobel边缘检测,之前一直在学习图像处理,但是因为 ...

  2. 基于FPGA的Uart接收图像数据至VGA显示

    系统框图 前面我们设计了基于FPGA的静态图片显示,接下来我们来做做基于FPGA的动态图片显示,本实验内容为:由PC端上位机软件通过串口发送一幅图像数据至FPGA,FPGA内部将图像数据存储,最后扫描 ...

  3. 基于FPGA的VGA显示实验设计

    基于FPGA的VGA显示实验设计 成果展示(优酷视频): 视频: 基于FPGA的VGA显示技术(手机控制) http://v.youku.com/v_show/id_XNjk4ODE3ODUy.htm ...

  4. VmodCAM图像采集 VGA显示

    先上图 总体框图 效果图 效果不是很好,因为暂时用的是zedboard自带的VGA,其只能RGB只有3*3*3的彩色度 VmodCAM原理图 VmodCAM的zedboard管脚约束见:http:// ...

  5. vga显示彩条

    vga显示驱动程序可分为扫描行列和行列同步两个部分 //注意:只有在有效区域内给vga赋值才会有颜色变化 assign vga_b = isready ? vga_s[:] :'d0; assign ...

  6. 纠错:基于FPGA串口发送彩色图片数据至VGA显示

    今天这篇文章是要修改之前的一个错误,前面我写过一篇基于FPGA的串口发送图片数据至VGA显示的文章,最后是显示成功了,但是显示的效果图,看起来确实灰度图,当时我默认我使用的MATLAB代码将图片数据转 ...

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

    学习VGA显示图片的过程中,遇到了一个小问题,我在显示屏上开了一个60x60的框,放了一张图片进去显示,但是最终的结果如下图所示. 出现了一个竖黑边,看了看代码,分析了一下逻辑没问题,然而看这个显示那 ...

  8. FPGA驱动VGA显示静态图片

    一 .前言 本文设计思想采用明德扬至简设计法.VGA是最常见的视频显示接口,时序也较为简单.本文从利用显示屏通过VGA方式显示测试图案及静态图片着手带大家接触图像显示应用,算是为后续VGA显示摄像头采 ...

  9. verilog实现VGA显示方块屏幕保护

    verilog实现VGA显示方块屏幕保护 输入和输出 时钟信号 clk 复位信号 reset rgb三颜色输出 [2:0] r,g, [1:0] b 行信号输出 hs 列信号输出 vs 参数设定 设定 ...

随机推荐

  1. 数据库设计_ERMaster安装使用_PowerDesigner数据设计工具

    数据库设计 1. 说在前面 项目开发的流程包括哪些环节 需求调研[需求调研报告]-- 公司决策层 (1) 根据市场公司需求分析公司是否需要开发软件来辅助日常工作 (2) 公司高层市场考察,市场分析,决 ...

  2. s5p6818 Overview

    S5P6818: 64bit Octa-Core, High Performance, Advanced 3D Graphics, Full-HD Multimedia Video, A53 Core ...

  3. ubuntu svn 安装

    deepin@deepin:~$ sudo apt-get install rabbitvcs-rabbitvcs-cli rabbitvcs-core rabbitvcs-gedit rabbitv ...

  4. ActiveMQ 消息存储持久化

    ActiveMQ提供了一个插件式的消息存储,类似于消息的多点传播,主要实现了如下几种: AMQ消息存储-基于文件的存储方式,是以前的默认消息存储 KahaDB消息存储-提供了容量的提升和恢复能力,是现 ...

  5. 把zTree前的展开收起图标改为三角形,且只有在点击三角形图标时才展开子节点解决方案

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta ht ...

  6. (详细)JAVA使用JDBC连接MySQL数据库(2)- MySQL Connectors

    欢迎任何形式的转载,但请务必注明出处. 本节内容 mysql connectors介绍 下载安装 在java中配置 点击进入官网下载 一.mysql connectors介绍 mysql connec ...

  7. z-index和transform,你真的了解吗?

    z-index和transform是CSS中的属性,但很少同学将二者联系到一起,感觉他们八杆子打不上.事实真的是这样吗?如果你也不能确认,这篇文章就值得你花点时间阅读.因为阅读完了,你会有所收获的. ...

  8. MySQL数据库的创建&删除&选择

    1.MySQL数据库的创建 方法1和2      方法3.使用PHP脚本 PHP中使用mysqli_query函数来创建或删除MySql数据库 mysqli_query函数:两个参数 返回值:执行成功 ...

  9. windows系统编辑过的脚本文件,在linxu上执行报错 /bin/sh^M: bad interpreter: No such file or directory

    如题! 现象: 当时的场景是这样的:我在IDEA中编辑了项目中的脚本sh,然后利用maven打成zip包.把zip包上传到linux服务器解压运行. 当在linux服务器上运行该sh脚本文件时,提示错 ...

  10. smart_ptr之shared_ptr

    智能指针的概念 c++11标准和boost都提供了智能指针的功能.智能指针是普通指针的封装,智能指针是一个对象,对象里面包含了原生指针.可以使用智能指针对象的get()方法可获得封装在里面的原生指针. ...