今天做了一个关于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. SAS学习笔记16 SAS创建计数(枚举)变量

  2. Comet OJ Contest #3

    A:签到. #include<bits/stdc++.h> using namespace std; #define ll long long #define inf 1000000010 ...

  3. Linux Mysql 备份与还原

    1. 备份 cd /var/lib/mysql //进入到MySQL库目录 mysqldump -u root -p 数据库>/root/backup/数据库.sql 然后输入密码 2. 还原 ...

  4. gin框架初识(先跑一个简单demo) ①

    Gin 是一个 go 写的 web 框架,具有高性能的优点.官方地址:https://github.com/gin-gonic/gin 先跑一个demo(先安装gin框架,具体见官方地址): 1.vs ...

  5. vue-cli3 使用雪碧图

    //vue.config.js const path = require("path"); const SpritesmithPlugin = require("webp ...

  6. React/事件系统

    React基于虚拟DOM实现了一个合成事件层,我们所定义的事件处理器会接收到一个合成事件对象的实例事件处理. 并且所有事件都自动绑定在最外层上.如果需要访问原生事件对象,可以使用nativeEvent ...

  7. form表单提交后结果乱码的解决方法

    1.产生乱码原因:表单提交使用的method="get",get方式数据都是通过地址栏传输,数据会以iso-8859-1方式传输,因此产生乱码 2.概念:URI: Uniform ...

  8. /sockjs-node/info 报错问题

    首先 sockjs-node 确实是维持全双工通信用的,关键在于为什么要有这个东西,其实其作用就是保证我们在改完代码重新编译之后,能够通知浏览器重新加载变更结果(我也是因为之前都可以改完代码之后浏览器 ...

  9. gitlab中的几个常用界面(runner管理、gitlab-ci.yml管理、runner token管理、新建用户、拉用户入工程、拉用户入组、复制工程导入组)

    目录: 1.runner管理 2.gitlab-ci.yml管理 3.runner token管理 4.新建用户 5.拉用户入工程 6.拉用户入组 7.复制工程导入组 1.runners界面 http ...

  10. Microsoft 中间语言