文章
简介
本系列文章主要针对FPGA初学者编写,包括FPGA的模块书写、基础语法、状态机、RAM、UART、SPI、VGA、以及功能验证等。将每一个知识点作为一个章节进行讲解,旨在更快速的提升初学者在FPGA开发方面的能力,每一个章节中都有针对性的代码书写以及代码的讲解,可作为读者参考。
11
第十一章:按键消抖
之前的章节讲解了呼吸灯、状态机、top-down 设计,本章将这些知识点进行串联起来,设计要求如下:
①在开发板上完成自动售货机的实验,投币的动作通过按键实现,当按1次按键(按下到抬起算一次),算作投币1次;
②按下一次按键,led 灯亮一个,按下两次按键后,led 灯亮两个,当按三次按键后,用呼吸灯充当出可乐的效果,呼吸灯持续十秒后熄灭,状态回到初始状态。
根据上面的要求,先画出对应的状态转移图如图 1 所示。
图 1 状态转移图
根据图 1 所示的状态转移图可以描述出该状态机,IDLE 状态、ONE 状 态、TWO 状态、THREE 状态的跳转条件均是 key(按键),TH