在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1895|回复: 4

[求助] VGA显示

[复制链接]
发表于 2013-4-25 09:12:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本人菜鸟一枚,刚学FPGA,在做VGA显示程序的时候总是不出颜色,但是屏幕被点亮了,只是显示不出颜色,已经调了好几天了,是在没辙啊,求大神的帮助,谢谢了!
这是我的程序,程序是从网上找的然后自己作了些修改:640×480@60
module displayVGA(     rst_n,

    clk,

    r,
    g,
    b,         
    hsync,

    vsync,

    valid,

    x_cnt,

    y_cnt

    );

input           rst_n   ;

input           clk     ;

output          hsync   ;

output          vsync   ;

output          valid   ;

output  [10:0]   x_cnt   ;

output  [10:0]   y_cnt   ;

output[7:0]     r;
output[7:0]     g;
output[7:0]     b;
reg             hsync   ;

reg             vsync   ;

reg             valid   ;

reg     [9:0]   x_cnt   ;

reg     [9:0]   y_cnt   ;

reg             clk_vga;

assign r=valid?8'hff:0;
assign g=valid?8'hff:0;
assign b=valid?8'hff:0;

always @ ( posedge clk or negedge rst_n )

if ( !rst_n )

       clk_vga<=0;
    else

       clk_vga<=~clk_vga;


always @ ( posedge clk_vga or negedge rst_n )

    if ( !rst_n )

        x_cnt <= 10'd0;

        else if ( x_cnt ==11'd799 )

        x_cnt <= 10'd0;

    else

        x_cnt <= x_cnt + 1'b1;


always @ ( posedge clk_vga or negedge rst_n )

    if ( !rst_n )

        y_cnt <= 10'd0;

        else if ( y_cnt == 11'd524 )
                  y_cnt <= 10'd0;     
        else if ( x_cnt == 11'd799 )

        y_cnt <= y_cnt + 1'b1;     

                  
always @ ( posedge clk_vga or negedge rst_n )

begin
    if ( !rst_n )

        begin

            hsync <= 1'b1;

        end

    else

        begin

            if(x_cnt==0)
               hsync <= 0;

            else if(x_cnt==11'd96)
                hsync <= 1;

        end
end      


always @ ( posedge clk_vga or negedge rst_n )

begin
    if ( !rst_n )

        begin

            vsync <= 1'b1;

        end

    else

        begin

           if(x_cnt==0)
               vsync <= 0;

            else if(x_cnt==11'd2)
                 vsync <= 1;

        end
end                  
                                    
always @ ( posedge clk_vga or negedge rst_n )                     

    if ( !rst_n )

        valid <= 1'b0;

    else

        valid <=    ( ( x_cnt > 11'd144 ) && ( x_cnt < 11'd784) &&

                      ( y_cnt > 11'd35)   && ( y_cnt < 11'd515) );  

endmodule
 楼主| 发表于 2013-4-25 11:10:57 | 显示全部楼层
求大神的帮助
发表于 2013-4-26 09:49:41 | 显示全部楼层
在弄什么东西啊,VGA不是模拟信号吗?怎么只有verilog的代码?
硬件结构呢?
发表于 2013-5-3 23:49:39 | 显示全部楼层
你的场同步信号产生都不对。
产生vsync的条件要修改下。应该是 Y_CNT
还有你要生成条纹,不可能RGB三通道的值都一样。
发表于 2013-5-9 14:24:42 | 显示全部楼层
你的rgb都是FF肯定出的是白屏,给rgb赋不同的值比如ff00ff就会出紫色
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 21:53 , Processed in 0.021380 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表