使用工具:Xilinx ISE 14.7
问题描述:
分析:
这个系统使用3钟投币输入:5美分,10美分, 25美分。一瓶汽水消耗25美分。所以有以下几种情况:
5美分的状态:当投币25美分时找零5美分,其余情况继续投币进入相应状态
10美分的状态:当投币25美分时找零10美分,其余情况继续投币进入相应状态
15美分的状态:当投币25美分时找零15美分,当投币10美分时找零0美分,其余情况继续投币进入相应状态
20美分的状态:当投币25美分时找零20美分,当投币10美分时找零5美分,当投币5美分时找零0美分
因此有以下状态图设计:
在这里涉及到了投币过程的模拟,有两种方案一种是3种投币每个投币一个按钮以此来控制,每次投币时按下对应按钮即可;另一种是1个按钮加3个开关,每次投币时拨动对应开关,再按下按钮表示投币。两种方案的优缺点:第一种操作简单但是硬件资源占用较多,对于FlipFlop的资源占用率较高,并且用时高于后者。
在这里由于工程的代码量较大,就不贴出来了,下面给出相应工程下载的链接:
单按钮多开关:点击打开链接
多按钮:点击打开链接