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

Subversion Repositories bu_pacman

[/] [bu_pacman/] [tags/] [arelease/] [color_fsm.v] - Diff between revs 4 and 6

Only display areas with differences | Details | Blame | View Log

Rev 4 Rev 6
`timescale 1ns / 1ps
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Company: 
// Engineer: 
// Engineer: 
// 
// 
// Create Date:    00:32:52 11/20/2008 
// Create Date:    00:32:52 11/20/2008 
// Design Name: 
// Design Name: 
// Module Name:    color_fsm 
// Module Name:    color_fsm 
// Project Name: 
// Project Name: 
// Target Devices: 
// Target Devices: 
// Tool versions: 
// Tool versions: 
// Description: 
// Description: 
//
//
// Dependencies: 
// Dependencies: 
//
//
// Revision: 
// Revision: 
// Revision 0.01 - File Created
// Revision 0.01 - File Created
// Additional Comments: 
// Additional Comments: 
//
//
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
module color_fsm(reset,clk_20MHz,clk_2MHz,pixel_set_rgb,fifo_full,fifo_empty,
module color_fsm(reset,clk_20MHz,clk_2MHz,pixel_set_rgb,fifo_full,fifo_empty,
                                                        hcount,vcount,red_in,green_in,blue_in,
                                                        hcount,vcount,red_in,green_in,blue_in,
                                                                read_fifo,write_fifo,write_memory,read_memory,count);
                                                                read_fifo,write_fifo,write_memory,read_memory,count);
 
 
//Inputs
//Inputs
input clk_20MHz,clk_2MHz,reset,fifo_full,fifo_empty;
input clk_20MHz,clk_2MHz,reset,fifo_full,fifo_empty;
input [15:0] pixel_set_rgb;
input [15:0] pixel_set_rgb;
input [10:0] hcount;
input [10:0] hcount;
input [10:0] vcount;
input [10:0] vcount;
//Outputs
//Outputs
output red_in,green_in,blue_in,read_fifo,write_fifo;
output red_in,green_in,blue_in,read_fifo,write_fifo;
output write_memory, read_memory,count;
output write_memory, read_memory,count;
 
 
//regs
//regs
reg red_in, green_in, blue_in,read_fifo,write_fifo,read_memory,write_memory;
reg red_in, green_in, blue_in,read_fifo,write_fifo,read_memory,write_memory;
reg [2:0] pixel_state = 0;
reg [2:0] pixel_state = 0;
reg count = 0;
reg count = 0;
 
 
//parameters
//parameters
parameter [2:0] pixel_1 = 0;
parameter [2:0] pixel_1 = 0;
parameter [2:0] pixel_2 = 1;
parameter [2:0] pixel_2 = 1;
parameter [2:0] pixel_3 = 2;
parameter [2:0] pixel_3 = 2;
parameter [2:0] pixel_4 = 3;
parameter [2:0] pixel_4 = 3;
parameter [2:0] pixel_5 = 4;
parameter [2:0] pixel_5 = 4;
 
 
parameter [8:0] xpos_start = 192;
parameter [8:0] xpos_start = 192;
parameter [8:0] ypos_start = 48;
parameter [8:0] ypos_start = 48;
parameter [8:0] xpos_end = 448;
parameter [8:0] xpos_end = 448;
parameter [8:0] ypos_end = 432;
parameter [8:0] ypos_end = 432;
 
 
always @ (clk_2MHz)
always @ (clk_2MHz)
begin
begin
if(count == 0) begin
if(count == 0) begin
write_memory <= 0;
write_memory <= 0;
read_memory <= 1;
read_memory <= 1;
if(hcount == 649 && vcount == 479)
if(hcount == 649 && vcount == 479)
count <= 1;
count <= 1;
end
end
 
 
else if(count == 1) begin
else if(count == 1) begin
read_memory <= 0;
read_memory <= 0;
write_memory <= 1;
write_memory <= 1;
end
end
end
end
 
 
always @ (posedge clk_20MHz)
always @ (posedge clk_20MHz)
begin
begin
if(count == 1)  begin
if(count == 1)  begin
if(reset) begin
if(reset) begin
        pixel_state <= pixel_1;
        pixel_state <= pixel_1;
end
end
 
 
else if(vcount >= ypos_start && vcount < ypos_end) begin
else if(vcount >= ypos_start && vcount < ypos_end) begin
                if(hcount >= xpos_start && hcount < xpos_end) begin
                if(hcount >= xpos_start && hcount < xpos_end) begin
                        case(pixel_state)
                        case(pixel_state)
                                pixel_1 :
                                pixel_1 :
                                        begin
                                        begin
                                                red_in <= pixel_set_rgb[2];
                                                red_in <= pixel_set_rgb[2];
                                                green_in <= pixel_set_rgb[1];
                                                green_in <= pixel_set_rgb[1];
                                                blue_in <= pixel_set_rgb[0];
                                                blue_in <= pixel_set_rgb[0];
                                                pixel_state <= pixel_2;
                                                pixel_state <= pixel_2;
 
 
                                        end
                                        end
                                pixel_2 :
                                pixel_2 :
                                        begin
                                        begin
                                                red_in <= pixel_set_rgb[5];
                                                red_in <= pixel_set_rgb[5];
                                                green_in <= pixel_set_rgb[4];
                                                green_in <= pixel_set_rgb[4];
                                                blue_in <= pixel_set_rgb[3];
                                                blue_in <= pixel_set_rgb[3];
                                                pixel_state <= pixel_3;
                                                pixel_state <= pixel_3;
 
 
                                        end
                                        end
                                pixel_3 :
                                pixel_3 :
                                        begin
                                        begin
                                                red_in <= pixel_set_rgb[8];
                                                red_in <= pixel_set_rgb[8];
                                                green_in <= pixel_set_rgb[7];
                                                green_in <= pixel_set_rgb[7];
                                                blue_in <= pixel_set_rgb[6];
                                                blue_in <= pixel_set_rgb[6];
                                                pixel_state <= pixel_4;
                                                pixel_state <= pixel_4;
 
 
                                        end
                                        end
                                pixel_4 :
                                pixel_4 :
                                        begin
                                        begin
                                                red_in <= pixel_set_rgb[11];
                                                red_in <= pixel_set_rgb[11];
                                                green_in <= pixel_set_rgb[10];
                                                green_in <= pixel_set_rgb[10];
                                                blue_in <= pixel_set_rgb[9];
                                                blue_in <= pixel_set_rgb[9];
 
 
                                                pixel_state <= pixel_5;
                                                pixel_state <= pixel_5;
 
 
                                        end
                                        end
                                pixel_5 :
                                pixel_5 :
                                        begin
                                        begin
                                                red_in <= pixel_set_rgb[14];
                                                red_in <= pixel_set_rgb[14];
                                                green_in <= pixel_set_rgb[13];
                                                green_in <= pixel_set_rgb[13];
                                                blue_in <= pixel_set_rgb[12];
                                                blue_in <= pixel_set_rgb[12];
                                                pixel_state <= pixel_1;
                                                pixel_state <= pixel_1;
 
 
                                        end
                                        end
                                endcase
                                endcase
                        end
                        end
end
end
 
 
if(fifo_empty == 1)
if(fifo_empty == 1)
read_fifo <= 0;
read_fifo <= 0;
else
else
read_fifo <= 1;
read_fifo <= 1;
 
 
if(fifo_full == 1)
if(fifo_full == 1)
write_fifo <= 0;
write_fifo <= 0;
else
else
write_fifo <= 1;
write_fifo <= 1;
 
 
end
end
end
end
endmodule
endmodule
 
 

powered by: WebSVN 2.1.0

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