欢迎来到天天文库
浏览记录
ID:52512808
大小:1.63 MB
页数:28页
时间:2020-04-09
《状态机-自动售货机.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、状态机设计--自动售货机15.1状态机设计相关语句5.1.1类型定义语句TYPE数据类型名IS数据类型定义OF基本数据类型;或TYPE数据类型名IS数据类型定义;TYPEst1ISARRAY(0TO15)OFSTD_LOGIC;TYPEweekIS(sun,mon,tue,wed,thu,fri,sat);TYPEm_stateIS(st0,st1,st2,st3,st4,st5);SIGNALpresent_state,next_state:m_state;TYPEBOOLEANIS(FALSE,TRUE);25.1状态机设计相关语句5.1.1类型定义语句TYPEmy_logicIS
2、('1','Z','U','0');SIGNALs1:my_logic;s1<='Z';SUBTYPE子类型名IS基本数据类型RANGE约束范围;SUBTYPEdigitsISINTEGERRANGE0to9;35.1状态机设计相关语句5.1.2状态机的优势1.状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点;2.由于状态机的结构相对简单,设计方案相对固定;3、状态机容易构成性能良好的同步时序逻辑模块;4、与VHDL的其他描述方式相比,状态机的VHDL表述丰富多样、程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的好处;5、在高速运算和控制方面,状态机更有其巨大
3、的优势。6、高可靠性。45.1状态机设计相关语句5.1.3状态机结构1.说明部分ARCHITECTURE...ISTYPEFSM_STIS(s0,s1,s2,s3);SIGNALcurrent_state,next_state:FSM_ST;...55.1状态机设计相关语句5.1.3状态机结构2.主控时序进程图5-1一般状态机结构框图65.1状态机设计相关语句5.1.3状态机结构3.主控组合进程4.辅助进程7状态机(StateMachine)是一类很重要的时序电路,是很多数字电路的核心部件,是大型电子设计的基础。状态机相当于一个控制器,它将一项功能的完成分解为若干步,每一步对应于二进制
4、的一个状态,通过预先设计的顺序在各状态之间进行转换,状态转换的过程就是实现逻辑功能的过程。状态机设计--自动售货机8图1一般状态机结构框图9要求:货物单价1.5元,有1元和0.5元两种硬币,每次投入一枚硬币,机器能找零。自动售货机10状态机设计--自动售货机状态转换图2硬件验证测试4需求分析31编程及仿真33111、需求分析货物单价:1.5元两种硬币:1元或0.5元每次可投入一枚硬币可以输出货物也可能找零投币口找零口出货口自动售货机的VHDL设计。要求:121、需求分析货物单价:1.5元两种硬币:1元或0.5元每次可投入一枚硬币可以输出货物也可能找零自动售货机的VHDL设计。要求:三种
5、输入:0元0.5元1元五种状态已投入0元已投入0.5元已投入1元已投入1.5元已投入2元S0S1S2S3S4三种输出:无输出有货物,无找零有货物,并找零000110IN1Y001011132、状态转换图IN1状态/YS0/00S2/00S3/10S1/00S4/110000010000000101011010101010142、状态转换图IN1状态/YS0/00S2/00S3/10S1/00S4/110000010000000101011010101010153、编程及仿真实体结构体163、编程及仿真IN1CLKYZDLIBRARYIEEE;USEIEEE.std_logic_1164
6、.ALL;ENTITYZDISPORT(clk,RST:INstd_logic;IN1:INstd_logic_vector(1DOWNTO0);Y:OUTstd_logic_vector(1DOWNTO0));ENDZD;RST实体173、编程及仿真结构体183、编程及仿真ARCHITECTUREbeOFZDIS……BEGINreg:PROCESS(RST,clk)--时序进程BEGIN……Endprocess;com:PROCESS(current_state,IN1)--组合进程BEGIN……Endprocess;ENDbe;IFRST='1'THENcurrent_state<
7、=S0;ELSIFrising_edge(clk)THENcurrent_state<=next_state;ENDIF;CASEcurrent_stateISWHENS0=>WHENS1=>WHENS2=>WHENS3=>WHENS4=>ENDCASE;Y<="00";IFIN1=“00”THENnext_state<=S0;ELSIFIN1="01"THENnext_state<=S1;ELSIFIN1="10"THENnext_state
此文档下载收益归作者所有