init update to 12/30 8.37 am
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
`timescale 1ns / 1ps
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// Company:
|
||||
// Engineer:
|
||||
//
|
||||
// Create Date: 12/18/2020 01:59:44 PM
|
||||
// Design Name:
|
||||
// Module Name: vga_data_background
|
||||
// Project Name:
|
||||
// Target Devices:
|
||||
// Tool Versions:
|
||||
// Description:
|
||||
//
|
||||
// Dependencies:
|
||||
//
|
||||
// Revision:
|
||||
// Revision 0.01 - File Created
|
||||
// Additional Comments:
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
module vga_data_background(
|
||||
input clk,
|
||||
input [ 10: 0 ] vgaH,
|
||||
input [ 10: 0 ] vgaV,
|
||||
input sw_mode_sel,
|
||||
input [ 2: 0 ] mode,
|
||||
output reg [ 11: 0 ] vgaData
|
||||
);
|
||||
parameter WIDTH = 640;
|
||||
parameter HEIGHT = 480;
|
||||
|
||||
reg [ 16: 0 ] addr_background_pic, addr_gameover_pic;
|
||||
reg [ 16: 0 ] addr_start_pic;
|
||||
reg [ 11: 0 ] start_reg, gameover_reg;
|
||||
wire [ 11: 0 ] start_pic, gameover_pic, background_pic;
|
||||
|
||||
reg [ 11: 0 ] VGA_data_cursor ;
|
||||
always @( posedge clk ) begin
|
||||
if ( vgaV >= 0 && vgaV < HEIGHT && vgaH >= 0 && vgaH < WIDTH ) begin
|
||||
addr_background_pic <= vgaV[ 10: 1 ] * 320 + vgaH[ 10: 1 ];
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
background_320_240 u_background_320_240(
|
||||
.addra( addr_background_pic ),
|
||||
.clka( clk ),
|
||||
.douta( background_pic ),
|
||||
.ena( 1'b1 )
|
||||
);
|
||||
|
||||
|
||||
//game over pic
|
||||
always @( posedge clk ) begin
|
||||
if ( vgaH >= 130 && vgaH < 510 && vgaV >= 120 && vgaV < 300 ) begin
|
||||
|
||||
addr_gameover_pic <= ( vgaH - 130 ) + 380 * ( vgaV - 120 );
|
||||
gameover_reg <= gameover_pic;
|
||||
|
||||
end
|
||||
else begin
|
||||
gameover_reg <= 0;
|
||||
end
|
||||
end
|
||||
gameover_380_180 u_gameover_pic(
|
||||
.clka( clk ),
|
||||
.addra( addr_gameover_pic ),
|
||||
.ena( 1'b1 ),
|
||||
.douta( gameover_pic )
|
||||
);
|
||||
|
||||
|
||||
|
||||
always @( posedge clk ) begin
|
||||
if ( vgaH >= 95 && vgaH < 545 && vgaV >= 90 && vgaV < 290 ) begin
|
||||
addr_start_pic <= ( vgaH - 95 ) + 450 * ( vgaV - 90 );
|
||||
start_reg <= start_pic;
|
||||
end
|
||||
else begin
|
||||
start_reg <= 0;
|
||||
end
|
||||
end
|
||||
|
||||
startpic_450_200 u_start_pic(
|
||||
.clka( clk ),
|
||||
.addra( addr_start_pic ),
|
||||
.ena( 1'b1 ),
|
||||
.douta( start_pic )
|
||||
);
|
||||
|
||||
always@( posedge clk ) begin
|
||||
if ( sw_mode_sel ) begin
|
||||
if ( vgaH >= 229 && vgaH <= 233 && vgaV >= 233 && vgaV <= 237 ) begin
|
||||
VGA_data_cursor <= 12'hFF0;
|
||||
end
|
||||
else begin
|
||||
VGA_data_cursor <= 12'h0;
|
||||
end
|
||||
end
|
||||
else begin
|
||||
if ( vgaH >= 229 && vgaH <= 233 && vgaV >= 252 && vgaV <= 256 ) begin
|
||||
VGA_data_cursor <= 12'hFF0;
|
||||
end
|
||||
else begin
|
||||
VGA_data_cursor <= 12'h0;
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
always@( posedge clk )
|
||||
case ( mode )
|
||||
0 : begin
|
||||
vgaData[ 0 ] = background_pic[ 0 ] | start_reg[ 0 ] | VGA_data_cursor[ 0 ];
|
||||
vgaData[ 1 ] = background_pic[ 1 ] | start_reg[ 1 ] | VGA_data_cursor[ 1 ];
|
||||
vgaData[ 2 ] = background_pic[ 2 ] | start_reg[ 2 ] | VGA_data_cursor[ 2 ];
|
||||
vgaData[ 3 ] = background_pic[ 3 ] | start_reg[ 3 ] | VGA_data_cursor[ 3 ];
|
||||
vgaData[ 4 ] = background_pic[ 4 ] | start_reg[ 4 ] | VGA_data_cursor[ 4 ];
|
||||
vgaData[ 5 ] = background_pic[ 5 ] | start_reg[ 5 ] | VGA_data_cursor[ 5 ];
|
||||
vgaData[ 6 ] = background_pic[ 6 ] | start_reg[ 6 ] | VGA_data_cursor[ 6 ];
|
||||
vgaData[ 7 ] = background_pic[ 7 ] | start_reg[ 7 ] | VGA_data_cursor[ 7 ];
|
||||
vgaData[ 8 ] = background_pic[ 8 ] | start_reg[ 8 ] | VGA_data_cursor[ 8 ];
|
||||
vgaData[ 9 ] = background_pic[ 9 ] | start_reg[ 9 ] | VGA_data_cursor[ 9 ];
|
||||
vgaData[ 10 ] = background_pic[ 10 ] | start_reg[ 10 ] | VGA_data_cursor[ 10 ];
|
||||
vgaData[ 11 ] = background_pic[ 11 ] | start_reg[ 11 ] | VGA_data_cursor[ 11 ];
|
||||
end
|
||||
1: begin
|
||||
vgaData[ 0 ] = background_pic[ 0 ] ;
|
||||
vgaData[ 1 ] = background_pic[ 1 ] ;
|
||||
vgaData[ 2 ] = background_pic[ 2 ] ;
|
||||
vgaData[ 3 ] = background_pic[ 3 ] ;
|
||||
vgaData[ 4 ] = background_pic[ 4 ] ;
|
||||
vgaData[ 5 ] = background_pic[ 5 ] ;
|
||||
vgaData[ 6 ] = background_pic[ 6 ] ;
|
||||
vgaData[ 7 ] = background_pic[ 7 ] ;
|
||||
vgaData[ 8 ] = background_pic[ 8 ] ;
|
||||
vgaData[ 9 ] = background_pic[ 9 ] ;
|
||||
vgaData[ 10 ] = background_pic[ 10 ] ;
|
||||
vgaData[ 11 ] = background_pic[ 11 ] ;
|
||||
end
|
||||
2: begin
|
||||
vgaData[ 0 ] = background_pic[ 0 ] ;
|
||||
vgaData[ 1 ] = background_pic[ 1 ] ;
|
||||
vgaData[ 2 ] = background_pic[ 2 ] ;
|
||||
vgaData[ 3 ] = background_pic[ 3 ] ;
|
||||
vgaData[ 4 ] = background_pic[ 4 ] ;
|
||||
vgaData[ 5 ] = background_pic[ 5 ] ;
|
||||
vgaData[ 6 ] = background_pic[ 6 ] ;
|
||||
vgaData[ 7 ] = background_pic[ 7 ] ;
|
||||
vgaData[ 8 ] = background_pic[ 8 ] ;
|
||||
vgaData[ 9 ] = background_pic[ 9 ] ;
|
||||
vgaData[ 10 ] = background_pic[ 10 ] ;
|
||||
vgaData[ 11 ] = background_pic[ 11 ] ;
|
||||
end
|
||||
3: begin
|
||||
vgaData[ 0 ] = background_pic[ 0 ] | gameover_reg[ 0 ];
|
||||
vgaData[ 1 ] = background_pic[ 1 ] | gameover_reg[ 1 ];
|
||||
vgaData[ 2 ] = background_pic[ 2 ] | gameover_reg[ 2 ];
|
||||
vgaData[ 3 ] = background_pic[ 3 ] | gameover_reg[ 3 ];
|
||||
vgaData[ 4 ] = background_pic[ 4 ] | gameover_reg[ 4 ];
|
||||
vgaData[ 5 ] = background_pic[ 5 ] | gameover_reg[ 5 ];
|
||||
vgaData[ 6 ] = background_pic[ 6 ] | gameover_reg[ 6 ];
|
||||
vgaData[ 7 ] = background_pic[ 7 ] | gameover_reg[ 7 ];
|
||||
vgaData[ 8 ] = background_pic[ 8 ] | gameover_reg[ 8 ];
|
||||
vgaData[ 9 ] = background_pic[ 9 ] | gameover_reg[ 9 ];
|
||||
vgaData[ 10 ] = background_pic[ 10 ] | gameover_reg[ 10 ];
|
||||
vgaData[ 11 ] = background_pic[ 11 ] | gameover_reg[ 11 ];
|
||||
end
|
||||
|
||||
endcase
|
||||
endmodule
|
||||
Reference in New Issue
Block a user