01/02 some easy ai and some pic
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
`timescale 1ns / 1ps
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// Company:
|
||||
// Engineer:
|
||||
//
|
||||
// Create Date: 01/02/2021 03:30:42 PM
|
||||
// Design Name:
|
||||
// Module Name: game_information_display
|
||||
// Project Name:
|
||||
// Target Devices:
|
||||
// Tool Versions:
|
||||
// Description:
|
||||
//
|
||||
// Dependencies:
|
||||
//
|
||||
// Revision:
|
||||
// Revision 0.01 - File Created
|
||||
// Additional Comments:
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
module game_information_display(
|
||||
input clk,
|
||||
input enable_game_classic,
|
||||
input enable_game_infinity,
|
||||
input [ 7: 0 ] score_classic,
|
||||
input [ 4: 0 ] timer,
|
||||
input [ 10: 0 ] vgaH,
|
||||
input [ 10: 0 ] vgaV,
|
||||
output [ 11: 0 ] VGA_data
|
||||
);
|
||||
wire [ 11: 0 ] VGA_data1, VGA_data2, VGA_data3;
|
||||
reg vga_en1, vga_en2, vga_en3, vga_en4, vga_en5;
|
||||
reg [ 13: 0 ] addr_info_classic;
|
||||
reg [ 12: 0 ] addr_info_infinity;
|
||||
|
||||
reg [ 8: 0 ] addr_redflag;
|
||||
|
||||
reg [ 7: 0 ] addr_timing;
|
||||
wire [ 11: 0 ] VGA_data4, VGA_data5;
|
||||
parameter RED = 12'hF00;
|
||||
parameter GREEN = 12'h0F0;
|
||||
parameter BLUE = 12'h00F;
|
||||
parameter WHITE = 12'hFFF;
|
||||
parameter BLACK = 12'h000;
|
||||
parameter YELLOW = 12'hFF0;
|
||||
parameter CYAN = 12'hF0F;
|
||||
parameter ROYAL = 12'h0FF;
|
||||
|
||||
always @( posedge clk ) begin
|
||||
if ( enable_game_classic ) begin
|
||||
vga_en1 <= 1;
|
||||
if ( vgaH >= 130 && vgaH < 310 && vgaV >= 0 && vgaV < 46 ) begin
|
||||
addr_info_classic <= ( vgaV - 0 ) * 180 + vgaH - 130;
|
||||
end
|
||||
else begin
|
||||
vga_en1 <= 0;
|
||||
end
|
||||
end
|
||||
else begin
|
||||
vga_en1 <= 0;
|
||||
end
|
||||
end
|
||||
|
||||
classic_info_180_46 u_classic_info_180_46(
|
||||
.clka( clk ),
|
||||
.addra( addr_info_classic ),
|
||||
.ena( 1'b1 ),
|
||||
.douta( VGA_data1 )
|
||||
);
|
||||
|
||||
always @( posedge clk ) begin
|
||||
if ( enable_game_infinity ) begin
|
||||
vga_en2 <= 1;
|
||||
if ( vgaH >= 130 && vgaH < 310 && vgaV >= 0 && vgaV < 24 ) begin
|
||||
addr_info_infinity <= ( vgaV - 0 ) * 180 + vgaH - 130;
|
||||
end
|
||||
else begin
|
||||
vga_en2 <= 0;
|
||||
end
|
||||
end
|
||||
else begin
|
||||
vga_en2 <= 0;
|
||||
end
|
||||
end
|
||||
infinity_info_180_24 u_infinity_info_180_24(
|
||||
.clka( clk ),
|
||||
.addra( addr_info_infinity ),
|
||||
.ena( 1'b1 ),
|
||||
.douta( VGA_data2 )
|
||||
);
|
||||
|
||||
|
||||
always @( posedge clk ) begin
|
||||
if ( enable_game_classic ) begin
|
||||
vga_en3 <= 1;
|
||||
if ( vgaH >= 320 && vgaH < 480 && vgaV >= 1 && vgaV < 21 && ( vgaH - 320 ) < score_classic[ 3: 0 ] * 20 ) begin
|
||||
addr_redflag <= ( vgaH - 320 ) % 20 + ( vgaV - 1 ) * 20;
|
||||
end
|
||||
else if ( vgaH >= 320 && vgaH < 480 && vgaV >= 24 && vgaV < 44 && ( vgaH - 320 ) < score_classic[ 7: 4 ] * 20 ) begin
|
||||
addr_redflag <= ( vgaH - 320 ) % 20 + ( vgaV - 24 ) * 20;
|
||||
end
|
||||
else begin
|
||||
vga_en3 <= 0;
|
||||
end
|
||||
end
|
||||
else begin
|
||||
vga_en3 <= 0;
|
||||
end
|
||||
end
|
||||
|
||||
redflag_20_20 u_redflag_20_20(
|
||||
.clka( clk ),
|
||||
.addra( addr_redflag ),
|
||||
.ena( 1'b1 ),
|
||||
.douta( VGA_data3 )
|
||||
);
|
||||
|
||||
always @( posedge clk ) begin
|
||||
if ( enable_game_infinity ) begin
|
||||
vga_en4 <= 1;
|
||||
if ( vgaH >= 320 && vgaH < 560 && vgaV >= 5 && vgaV < 20 && ( vgaH - 320 ) < timer * 15 ) begin
|
||||
addr_timing <= ( vgaH - 320 ) % 15 + ( vgaV - 5 ) * 15;
|
||||
end
|
||||
else begin
|
||||
vga_en4 <= 0;
|
||||
end
|
||||
end
|
||||
else begin
|
||||
vga_en4 <= 0;
|
||||
end
|
||||
end
|
||||
|
||||
timing_15_15 u_timing_15_15(
|
||||
.clka( clk ),
|
||||
.addra( addr_timing ),
|
||||
.ena( 1'b1 ),
|
||||
.douta( VGA_data4 )
|
||||
);
|
||||
assign VGA_data = ( vga_en1 ? VGA_data1 : 0 ) | ( vga_en2 ? VGA_data2 : 0 ) | ( vga_en3 ? VGA_data3 : 0 ) | ( vga_en4 ? VGA_data4 : 0 ) ;
|
||||
endmodule
|
||||
Reference in New Issue
Block a user