- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一个简单的有限状态机的状态图如图7-7所示,对应的VHDL描述如下: LIBRARYIEEE; USE IEEE.std_logic_1164.all; ENTITY state_machine IS PORT(reset,clk,x:INSTD_LOGIC; z:OUTSTD_LOGIC); END ENTITY state_machine; ARCHITECTURE behavioral OF state_machine IS TYPE statetype IS(state0,state1); SIGNAL state,next_state:statetype:=state0; BEGIN Comb_process:PROCESS(state,x)IS BEGIN CASE state IS WHEN state0= IF x=′0′THENnext_state=state1;z=′1′; ELSE next_state=state0;z=′0′; ENDIF WHEN state1= IFx=′1′THEN next_state=state0;z=′0′; ELSE next_state=state1;z=′1′; END IF END CASE; END PROCESSComb_process; Clk_process:PROCESS(reset,clk)IS BEGIN IF(reset=′1′)THENstate=state0; ELSEIF(rising_edge(clk))THENstate=next_state; END IF END PROCESSClk_process; END ARCHITECTURE behavioral; 图7-7 有限状态机的状态图 5.自动售货机的描述 自动售货机作为一个较为复杂的有限状态机设计,它的VHDL描述具有一定的代表性。设计的功能描述是:某自动售货机中仅有一种饮料可以出售,此饮料的售价为2.5元;此自动售货机可以识别1元、2元和5角等三种货币;如果投入金额总值等于或超过2元就可以将饮料放出,并具有相应的找零钱功能。 解决方案是可以使用有限自动机实现自动售货机的控制。该自动机的输入包括y1(表示投入1元),y2(表示投入2元)和j5(表示投入5角)。这三个信号在有相应货币输入时保持一个周期的有效,并且最多只有一个信号为有效。此外,该自动机还必须有时钟clk和复位信号rst输入。该自动机的输出信号有三个:cola_out,有效时表示输出一罐饮料;j5_out,有效时表示找5角的零钱;y1_out,有效时表示找1元的零钱。 该有限自动机的状态转移图如图7-8所示。 图7-8 自动售货机的总体结构和有限状态自动机 上述自动机的状态转移图看似复杂,却非常有规律。其中,每个状态表示了当前已经投入的金额,5表示已经投入5角,10表示已经投入1元,等等;系统复位后的初始状态为0,表示未有钱币投入。 对于从0~20的五个状态,由于已经投入的钱币还没有达到2.5元,因此系统还能接收新的钱币。所以,这些状态的输出均有三条不同的路径。以状态20为例,此时已经接收了2元,如果继续投入5角则进入25状态,表示接收了2.5元;如果继续投入1元则进入35状态,表示已经接收了3.5元;如果继续投入2元,则进入40状态,表示已经接收了4元。 对于25、30、35和40等状态,由于输入的金额已经超过了2.5元,因此不再接收输入,主要进行找零和放出饮料操作。对于25状态,由于输入的金额刚好等于2.5元,因此此时直接放出饮料即可。对于30和35状态,则需要在放出饮料的同时进行找零操作(分别找零5角和1元)。对于40状态,由于需要找零两次,因此先找零1元,并将状态转移到30状态,然后继续后续的找零和放出饮料操作。 该有限自动机的VHDL程序如下所示: LIBRARYIEEE; USEIEEE.std_logic_1164.all; ENTITYvending_machineIS PORT(clk,rst:INSTD_LOGIC; j5,y1,y2:INBOOLEAN; cola_out,j5_out,y1_out:OUTSTD_LOGIC); ENDENTITYvending_machine; ARCHI
您可能关注的文档
- 维修电工高级理论知识复习(1).ppt
- 维生素d与慢性阻塞性肺疾病.ppt
- 维修电工高级理论知识试卷06.ppt
- 维护我国国家文化安全.ppt
- 维修电工(高级)plc实训课题 (1).ppt
- 维修电工(高级)plc实训课题.ppt
- 维修电工试题(单选230题).ppt
- 维盟无线系列产品.ppt
- 维修电工中级第3讲直流电路的分析方法.ppt
- 维修工具与维修方法.ppt
- 西安工业信号检测与估计sde_02c_ch2 mvu.ppt
- 西安工业信号检测与估计sde_01b1惠更斯原理在雷达中的应用--相位控制雷达原理.ppt
- 西安工业信号检测与估计sde_01 courseintro.ppt
- 西安工业大学电信学院嵌入式课件chapter_5(第9-10节).ppt
- 西安工业信号检测与估计sde_01bradar.ppt
- 西安工业信号检测与估计sde_14 ch10 贝叶斯原理.ppt
- 西安工业信号检测与估计sde_14 ch10 11 12 贝叶斯估计.ppt
- 西安工业信号检测与估计sde_12 ch8 最小二乘估计应用.ppt
- 西安黄河中学 李新军.ppt
- 西安工业大学装饰材料于施工工艺.ppt
原创力文档


文档评论(0)