**这是本文档旧的修订版!**
三色灯设计代码
// --------------------------------------------------------------------
// >>>>>>>>>>>>>>>>>>>>>>>>> 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