VGA显示不出颜 {MOD}

2019-07-16 01:43发布

本人菜鸟一枚,刚学FPGA,在做VGA显示程序的时候总是不出颜 {MOD},但是屏幕被点亮了,只是显示不出颜 {MOD},已经调了好几天了,是在没辙啊,求大神的帮助,谢谢了!
这是我的程序,程序是从网上找的然后自己作了些修改: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




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
xiaoyumao333
1楼-- · 2019-07-16 18:48
Huntersjm 发表于 2013-4-26 20:55
快速扫了一遍,没看到错误。但是我想问你,你使用的时钟频率是多少?需要25MHz哦。 ...

谢谢啊,找到错误了,有一个控制信号没有接引脚。。。时钟是50的,所以进行了分频啊,也就是25了

xiaoyumao333
2楼-- · 2019-07-16 21:01
mallon_ml 发表于 2013-4-26 22:51
只看这一句,就知道你肯定看不到彩 {MOD},因为会显示白 {MOD}或者黑 {MOD},三个通道都是255或0。
assign r=vali ...

我是想显示白 {MOD}的啊,当时就是显示不出来,还好现在找到错误了,有一个控制信号没有接引脚。。。还是谢谢你的帮助啊
liumin102003
3楼-- · 2019-07-17 02:56
你好,我这里也出现了这个问题,你说的控制信号没有接引脚是指dis_ctrl吧,但是原程序中不是给它赋值1‘b1了吗?我想知道楼主是怎么解决这个问题的,现在我也在做这个,跟你一样的问题

一周热门 更多>