module vga( clk, hsync, vsync, video_on, pixel_tick, pixel_x, pixel_y, reset );
    input wire clk, reset;
    output wire [9:0] pixel_x, pixel_y;
    output wire hsync, vsync, video_on;
    output reg pixel_tick;


     localparam   HD=640, //horizontal display area
                  HF=48,  //horizontal front porch
                  HB=16,  //horizontal back porch
                  HFB=96,  //horizontal flyback
                  VD=480, //vertical display area
                  VT=10,  //vertical top porch
                  VB=33,  //vertical bottom porch
                  VFB=2;  //vertical flyback  


    always @(posedge clk)
        pixel_tick <= ~pixel_tick  //25 MHZ signal is generated.

    assign line_end = h_count == HD+HF+HB+HFB-1;
    assign page_end = v_count == VD+VF+VB+VFB-1;


    always @(posedge pixel_tick)
        if (line end)
            h_count <= 0;
        else
            h_count <= h_count+1;

    always @(posedge(line_end)
        if (page_end)
            v_count <= 0;
        else
            v_count <= v_count+1;

results matching ""

    No results matching ""