按键控制蜂鸣器实验
source code
module key_beep(
input sys_clk,
input sys_rst_n,
input key,
output reg beep
);
reg [19:0]cnt;
reg key_delay_20ms;
reg key_delay_20ms_last;
reg key_last;
always@(posedge sys_clk or negedge sys_rst_n)
begin
if(!sys_rst_n)
begin
cnt<=20'b0;
key_last<=1;
end
else
begin
key_last<=key;
if(key_last!=key)
cnt<=20'd0;
else
cnt<=(cnt==20'd100_0000)?cnt:cnt+1;
end
end
always@(posedge sys_clk or negedge sys_rst_n)
begin
if(!sys_rst_n)
begin
key_delay_20ms<=1;
key_delay_20ms_last<=1;
end
else
begin
key_delay_20ms_last<=key_delay_20ms;
if(key_delay_20ms_last==0 && key_delay_20ms==1)
beep<=~beep;
else
beep<=beep;
if(cnt==20'd100_0000)
key_delay_20ms<=key;
else
key_delay_20ms<=key_delay_20ms;
end
end
endmodule
xdc文件
set_property -dict {PACKAGE_PIN M14 IOSTANDARD LVCMOS33} [get_ports {beep}]
set_property -dict {PACKAGE_PIN L14 IOSTANDARD LVCMOS33} [get_ports {key}]
set_property -dict {PACKAGE_PIN U18 IOSTANDARD LVCMOS33} [get_ports sys_clk]
set_property -dict {PACKAGE_PIN N16 IOSTANDARD LVCMOS33} [get_ports sys_rst_n]
本文作者:心比天高xzh
本文链接:https://www.cnblogs.com/xzh-personal-issue/p/17321602.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步