FPGA:基础入门按键控制蜂鸣器
题目概述:
使用按键控制蜂鸣器发声。初始状态为蜂鸣器鸣叫,按下开关后蜂鸣器停止鸣叫,再次按下开关,蜂鸣器重新鸣叫。
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:基础入门按键控制蜂鸣器相关推荐
- FPGA(1)基础入门 -- 按键控制led灯
目录 效果说明 1.配置输入输出变量 2.变量赋值 3.配置引脚(输入输出变量) 代码 效果说明 key1按键按下,led1被点亮. key2按键按下,led2被点亮. 1.配置输入输出变量 inpu ...
- FPGA:基础入门按键控制LED灯
题目概述: 使用按键控制LED灯亮灭. 无按键按下--LED全灭 按下KEYO--从右向左的流水灯效果 按下KEY1--从左向右的流水灯效果 按下KEY2--LED闪烁 按下KEY3--LED全亮 编 ...
- FPGA基础入门【12】开发板USB鼠标控制
上一篇教程介绍了NEXYS4 开发板中UART串口通信的使用方式,这一篇介绍USB接口接收鼠标和键盘信号 FPGA基础入门[12]开发板USB鼠标控制 开发板USB芯片 信号时序图 鼠标初始化 逻辑设 ...
- FPGA实战篇——【3】按键控制蜂鸣器
FPGA实战--按键控制蜂鸣器 目录 FPGA实战--按键控制蜂鸣器 实验任务: 蜂鸣器 硬件设计 程序设计 rtl文件 按键消抖 ucf文件 编译 RTL图 补充--例化模块 的软件操作: 下载及d ...
- FPGA基础入门【8】开发板外部存储器SPI flash访问
前两篇教程利用数码管project介绍了chipscope和各种烧写开发板的方式,这篇开始继续探索开发板,这次关注外置存储器的控制,外置指的是芯片外部,不是开发板外部.板子上的外置存储器有DDR2和S ...
- FPGA基础入门【6】ChipScope的使用
当FPGA设计中复杂度慢慢变高的时候,仿真的手段也要增加,目前我们仿真的手段都是在ModelSim中配置相应的testbench,给模块发送需要的信号.这种软件仿真的方式有几个缺点: 一个是软件仿真速 ...
- 51单片机怎么显示当前时间_(进阶篇)51单片机之按键控制蜂鸣器、数码管、按键值移位显示...
一.实操演示- 按键控制蜂鸣器 1.图文详细 独立按键硬件电路 蜂鸣器硬件电路 2.连接方式: J20的第3号引脚连接到J7引脚,即P15连接J7. J29的第7.8号引脚连接到JP1的第1.2号引脚 ...
- FPGA基础入门篇(四) 边沿检测电路
FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...
- FPGA基础入门【1】Vivado官方免费版安装
本人自本科大二开始接触FPGA相关知识,现已将近五年,从这篇开始将从比较基础的角度讲述如何一步步了解FPGA.我相信动手一步步做下去是从零开始学习知识的最快方法,因此不会从最基础开始讲,而是在碰到相应 ...
最新文章
- noj数据结构稀疏矩阵的加法十字链表_一个算法毁了一款好游戏?算法和数据结构到底有多重要?...
- 微软亚洲研究院周明:从语言智能到代码智能
- type python_typepython
- jspxcms bug表
- vector 用法小例子
- 喜马拉雅 xm文件转m4a_4K YouTube to MP3 Mac(YouTube转mp3软件)
- Android之网络请求提示Cleartext HTTP traffic to dev*******.com not permitted
- 包装类型与包装类别_包装的重要性
- postgresql 数据表【转】
- 异常处理关于数组java_关于java异常处理的自我学习
- 蔚来:4月交付7102台 同比增长125.1%
- 马斯克公布猴子成功用“意念”打游戏,脑机接口技术距离人类还有多远?
- 通过 Android SDK Manager 安装面向 Android* 模拟器插件的英特尔® 凌动™ x86 系统映像...
- 奇安信荣获中国电子2021年度科技进步奖一、二等奖
- d触发器q端的输出波形_如果把D触发器的输出Q'反馈连接到输入D,则输出Q的脉冲波形的频率为CP脉冲频率f的 。...
- python中读取和保存图片的方法对比
- 试卷自动生成工具使用说明
- table固定表头、固定列
- python jinja2_Python Jinja2使用方法
- java压缩图片大小_java压缩图片、等比例压缩图片