• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

复位键和蜂鸣器测试设计Verilog代码VIVADO ARTIX-7开发板

10/06 08:13
216
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24110Q93131629.docx

共1个文件

名称:复位键和蜂鸣器测试设计Verilog代码VIVADO? ARTIX-7开发板

软件:VIVADO

语言:Verilog

代码功能:

复位键和蜂鸣器测试

对时钟做分频,产生1Hz的分频信号控制蜂鸣器发声;按复位键完成复位,蜂鸣器停止。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在ARTIX-7开发板验证,ARTIX-7开发板如下,其他开发板可以修改管脚适配:

ARTIX-7开发板.png

设计文档:

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

  • 2-24110Q93131629.docx
    下载

相关推荐