**这是本文档旧的修订版!**

三色灯设计代码

// --------------------------------------------------------------------
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// --------------------------------------------------------------------
// Module: Color_led
// 
// Author: Step
// 
// Description: Color_led
// 
// Web: www.ecbcamp.com
// 
// --------------------------------------------------------------------
// Code Revision History :
// --------------------------------------------------------------------
// Version: |Mod. Date:   |Changes Made:
// V1.0     |2015/11/11   |Initial ver
// --------------------------------------------------------------------
module Color_led
(
input clk_in,
input rst_n_in,
input key_color,
input key_up,
input key_down,
output led_R,
output led_G,
output led_B
);
 
localparam	RED = 3'b110,
			GREEN = 3'b101,
			BLUE = 3'b011,
			YELLOW = 3'b100,
			CYAN = 3'b001,
			MAGENTA = 3'b010,
			WHITE = 3'b000,
			BLACK = 3'b111;
 
//wire	color_pulse;
//wire	up_pulse;
//wire	down_pulse;
//Debounce for key_color
Debounce Debounce_color(.clk(clk_in),.rst_n(rst_n_in),.key_n(key_color),.key_pulse(color_pulse)); 
 
//Debounce for key_up
Debounce Debounce_up(.clk(clk_in),.rst_n(rst_n_in),.key_n(key_up),.key_pulse(up_pulse)); 
 
//Debounce for key_down
Debounce Debounce_down(.clk(clk_in),.rst_n(rst_n_in),.key_n(key_down),.key_pulse(down_pulse)); 
 
wire Lightness_out;
Lightness Lightness_uut
(
.clk_in(clk_in),
.rst_n_in(rst_n_in),
.up_pulse(up_pulse),
.down_pulse(down_pulse),
.Lightness_out(Lightness_out)
);
 
reg [2:0] cnt = 3'd0;
reg [2:0] color = 3'd0;
always@(posedge color_pulse or negedge rst_n_in) begin
	if(!rst_n_in) begin
		cnt <= 3'd0;
		color <= 3'd0;
	end else begin
		cnt <= cnt + 3'd1;
		case(cnt)
			3'd0: color <= BLACK;
			3'd1: color <= RED;
			3'd2: color <= GREEN;
			3'd3: color <= BLUE;
			3'd4: color <= YELLOW;
			3'd5: color <= CYAN;
			3'd6: color <= MAGENTA;
			3'd7: color <= WHITE;
			default: color <= BLACK;
		endcase
	end
end
 
assign led_R = Lightness_out? color[0]:1'b1;
assign led_G = Lightness_out? color[1]:1'b1;
assign led_B = Lightness_out? color[2]:1'b1;
 
endmodule