A.17 时序逻辑实例四:状态机(过程分析)
以一个经典的数字IC设计笔试题,自动饮料售卖机,来给大家做示例讲解。
题目
要求设计一个自动饮料售卖机,饮料10分钱,硬币有5分和10分两种,并考虑找零。
(1)画出状态转移图,公式和卡诺图分析
(2)使用Verilog实现
(3)搭建测试平台做简单验证
下面带着大家一步步地完成。
设计过程
第一步
确定输入输出。
A=1表示投入5分钱,B=1表示投入10分钱,Y=1表示弹出饮料,Z=1表示找零。
第二步
确定电路状态。
S0表示售卖机里还没有钱币,S1表示已经投了5分钱。
注意这里不存在其他的情况,比如已经投了10分钱,那已经足够完成本次交易,电路应该回归初始的S0状态,所以只会有S0和S1这两种状态。
第三步
画状态转移图。
S0状态时:
(1)不投钱,则AB=00,此时肯定不会弹出饮料,也不会找零,因此YZ=00