一、实验内容
有四个按键,分别控制四个LED灯的亮灭切换。
二、实验说明1、代码中,使用位宽为4的key_h
作为输入,分别连接着四个按键,也即每一位的高低对应着按键的松按。使用位宽为4的led
作为输出,分别连接着四个LED,也即每一位的高低对应控制LED的亮灭切换。
2、采集按键状态的时候,采用了这篇文章:FPGA中按键消抖的三种方案 中的方案二来对按键进行消抖。
3、在检测下降沿的时候,使用(前一拍数据)&(后一拍数据取反)的方式进行检测。若结果为1,则说明检测到了下降沿。
三、代码解析1、RTL代码
//4个独立按键S3/S4/S5/S6的按下与否,对应控制LED D24/D25/D26/D27的亮灭切换。
module at7(
input sys_clk_i, //外部输入50MHz时钟信号
input ext_rst_n, //外部输入复位信号,低电平有效
input [3:0] key_h, //4个独立按键输入,未按下为高电平,按下后为低电平
output reg[3:0] led //4个LED指示灯接口
);
/***********************************************************
第一部分:检测按键的上升沿或者下降沿
************************************************************/
wire key; //所有按键值相与的结果,用于按键触发判断
reg[3:0] keyr; //按键值key的缓存寄存器
//四个键中,任何一个被按下,key都会变为0;除非全都未按下,key才为1。
assign key = key_h[0] & key_h[1] & key_h[2] & key_h[3];
always @(posedge sys_clk_i or negedge ext_rst_n)
if (!ext_rst_n) keyr
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?