题目概述:
使用按键控制蜂鸣器发声。初始状态为蜂鸣器鸣叫,按下开关后蜂鸣器停止鸣叫,再次按下开关,蜂鸣器重新鸣叫。

key_debounce.vmodule key_debounce(
input sys_clk,
input sys_rst_n,
input key,
output reg key_value,
output reg key_flag
);
reg [19:0] cnt;
reg        key_reg;
//按键消抖
always@(posedge sys_clk or negedge sys_rst_n)beginif(!sys_rst_n)begincnt<=20'd0;key_reg<=1'b1;endelse begin key_reg<=key;if(key_reg!=key)begincnt<=20'd100_0000;endelse begin          if(cnt>20'd0)cnt<=cnt-1'b1;elsecnt<=20'd0;endend
end
always@(posedge sys_clk or negedge sys_rst_n)beginif(!sys_rst_n)beginkey_value<=1'b1;key_flag<=1'b0;end else if(cnt==20'd2)beginkey_value<=key;key_flag<=1'b1;endelse beginkey_value<=key_value;key_flag<=1'b0;end
end
endmodulebeep_control.vmodule beep_control(
input sys_clk,
input sys_rst_n,
input key_value,
input key_flag,
output reg beep
);
always@(posedge sys_clk or negedge sys_rst_n)beginif(!sys_rst_n)beginbeep<=1'b1;endelse if(key_flag && (key_value==1'b0))beep<=~beep;
end
endmoduletop_key_beep.vmodule top_key_beep(
input sys_clk,
input sys_rst_n,
input key,
output beep
);
wire key_value;
wire key_flag;
key_debounce u_key_bounce(
.sys_clk(sys_clk),
.sys_rst_n(sys_rst_n),
.key(key),
.key_value(key_value),
.key_flag(key_flag)
);
beep_control u_beep_control(
.sys_clk (sys_clk),
.sys_rst_n(sys_rst_n),
.key_value(key_value),
.key_flag(key_flag),
.beep(beep)
);
endmodule

上机实践:

QQ短视频20220805152356

FPGA:基础入门按键控制蜂鸣器相关推荐

  1. FPGA(1)基础入门 -- 按键控制led灯

    目录 效果说明 1.配置输入输出变量 2.变量赋值 3.配置引脚(输入输出变量) 代码 效果说明 key1按键按下,led1被点亮. key2按键按下,led2被点亮. 1.配置输入输出变量 inpu ...

  2. FPGA:基础入门按键控制LED灯

    题目概述: 使用按键控制LED灯亮灭. 无按键按下--LED全灭 按下KEYO--从右向左的流水灯效果 按下KEY1--从左向右的流水灯效果 按下KEY2--LED闪烁 按下KEY3--LED全亮 编 ...

  3. FPGA基础入门【12】开发板USB鼠标控制

    上一篇教程介绍了NEXYS4 开发板中UART串口通信的使用方式,这一篇介绍USB接口接收鼠标和键盘信号 FPGA基础入门[12]开发板USB鼠标控制 开发板USB芯片 信号时序图 鼠标初始化 逻辑设 ...

  4. FPGA实战篇——【3】按键控制蜂鸣器

    FPGA实战--按键控制蜂鸣器 目录 FPGA实战--按键控制蜂鸣器 实验任务: 蜂鸣器 硬件设计 程序设计 rtl文件 按键消抖 ucf文件 编译 RTL图 补充--例化模块 的软件操作: 下载及d ...

  5. FPGA基础入门【8】开发板外部存储器SPI flash访问

    前两篇教程利用数码管project介绍了chipscope和各种烧写开发板的方式,这篇开始继续探索开发板,这次关注外置存储器的控制,外置指的是芯片外部,不是开发板外部.板子上的外置存储器有DDR2和S ...

  6. FPGA基础入门【6】ChipScope的使用

    当FPGA设计中复杂度慢慢变高的时候,仿真的手段也要增加,目前我们仿真的手段都是在ModelSim中配置相应的testbench,给模块发送需要的信号.这种软件仿真的方式有几个缺点: 一个是软件仿真速 ...

  7. 51单片机怎么显示当前时间_(进阶篇)51单片机之按键控制蜂鸣器、数码管、按键值移位显示...

    一.实操演示- 按键控制蜂鸣器 1.图文详细 独立按键硬件电路 蜂鸣器硬件电路 2.连接方式: J20的第3号引脚连接到J7引脚,即P15连接J7. J29的第7.8号引脚连接到JP1的第1.2号引脚 ...

  8. FPGA基础入门篇(四) 边沿检测电路

    FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...

  9. FPGA基础入门【1】Vivado官方免费版安装

    本人自本科大二开始接触FPGA相关知识,现已将近五年,从这篇开始将从比较基础的角度讲述如何一步步了解FPGA.我相信动手一步步做下去是从零开始学习知识的最快方法,因此不会从最基础开始讲,而是在碰到相应 ...

最新文章

  1. noj数据结构稀疏矩阵的加法十字链表_一个算法毁了一款好游戏?算法和数据结构到底有多重要?...
  2. 微软亚洲研究院周明:从语言智能到代码智能
  3. type python_typepython
  4. jspxcms bug表
  5. vector 用法小例子
  6. 喜马拉雅 xm文件转m4a_4K YouTube to MP3 Mac(YouTube转mp3软件)
  7. Android之网络请求提示Cleartext HTTP traffic to dev*******.com not permitted
  8. 包装类型与包装类别_包装的重要性
  9. postgresql 数据表【转】
  10. 异常处理关于数组java_关于java异常处理的自我学习
  11. 蔚来:4月交付7102台 同比增长125.1%
  12. 马斯克公布猴子成功用“意念”打游戏,脑机接口技术距离人类还有多远?
  13. 通过 Android SDK Manager 安装面向 Android* 模拟器插件的英特尔® 凌动™ x86 系统映像...
  14. 奇安信荣获中国电子2021年度科技进步奖一、二等奖
  15. d触发器q端的输出波形_如果把D触发器的输出Q'反馈连接到输入D,则输出Q的脉冲波形的频率为CP脉冲频率f的 。...
  16. python中读取和保存图片的方法对比
  17. 试卷自动生成工具使用说明
  18. table固定表头、固定列
  19. python jinja2_Python Jinja2使用方法
  20. java压缩图片大小_java压缩图片、等比例压缩图片

热门文章

  1. 游戏编程之十三 3D类游戏
  2. c++ WinExec 打开外部程序有问题的解决办法
  3. [从零开始]用python制作识图翻译器·一
  4. 单目、双目与多目的区别
  5. 建文高考成绩查询2021,巴中市建文中学录取分数线是多少,2021年分数要求
  6. 数据挖掘-Task2:EDA-数据分析探索性分析
  7. 微信支付后默认关注公众号与推荐关注公众号规则
  8. 如何解决旧版本的node和npm卸载不干净导致的用homebrew安装新版本过程中出现的问题
  9. 命卦计算公式与吉祥方位
  10. php在线查看pdf文件