非常厉害的哥哥 2020-12-05 12:17
浏览 33

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      

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 FPGA-SRIO初始化失败
    • ¥15 MapReduce实现倒排索引失败
    • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
    • ¥15 找一位技术过硬的游戏pj程序员
    • ¥15 matlab生成电测深三层曲线模型代码
    • ¥50 随机森林与房贷信用风险模型
    • ¥50 buildozer打包kivy app失败
    • ¥30 在vs2022里运行python代码
    • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
    • ¥15 求解 yolo算法问题