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

Subversion Repositories bu_pacman

[/] [bu_pacman/] [tags/] [arelease/] [color_fsm.v] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 soloist_hu
`timescale 1ns / 1ps
2
//////////////////////////////////////////////////////////////////////////////////
3
// Company: 
4
// Engineer: 
5
// 
6
// Create Date:    00:32:52 11/20/2008 
7
// Design Name: 
8
// Module Name:    color_fsm 
9
// Project Name: 
10
// Target Devices: 
11
// Tool versions: 
12
// Description: 
13
//
14
// Dependencies: 
15
//
16
// Revision: 
17
// Revision 0.01 - File Created
18
// Additional Comments: 
19
//
20
//////////////////////////////////////////////////////////////////////////////////
21
module color_fsm(reset,clk_20MHz,clk_2MHz,pixel_set_rgb,fifo_full,fifo_empty,
22
                                                        hcount,vcount,red_in,green_in,blue_in,
23
                                                                read_fifo,write_fifo,write_memory,read_memory,count);
24
 
25
//Inputs
26
input clk_20MHz,clk_2MHz,reset,fifo_full,fifo_empty;
27
input [15:0] pixel_set_rgb;
28
input [10:0] hcount;
29
input [10:0] vcount;
30
//Outputs
31
output red_in,green_in,blue_in,read_fifo,write_fifo;
32
output write_memory, read_memory,count;
33
 
34
//regs
35
reg red_in, green_in, blue_in,read_fifo,write_fifo,read_memory,write_memory;
36
reg [2:0] pixel_state = 0;
37
reg count = 0;
38
 
39
//parameters
40
parameter [2:0] pixel_1 = 0;
41
parameter [2:0] pixel_2 = 1;
42
parameter [2:0] pixel_3 = 2;
43
parameter [2:0] pixel_4 = 3;
44
parameter [2:0] pixel_5 = 4;
45
 
46
parameter [8:0] xpos_start = 192;
47
parameter [8:0] ypos_start = 48;
48
parameter [8:0] xpos_end = 448;
49
parameter [8:0] ypos_end = 432;
50
 
51
always @ (clk_2MHz)
52
begin
53
if(count == 0) begin
54
write_memory <= 0;
55
read_memory <= 1;
56
if(hcount == 649 && vcount == 479)
57
count <= 1;
58
end
59
 
60
else if(count == 1) begin
61
read_memory <= 0;
62
write_memory <= 1;
63
end
64
end
65
 
66
always @ (posedge clk_20MHz)
67
begin
68
if(count == 1)  begin
69
if(reset) begin
70
        pixel_state <= pixel_1;
71
end
72
 
73
else if(vcount >= ypos_start && vcount < ypos_end) begin
74
                if(hcount >= xpos_start && hcount < xpos_end) begin
75
                        case(pixel_state)
76
                                pixel_1 :
77
                                        begin
78
                                                red_in <= pixel_set_rgb[2];
79
                                                green_in <= pixel_set_rgb[1];
80
                                                blue_in <= pixel_set_rgb[0];
81
                                                pixel_state <= pixel_2;
82
 
83
                                        end
84
                                pixel_2 :
85
                                        begin
86
                                                red_in <= pixel_set_rgb[5];
87
                                                green_in <= pixel_set_rgb[4];
88
                                                blue_in <= pixel_set_rgb[3];
89
                                                pixel_state <= pixel_3;
90
 
91
                                        end
92
                                pixel_3 :
93
                                        begin
94
                                                red_in <= pixel_set_rgb[8];
95
                                                green_in <= pixel_set_rgb[7];
96
                                                blue_in <= pixel_set_rgb[6];
97
                                                pixel_state <= pixel_4;
98
 
99
                                        end
100
                                pixel_4 :
101
                                        begin
102
                                                red_in <= pixel_set_rgb[11];
103
                                                green_in <= pixel_set_rgb[10];
104
                                                blue_in <= pixel_set_rgb[9];
105
 
106
                                                pixel_state <= pixel_5;
107
 
108
                                        end
109
                                pixel_5 :
110
                                        begin
111
                                                red_in <= pixel_set_rgb[14];
112
                                                green_in <= pixel_set_rgb[13];
113
                                                blue_in <= pixel_set_rgb[12];
114
                                                pixel_state <= pixel_1;
115
 
116
                                        end
117
                                endcase
118
                        end
119
end
120
 
121
if(fifo_empty == 1)
122
read_fifo <= 0;
123
else
124
read_fifo <= 1;
125
 
126
if(fifo_full == 1)
127
write_fifo <= 0;
128
else
129
write_fifo <= 1;
130
 
131
end
132
end
133
endmodule

powered by: WebSVN 2.1.0

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