基于FPGA的简易棋钟设计

一、项目要求

自行设计一个棋钟,功能如下:
$a$. 棋类比赛中每步棋有时间限制。假设A、B两位棋手比赛,当A棋手落子后按下A键,此时B棋手的秒表开始倒计时,A棋手的秒表恢复为倒计时初始值;当B棋手落子后按下B键,A棋手的秒表开始倒计时,B棋手的秒表恢复为倒计时初始值。
$b$. 倒计时初始值可设置为10秒或30秒两档。
$c$. 当倒计时至5秒内时,蜂鸣器每秒响一下或led灯闪烁1下。
$d$. 当某选手超时判负时,蜂鸣器长响,led灯持续闪烁,数码管显示出获胜的棋手编号(A或B)。
$e$. 其他功能可自由发挥。

依据设计目标,提炼出以下几点要求:

  1. 时钟分频功能,控制计时、LED及蜂鸣器工作频率。
  2. 倒计时功能,满足双方的计时要求。
  3. LED闪烁功能,两种闪烁模式。
  4. 蜂鸣器鸣叫功能,两种鸣叫模式。
  5. 数码管显示功能,倒计时及获胜方显示。
  6. 按键消抖功能,对AB切换按钮消抖。
  7. 模式切换功能,在30s和10s倒计时功能间切换。
  8. 状态判断切换功能,倒计时状态、倒计时5s内、一方获胜等状态,并控制棋钟工作。