最专业的FPGA ZYNQ论坛--黑金动力社区

 找回密码
 注册
查看: 516|回复: 1

VGA求助。

[复制链接]
nicksasaki 发表于 2018-5-11 19:30:40 | 显示全部楼层 |阅读模式

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

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

x
实验板为AV4075,自己编写的一个VGA颜色图片程序一直没办法在显示屏上显示,一直是无信号,求大神讲解。时钟是连接的系统时钟,程序如下
module vga_drive(
        //system signals
        input                                                clk                                        ,
        input                                                rst_n                                ,
        //VGA
         // VGA
    output  wire            vga_hsync               ,      
    output  wire            vga_vsync               ,      
    output  wire            [7:0]          vga_r                   ,
        output        wire                [7:0]        vga_g                                        ,
        output        wire                [7:0]        vga_b                       



);
//=========================define parameters=====================
localparam     H_TOTAL_TIME    =       1056                    ;
localparam      H_ADDR_TIME     =       800                     ;
localparam      H_SYNC_TIME     =       128                     ;
localparam      H_BACK_PORCH    =       88                      ;
localparam      V_TOTAL_TIME    =       628                     ;
localparam      V_ADDR_TIME     =       600                     ;
localparam      V_SYNC_TIME     =       4                       ;
localparam      V_BACK_PORCH    =       23                      ;

reg     [10:0]                  cnt_h                           ;      
reg     [ 9:0]                  cnt_v                           ;

reg                [7:0]          vga_r_r;
reg                [7:0]        vga_g_r;
reg                [7:0]        vga_b_r;
//=========================main        code==============================
always@(posedge clk or negedge rst_n)begin
        if(!rst_n)
                cnt_h        <=        0;
        else if(cnt_h==H_TOTAL_TIME)
                cnt_h        <=        0;
        else
                cnt_h        <=        cnt_h+1'b1;
       
end

always@(posedge clk or negedge rst_n)begin
        if(!rst_n)
                cnt_v        <=        0;
        else if(cnt_h==H_TOTAL_TIME)begin
                        if(cnt_v==V_TOTAL_TIME)cnt_v<=0;
                        else cnt_v<=cnt_v+1'b1;
        end
end
       
always  @(posedge clk or negedge rst_n) begin
        if(!rst_n )
                begin
                                                vga_r_r        <=8'd0;
                                                vga_g_r        <=8'd0;
                                                vga_b_r        <=8'd0;
                                        end
        else if(cnt_v >= (V_SYNC_TIME + V_BACK_PORCH) && cnt_v < (V_SYNC_TIME + V_BACK_PORCH + V_ADDR_TIME)) begin
                if(cnt_h >= (H_SYNC_TIME + H_BACK_PORCH - 1) && cnt_h < (H_SYNC_TIME + H_BACK_PORCH - 1 + 200))begin
                                                vga_r_r        <=8'b1111_1111;
                                                vga_g_r        <=0;
                                                vga_b_r        <=0;
                        end               
                else if(cnt_h >= (H_SYNC_TIME + H_BACK_PORCH - 1 + 200) && cnt_h < (H_SYNC_TIME + H_BACK_PORCH - 1 + 400))begin
                                                vga_r_r        <=0;
                                                vga_g_r        <=8'b1111_1111;
                                                vga_b_r        <=0;
                                                end
                else if(cnt_h >= (H_SYNC_TIME + H_BACK_PORCH - 1 + 400) && cnt_h < (H_SYNC_TIME + H_BACK_PORCH - 1 + 600))begin
                        vga_r_r        <=0;
                                                vga_g_r        <=0;
                                                vga_b_r        <=8'b1111_1111;
                                                end
                else if(cnt_h >= (H_SYNC_TIME + H_BACK_PORCH - 1 + 600) && cnt_h < (H_SYNC_TIME + H_BACK_PORCH - 1 + H_ADDR_TIME))begin
                        vga_r_r        <=8'b1111_1111;
                                                vga_g_r        <=8'b1111_1111;
                                                vga_b_r        <=8'b1111_1111;
                                                end
                else        begin
                                                vga_r_r        <=8'd0;
                                                vga_g_r        <=8'd0;
                                                vga_b_r        <=8'd0;
                                end

        end
        else                begin
                                                vga_r_r        <=8'd0;
                                                vga_g_r        <=8'd0;
                                                vga_b_r        <=8'd0;
                                        end
                end
       


        assign        vga_r    =        vga_r_r  ;
    assign        vga_g    =        vga_g_r  ;
    assign        vga_b    =        vga_b_r  ;

assign  vga_hsync       =       (cnt_h < H_SYNC_TIME) ? 1'b1 : 1'b0;
assign  vga_vsync       =       (cnt_v < V_SYNC_TIME) ? 1'b1 : 1'b0;
endmodule



 楼主| nicksasaki 发表于 2018-5-11 20:00:40 | 显示全部楼层
加了一个PLL 换成40mVGA输入时钟  还是没有信号
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|@2009-2016 芯驿电子科技(上海)有限公司|小黑屋|手机版|Archiver|黑金动力社区 ( 沪ICP备11013590沪公网安备 31011702000003号

GMT+8, 2018-12-15 11:22 , Processed in 0.071114 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表