第一: 项目需求
使用按键控制蜂鸣器发声。初始状态为蜂鸣器鸣叫,按下开关后蜂鸣器停 止鸣叫,再次按下开关,蜂鸣器重新鸣叫。
注意:本篇博客的主要目的是练习仿真
第二:仿真运行的源代码
module key_beep(
input clk,
input rst_n,
input key,
output reg beep,
output reg key_value,
output reg key_flag
);
reg key_reg;
reg [31:0] delay_cnt;
//按键的消除抖得过程
always@(posedge clk or negedge rst_n)begin
if(!rst_n)begin
delay_cnt<=32'd0;
key_reg<=1'b1;// 初始化为高电平,按键按下时应该为低电平.
end
else begin
key_reg<=key;//第一步等于始化赋值
if(key_reg!=key)//第二步不等于的
delay_cnt<=32'd1000_000;
else if(key_reg==key) begin//第三
if(delay_cnt>32'd0)
delay_cnt<=delay_cnt-1'b1;
else
delay_cnt<=delay_cnt;
end
end
end
always@(posedge clk or negedge