状态机小题

本人初学FPGA,对状态机方面出了个小题,可帮助初学者理解状态机。状态转移图改编自数电书,如有错误或遗漏,还望观者不吝赐教。

状态机,一种数学模型,一种编程思维,一种处理问题的思想,一种……多个课程都设计这一思想。本题从一种角度去描述它。

其可归纳为四个要素:现态、条件、动作、次态。这样的归纳,主要是出于对状态机的内在因果关系的考虑,现态条件是因,动作次态是果。详解如下:

①现态:是指当前所处的状态。

②条件:又称为“事件”,当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。

③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。

④次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。

比如,现有生病和健康两个状态,淋雨和去医务室两个条件,去118和躺宿舍床上两个动作。

天天(人名)体测过了80分,非常健康(现态),天气突然转凉,下雨了,天天觉得自己身体强健,不打伞直接走了出去,淋雨了(条件)。第二天就躺宿舍床上(动作)生病了(次态—>现态)。辅导员喊他去医务室(条件),“妙手回春啊,大夫”,天天又健康了(次态—>现态)可以去118(动作)继续出笔试题了。

天天他渴了,去宿舍楼下自动贩卖机买饮料。他突然发现,自动贩卖机的工作模式不就是一种状态机吗,哈哈,又可以出一道笔试题了。

设自动贩卖机的投币口每次只能投入一枚一元或五角的硬币。投入一元五角钱硬币(一枚一元,一枚五角)后机器自动给出一杯饮料;投入两元钱硬币(两枚一元)后机器自动给出一杯饮料的同时找回一枚五角的硬币。

将该工作原理进行逻辑抽象,下图**/**对应AB/YZ(如01/00中A=Y=Z=0,B=1)。S0表示已投入0元,S1表示已投入0.5元,投入一枚一元硬币时用A=1表示,未投入时A=0。投入一枚五角硬币时用B=1表示,未投入时B=0。给出饮料时Y=1,未给时Y=0。找钱五角时Z=1,不找时Z=0。下图为状态转移图,箭头表示状态转移或者保持。S为状态,AB为条件,YZ为动作。

  1. 请填补图上的6个空缺。(每个2分)
  2. S2表示已投入        元。(3分)
  3. 请自己用文字描述一个两状态的状态机,标注四个要素。(4分)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值