名称:复位键和蜂鸣器测试设计Verilog代码VIVADO? ARTIX-7开发板
软件:VIVADO
语言:Verilog
代码功能:
复位键和蜂鸣器测试
对时钟做分频,产生1Hz的分频信号控制蜂鸣器发声;按复位键完成复位,蜂鸣器停止。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在ARTIX-7开发板验证,ARTIX-7开发板如下,其他开发板可以修改管脚适配:
设计文档:
1简介
本代码介绍使用计数器产生一个频率1Hz、占空比50%的脉冲信号,并将整个脉冲信号作为蜂鸣器输入,从而驱动蜂鸣器产生嘀嘀声。
2实验原理
蜂鸣器的原理很简单,就是通过不同的频率脉冲产生不同的声音。
3程序设计
//时钟计数,对100MHz的时钟进行100000000计数,即1秒钟重复计数
always @(posedge sys_clk_i)
begin
if(clk_cnt > 32'd100000000)
begin
clk_cnt <= 32'b0;
end
else
begin
clk_cnt <= clk_cnt + 1'b1;
end
end
//蜂鸣器输出,当计数器大于50000000,即0.5ms时产生高电平脉冲,小于等于则产生低电平脉冲
always @(posedge sys_clk_i)
begin
if(clk_cnt > 32'd50000000)
begin
fm_out <= 1'b1;
end
else
begin
fm_out <= 1'b0;
end
end
4.实验现象
将目录“... at7_prj_03at7_prjat7_prj.runsimpl_1”文件夹下的 at7_prj.bit 文件下载到开发板上,则蜂鸣器发出1Hz的嘀嘀声。
部分代码展示:
`timescale?1ns?/?1ps ////////////////////////////////////////////////////////////////////////////////// //?Company:? //?Engineer:? //? //?Create?Date:?2019/04/13?17:54:08 //?Design?Name:? //?Module?Name:?at7_prj //?Project?Name:? //?Target?Devices:? //?Tool?Versions:? //?Description:? //? //?Dependencies:? //? //?Revision: //?Revision?0.01?-?File?Created //?Additional?Comments: //? ////////////////////////////////////////////////////////////////////////////////// module?at7_prj( input?sys_clk_i,//外部输入100MHz时钟信号 input?ext_rst_n,//外部输入复位信号,低电平有效 output?reg???fm_out??//蜂鸣器输出 ); reg??[31:0]?clk_cnt; //时钟计数 always?@(posedge?sys_clk_i)? begin ????if(clk_cnt?>?32'd100000000) ????begin ??????????clk_cnt?<=?32'b0; ????end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1329