📄 flicker_led.v
字号:
module Flicker_Led(
Clk,
Rst_n,
Led_En_n,
Led,
Buzz,
Sev_Seg_Led_Sel_n
);
input Clk; //定义输入时钟
input Rst_n; //定义复位输入
output Led_En_n;
output [7:0] Led; //定义输出端口
output Buzz;
output [3:0] Sev_Seg_Led_Sel_n;
/*---------------------------------------------------*/
reg [31:0] Cout; //时钟计数
always @(posedge Clk or negedge Rst_n)
begin
if(~Rst_n)
begin
Cout <= 32'd0;
end
else
begin
//计至0.5s清零
Cout <= (Cout == 32'd25_000_000) ? 32'd0 : (Cout + 32'd1);
end
end
/*---------------------------------------------------*/
reg Clk_En;
always @(posedge Clk or negedge Rst_n)
begin
if(~Rst_n)
begin
Clk_En <= 1'd0;
end
else
begin
//每0.5s产生一个时钟使能
Clk_En <= (Cout == 32'd25_000_000) ? 1'd1 : 1'd0;
end
end
/*---------------------------------------------------*/
assign
Led_En_n = 1'd0; //led使能,低有效
reg [7:0] Led;
always @(posedge Clk or negedge Rst_n)
begin
if(~Rst_n)
begin
Led <= 8'd0;
end
else
//每来一个使能,LED变化一次
if(Clk_En)
begin
Led <= ~Led;
end
end
/*---------------------------------------------------*/
assign
Buzz = 1'd0; //禁止蜂鸣器工作
assign
Sev_Seg_Led_Sel_n = 4'b1111; //禁止七段数码管显示
/*---------------------------------------------------*/
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -