zoukankan      html  css  js  c++  java
  • vga显示彩条

    vga显示驱动程序可分为扫描行列和行列同步两个部分

    //注意:只有在有效区域内给vga赋值才会有颜色变化

    assign  vga_b        = isready ? vga_s[7:0]  :8'd0;
    assign  vga_g        = isready ? vga_s[15:8] :8'd0;
    assign  vga_r        = isready ? vga_s[23:16]:8'd0;

    扫描行列

    /*********************************/
    //扫描x,y;
    reg [10:0] count_x;//计数列
    reg [10:0] count_y;//计数行
    always @(posedge clk or negedge rst_n)
        if(!rst_n)
            count_x <= 1'd0;
        else if(count_x == 11'd1056)
            count_x <= 1'd0;
        else 
            count_x <= count_x + 1'b1;
    always @(posedge clk or negedge rst_n)
        if(!rst_n)
            count_y <= 1'd0;
        else if(count_y == 11'd625)
            count_y <= 1'd0;
        else if(count_x == 11'd1056)
            count_y <= count_y +1'd1;
        else    
            count_y <= count_y;
            
    /************************************/

    //行列同步 这个由vga时序所决定的

    /************************************/
    //行列同步
    assign VGA_VS       = (count_y <= 11'd3) ? 1'b0 : 1'b1;
    assign VGA_HS       = (count_x <= 11'd80)? 1'b0 : 1'b1;
    assign VGA_SYNC_N   = (count_y <= 11'd3) ? 1'b0 : 1'b1;
    assign VGA_BLANK_N  = (count_x <= 11'd80)? 1'b0 : 1'b1;
    /**************************************/

    另外要把x,y的坐标提取出来

    //x,y坐标
    wire loca_x,loca_y;
    assign loca_x = isready ? count_x-11'd240 : 11'd0;
    assign loca_y = isready ? count_y-11'd24  : 11'd0;
    /*****************************************/

    //显示彩条颜色

    //显示颜色
    reg [23:0] vga_s;
    always @(posedge clk or negedge rst_n)
        if(!rst_n)
            vga_s <= 24'hffffff;
        else if(count_y> 11'd0    && count_y <= 11'd100)
            vga_s <= 24'hff0000;
        else if(count_y >11'd100  && count_y <= 11'd200)
            vga_s <= 24'hff8c00;
        else if(count_y >11'd200  && count_y <= 11'd300)
            vga_s <= 24'hffff00;
        else if(count_y >11'd300  && count_y <= 11'd400)
            vga_s <= 24'h00fa9a;
        else if(count_y >11'd400  && count_y <= 11'd500)
            vga_s <= 24'h40e0d0;
        else if(count_y >11'd500  && count_y <= 11'd600)
            vga_s <= 24'h0000ff;
            
    /**********************************************/
    assign  VGA_CLK        =    clk;
  • 相关阅读:
    627. Swap Salary
    176. Second Highest Salary
    596. Classes More Than 5 Students
    183. Customers Who Never Order
    181. Employees Earning More Than Their Managers
    182. Duplicate Emails
    175. Combine Two Tables
    620. Not Boring Movies
    595. Big Countries
    HDU 6034 Balala Power! (贪心+坑题)
  • 原文地址:https://www.cnblogs.com/bixiaopengblog/p/6003868.html
Copyright © 2011-2022 走看看