OpenCores
URL https://opencores.org/ocsvn/alternascope/alternascope/trunk

Subversion Repositories alternascope

[/] [alternascope/] [trunk/] [VGA/] [d_VGAdriver.v] - Diff between revs 11 and 14

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 11 Rev 14
Line 1... Line 1...
//==================================================================//
//==================================================================//
// File:    d_VGAdriver.v                                           //
// File:    d_VGAdriver.v                                           //
// Version: 0.0.0.2                                                 //
// Version: 0.0.0.3                                                 //
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//
// Copyright (C) Stephen Pickett                                    //
// Copyright (C) Stephen Pickett                                    //
//   Jun 09, 2005                                                   //
//   Jun 09, 2005                                                   //
//                                                                  //
//                                                                  //
// This program is free software; you can redistribute it and/or    //
// This program is free software; you can redistribute it and/or    //
Line 73... Line 73...
input[8:0] TRIGGER_LEVEL;
input[8:0] TRIGGER_LEVEL;
input SHOW_LEVELS;
input SHOW_LEVELS;
output[9:0] HCNT, VCNT;
output[9:0] HCNT, VCNT;
input[2:0] RGB_CHAR;
input[2:0] RGB_CHAR;
 
 
output[15:0] ram_vshift;
 
 
 
 
 
 
 
 
 
//----------------------//
//----------------------//
// WIRES / NODES        //
// WIRES / NODES        //
Line 99... Line 97...
 
 
 
 
//----------------------//
//----------------------//
// REGISTERS            //
// REGISTERS            //
//----------------------//
//----------------------//
//reg CLK_25MHZ;      // General system clock for VGA timing
 
wire CLK_25MHZ = CLK_VGA;
wire CLK_25MHZ = CLK_VGA;
reg [9:0] hcnt;     // Counter - generates the H_SYNC signal
reg [9:0] hcnt;     // Counter - generates the H_SYNC signal
reg [9:0] vcnt;     // Counter - counts the H_SYNC pulses to generate V_SYNC signal
reg [9:0] vcnt;     // Counter - counts the H_SYNC pulses to generate V_SYNC signal
reg[2:0]  vga_out;
reg[2:0]  vga_out;
 
 
Line 111... Line 108...
// FUNCTIONAL DEFINITIONS                                           //
// FUNCTIONAL DEFINITIONS                                           //
//==================================================================//
//==================================================================//
assign HCNT = hcnt;
assign HCNT = hcnt;
assign VCNT = vcnt;
assign VCNT = vcnt;
 
 
//------------------------------------------------------------------//
 
// CLOCK FUNCTIONS                                                  //
 
//------------------------------------------------------------------//
 
//always @ (posedge CLK_50MHZ or posedge MASTER_RST)
 
//        if (MASTER_RST == 1'b1)
 
//            CLK_25MHZ <= 1'b0;
 
//        else
 
//            CLK_25MHZ <= ~CLK_25MHZ;
 
 
 
 
 
//------------------------------------------------------------------//
//------------------------------------------------------------------//
// SYNC TIMING COUNTERS                                             //
// SYNC TIMING COUNTERS                                             //
//------------------------------------------------------------------//
//------------------------------------------------------------------//
always @ (posedge CLK_25MHZ or posedge MASTER_RST) begin
always @ (posedge CLK_25MHZ or posedge MASTER_RST) begin
Line 185... Line 173...
        VGA_OUTPUT = P_yellow;
        VGA_OUTPUT = P_yellow;
    end else if(SHOW_LEVELS == 1'b1 && vcnt == (TRIGGER_LEVEL+1'b1) && hcnt >= 10'd556 && hcnt <= 10'd558) begin
    end else if(SHOW_LEVELS == 1'b1 && vcnt == (TRIGGER_LEVEL+1'b1) && hcnt >= 10'd556 && hcnt <= 10'd558) begin
        VGA_OUTPUT = P_yellow;
        VGA_OUTPUT = P_yellow;
    end else if(SHOW_LEVELS == 1'b1 && vcnt == (TRIGGER_LEVEL-1'b1) && hcnt == 10'd557) begin
    end else if(SHOW_LEVELS == 1'b1 && vcnt == (TRIGGER_LEVEL-1'b1) && hcnt == 10'd557) begin
        VGA_OUTPUT = P_yellow;
        VGA_OUTPUT = P_yellow;
///*
 
    //------------------------------------------------------------------------------//
    //------------------------------------------------------------------------------//
    // MOVE THE WAVEFORM TO THE 'TOP'                                               //
    // MOVE THE WAVEFORM TO THE 'TOP'                                               //
    end else if(vga_out != 0) begin
    end else if(vga_out != 0) begin
        VGA_OUTPUT = vga_out;
        VGA_OUTPUT = vga_out;
//*/
 
    //------------------------------------------------------------------------------//
    //------------------------------------------------------------------------------//
    // TOP, BOTTOM, LEFT AND RIGHT GRID LINES                                       //
    // TOP, BOTTOM, LEFT AND RIGHT GRID LINES                                       //
    end else if(vcnt == 10'd0 || vcnt == 10'd399 || vcnt == 10'd441) begin
    end else if(vcnt == 10'd0 || vcnt == 10'd399 || vcnt == 10'd441) begin
        VGA_OUTPUT = P_cyan;
        VGA_OUTPUT = P_cyan;
    end else if(hcnt == 10'd0 || hcnt == 10'd639) begin
    end else if(hcnt == 10'd0 || hcnt == 10'd639) begin
Line 232... Line 218...
//       ...
//       ...
//     row 15: ram_addr = 24 and 25 for each pxl
//     row 15: ram_addr = 24 and 25 for each pxl
//     row 16: ram_addr = 23 and 25 for each pxl *
//     row 16: ram_addr = 23 and 25 for each pxl *
//     row 17: ram_addr = 23 and 25 for each pxl *
//     row 17: ram_addr = 23 and 25 for each pxl *
//       ...
//       ...
/*reg[9:0]  ram_hcnt;*/
 
reg[4:0]  ram_vcnt;
reg[4:0]  ram_vcnt;
reg[15:0] ram_vshift;
reg[15:0] ram_vshift;
 
 
/*
 
always @ (posedge CLK_25MHZ or posedge MASTER_RST) begin
 
    if(MASTER_RST == 1'b1) begin
 
        ram_hcnt <= 10'd639;
 
    end else if(hcnt >= 10'd143 && hcnt <= 782) begin
 
        if(ram_hcnt == 10'd639)
 
            ram_hcnt <= 10'b0;
 
        else
 
            ram_hcnt <= ram_hcnt + 1'b1;
 
    end else begin
 
        ram_hcnt <= 10'd639;
 
    end
 
end
 
*/
 
 
 
always @ (posedge CLK_25MHZ or posedge MASTER_RST) begin
always @ (posedge CLK_25MHZ or posedge MASTER_RST) begin
    if(MASTER_RST == 1'b1) begin
    if(MASTER_RST == 1'b1) begin
        ram_vshift <= 16'h8000;
        ram_vshift <= 16'h8000;
    end else if(vcnt > 10'd399) begin
    end else if(vcnt > 10'd399) begin
        ram_vshift <= 16'h8000;
        ram_vshift <= 16'h8000;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.