01
按键消抖基础
机械按键的物理特性与抖动现象分析,为什么需要消抖。
基础物理
02
消抖方法概览
硬件消抖(RC滤波、RS触发器)与软件消抖(延时、计数)的对比。
硬件软件
03
软件消抖核心算法
基于状态机的按键消抖原理,三态状态机设计(空闲、抖动、稳定)。
状态机算法
04
Verilog实现状态机消抖
三段式状态机代码编写,参数化消抖时间。
VerilogRTL
05
消抖模块仿真验证
编写Testbench,观察抖动与消抖后的波形对比。
仿真波形
06
AXI4-Lite接口基础
AXI4-Lite协议概述,5个独立通道(读地址、读数据、写地址、写数据、写响应)。
协议总线
07
AXI4-Lite握手协议
VALID-READY握手机制,依赖关系与传输时序。
握手时序
08
AXI4-Lite地址映射
寄存器地址分配原则,如何将外设寄存器映射到AXI地址空间。
地址映射
09
AXI4-Lite读事务
读地址通道与读数据通道的交互,单次读传输时序。
读事务时序
10
AXI4-Lite写事务
写地址、写数据、写响应三个通道的协同,单次写传输时序。
写事务协同
11
AXI4-Lite接口状态机设计
读状态机与写状态机的状态转移图。
状态机FSM
12
Verilog实现AXI4-Lite从机
完整的AXI4-Lite从机接口代码,支持32位数据总线。
Verilog从机
13
AXI4-Lite从机仿真
编写AXI4-Lite Master BFM,验证读写操作。
仿真BFM
14
按键消抖模块的AXI封装
将消抖模块封装为AXI4-Lite外设,定义控制/状态寄存器。
封装寄存器
15
寄存器规划
控制寄存器(使能、复位)、状态寄存器(按键值、边沿标志)、数据寄存器(消抖后的键值)。
规划CSR
16
AXI写操作实现寄存器配置
通过AXI总线写入控制寄存器,配置消抖参数。
配置写操作
17
AXI读操作读取按键状态
通过AXI总线读取状态寄存器,获取按键信息。
读操作状态
18
中断机制设计
按键按下/释放产生中断,AXI中断控制器接口。
中断控制器
19
中断寄存器规划
中断使能寄存器、中断状态寄存器、中断清除寄存器。
寄存器中断
20
多按键扩展设计
支持4x4矩阵键盘的消抖与AXI接口设计。
矩阵键盘扩展
21
矩阵键盘扫描算法
行扫描与列读取,结合消抖状态机。
扫描算法
22
AXI4-Stream接口基础
Stream协议与Lite协议的区别,TLAST、TKEEP信号。
Stream协议
23
按键数据流化
将按键事件打包为AXI4-Stream数据包,包含键值和时间戳。
数据包流
24
FIFO缓存设计
异步FIFO实现按键事件的缓存,防止数据丢失。
FIFO缓存
25
AXI4-Full接口简介
突发传输、地址递增、数据交织,与Lite的对比。
Full突发
26
系统集成
将按键控制器集成到SoC系统中,连接CPU与中断控制器。
集成SoC
27
驱动开发基础
Linux字符设备驱动框架,ioremap与readl/writel。
驱动Linux
28
按键驱动实现
在Linux中编写按键驱动,处理中断与轮询模式。
驱动中断
29
性能优化
降低中断频率,使用边缘触发与去抖滤波的硬件加速。
优化硬件加速
30
项目实战
搭建完整FPGA原型,使用Zynq或国产FPGA验证按键控制器功能。
FPGA原型