FPGA控制VGA显示输出

哪位大佬谤满看看哪里有问题

module VGA(CLK,buttom1,buttom2,buttom3,HS,VS,R,G,B);
    
    input CLK;
    input buttom1;
    input buttom2;
    input buttom3;
    output reg HS=0;
    output reg VS=0;
    output[4:0]   R;        //video red data
    output[5:0]   G;         //video green data
    output[4:0]   B;
    reg[4:0]   R=5'b11111;        //video red data
    reg[5:0]   G=6'b111111;         //video green data
    reg[4:0]   B=5'b11111;
    
    integer HSnumber=0;
    integer VSnumber=0;
    integer state=1;
    
    IPCORE IPCORE(
                    .areset(),
                    .inclk0(CLK),
                    .c0(clk_40m),
                    .locked()
                    );
    
    
    always @(posedge clk_40m)
    begin     
    case(state)
        1: begin
        if(VSnumber==4*1056-1)
            begin
            VS<=1;
            VSnumber<=0;
            state<=2;
            end
            else
            begin
            VS<=1;
            VSnumber<=VSnumber+1;
            end
            end
       2:begin
         if(VSnumber==23*1056-1)
            begin
            VS<=0;
            VSnumber<=0;
            state<=3;
            end
            else
            begin
            VS<=0;
            VSnumber<=VSnumber+1;
            end
            end
        3:begin
         if(VSnumber==600*1056-1)
            begin
            VS<=0;
            VSnumber<=0;
            state<=4;
            end
            else
            begin
            VS<=0;
            VSnumber<=VSnumber+1;
            end
            
           end
            
            4:begin
         if(VSnumber==1*1056-1)
         begin
         VS<=0;
         VSnumber<=0;
         state<=1;
         end
         else
         begin
         VS<=0;
         VSnumber<=VSnumber+1;
         end
         end
         
         endcase
        
     end    
     
   always @(posedge clk_40m)
          begin
         if(HSnumber<128)
             begin
             HS<=1;
             HSnumber<=HSnumber+1;
             end
             
         if(HSnumber>=128&&HSnumber<216)
             begin
             HS<=0;
             HSnumber<=HSnumber+1;
             end
             
         if(HSnumber>=216&&HSnumber<1016)
             begin
                HS<=0;
                 HSnumber<=HSnumber+1;
             end
             
         if(HSnumber>=1016&&HSnumber<1055)
             begin
             HS<=0;
             HSnumber<=HSnumber+1;
             end
             
         if(HSnumber==1055)
             begin
             HS<=0;
             HSnumber<=0;
             end
             end
             
          
endmodule      

查看全部
weixin_44847156
非常厉害的哥哥
2020/12/05 12:17
  • 开发语言
  • 点赞
  • 收藏
  • 回答
    私信

0个回复