====三色灯设计代码==== // -------------------------------------------------------------------- // >>>>>>>>>>>>>>>>>>>>>>>>> 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, output [7:0] led, output led_R2, output led_G2, output led_B2 ); assign led = 8'b1111_1111; assign led_R2 = 1'b1; assign led_G2 = 1'b1; assign led_B2 = 1'b1; 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; //Debounce for key wire [2:0] key_pulse; Debounce1 Debounce_uut ( .clk(clk_in), .rst_n(rst_n_in), .key_n({key_color,key_up,key_down}), .key_pulse(key_pulse) ); wire color_pulse = key_pulse[2]; wire up_pulse = key_pulse[1]; wire down_pulse = key_pulse[0]; reg [2:0] color = 3'd0; wire Lightness_out; Lightness Lightness_uut ( .clk_in(clk_in), .rst_n_in(rst_n_in), .color(color), .up_pulse(up_pulse), .down_pulse(down_pulse), .Lightness_out(Lightness_out) ); reg [2:0] cnt = 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