












module led_breath_v3( input clk,rst_n, output [3:0] led ); wire [3:0] ctrl_en; time_ctrl u0( .clk(clk), .rst_n(rst_n), .ctrl_en(ctrl_en) ); led_breath_v2 L0( .clk(clk), .rst_n(ctrl_en[0]), .led(led[0]) ); led_breath_v2 L1( .clk(clk), .rst_n(ctrl_en[1]), .led(led[1]) ); led_breath_v2 L2( .clk(clk), .rst_n(ctrl_en[2]), .led(led[2]) ); led_breath_v2 L3( .clk(clk), .rst_n(ctrl_en[3]), .led(led[3]) ); endmodule
led计数复位控制
module time_ctrl( input clk, input rst_n, output reg [3:0] ctrl_en ); parameter T1 = 100_000_000; //2s parameter T2 = 200_000_000; //4s parameter T3 = 300_000_000; //6s reg [28:0] cnt; //counter always @(posedge clk,negedge rst_n) begin if(!rst_n) cnt <= 0; else if(cnt < T3 - 1) cnt <= cnt + 1; else cnt <= cnt; end //turn on led 1 by 1 always @(posedge clk,negedge rst_n) begin if(!rst_n) ctrl_en <= 0; else if(cnt == T3 - 1) ctrl_en <= 4'b1111; //4 led all on else if(cnt >= T2 - 1) ctrl_en <= 4'b0111; //3 led all on else if(cnt >= T1 - 1) ctrl_en <= 4'b0011; //2 led both on else ctrl_en <= 4'b0001; //1 led on end endmodule
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。