态控制信号包括来自外部的和状态机内部的非进程的信号和当前的状态值来确定下状态的取值内容,以及对外部或对内部其他进程输出控制信号的内容。辅助逻辑部分辅助逻辑部分主要是用于配合状态机的主控组合逻辑和主控时序逻辑进行工作,以完善和提高系统的性能。无论与基于的其它设计方案相比,还是与可完成相似功能的相比,状态机都有其难以逾越的优越性,它主要表现在以下几方面由于状态机的结构模式相对简单,设计方案相对固定,特别是可以定义符号化枚举类型的状态,这切都为综合器尽可能发挥其强大的优化功能提供了有利条件。而且,性能良好的综合器都具备许多可控或不可控的专门用于优化状态机的功能。状态机容易构成性能良好的同步时序逻辑模块,这对于对付大规模逻辑电路设计中令人深感棘手的竞争冒险现象无疑是个上佳的选择,加之综合器对状态机的特有的优化功能,使的状态机解决方案的优越性更为突出。状态机的设计程序层次分明,结构清晰,易读易懂,易排错和修改。在高速运算和控制方面,状态机更有其巨大的优势。由于在中,个状态机可以由多个进程构成,个结构体中可以包含多个状态机,而个单独的状态机或多个并行运行的状态机以顺序方式的所能完成的运算和控制方面的工作与个类似。就运行速度而言,状态机状态变换周期只有个时钟周期,而且,由于在每状态中,状态机可以完成许多并行的运算和控制操作,所以,个完整的控制程序,即使由多个并行的状态机构成,其状态数也是十分有限的。因此有理由认为,由状态机构成的硬件系统比所能完成同样功能的软件系统的工作速度要高出两个数量级。就可靠性而言,状态机的优势也是十分明显的。首先是由于状态机的设计中能使用各种无懈可击的容错技术其次是当状态机进入非法状态并从中跳出所耗的时间十分短暂,通常只有个时钟周期,约数十个,尚不足以对系统的运行构成损害应用设计状态机的具体步骤如下根据系统要求确定状态数量状态转移的条件和各状态输出信号的赋值,并画出状态转移图按照状态转移图编写状态机的设计程序利用工具对状态机的功能进行仿真验证。经过综合比较,决定采用状态机来实现本系统的设计,这样不仅思路很清楚而且可读性也非常强利用状态机实现售票功能,仅需要个模块,避免了考虑各模块相连时的控制问题因此需要首先把整个系统的所有状态都给罗列出来,然后实现每个状态的内容,最后再利用些变量将各个状态连接起来,实现整个系统的基本功能状态机设计根据以上的分析,地铁售票系统可以分为以下五个状态选站状态选票状态投币状态出票状态找零状态而且系统每个状态完成以下功能等待,选站状态在该状态用户完成选站功能,选站完成后,不为零,自动进入选票状态。当无人使用时,系统也停留在该状态,等待下个用户使用。选票状态在该状态用户完成选票功能,选票完成后,不为零,自动进入投币状态。按键可取消操作,系统回到等待选站状态。投币状态在该状态用户可投币,可多次投钱,可同时投硬币和纸币,但不可同时投个以上硬币或张以上纸币。用户投币后,在该状态系统内部完成计算投币总额的功能,并将计算结果跟所需钱数比较,若钱不够,回到投币状态,也可按键将钱退出若钱正好投够,进入出票状态出票结束后,若钱有多余,则自动进入找钱状态。出票状态在该状态完成出票功能,票每周期出张,直到出够为止。票全部出完以后,自动进入出钱状态。找零状态在该状态完成出币功能,若余额不为零,继续在此状态出币,若余额已为零,系统回到等待选站状态。以上所有功能按时钟周期进行选择票数投币选择站名称余额找零出票给出几个变量,控制状态间的转移。根据判断图状态转移图是否完成选站,根据判断是否完成选票,根据判断投币是否足够,根据判断出票是否足够,根据判断找钱是否结束设计中输入有其中是时钟周期信号,为系统复位信号,是乘客所选的出站号,程序中共设置了个站,对应的票价为元和元代表本站,站票价为元,站票价为元而表示乘客所选的票数,为方便设计,乘客次购车票数限制在张以内表示乘客投入的纸币,表示乘客投的硬币,是乘客在选票和投币期间用来取消操作的设计中输出有,其中表示出票,周期数即是出票数,表示找出的零钱,若所投钱币总额恰好为车票总额,则直为,表示所投金额不足时发出的警报,当继续投币至足额时会自动恢复为,交易正常进行是用来标号各个状态的加这个输出主要是考虑到调试程序时能更方便地观察到状态之间的转换,更容易发现问题,调试程序系统设计流程图经过分析,整个系统的流程图设计如图所示图系统流程图系统上电后首先对于整个系统进行进行复位,处于等待乘客选站状态当乘客选择了出站名之后,系统内部设定相应的票价元和元然后系统进入选择购买票数同时计算出票价总额选票完成后系统转到投币状态,系统对于乘客所投入的硬币角和元和纸币元,元,元,元进行识别,在每次投币结束后累加投币总额,然后判断所投钱币是否足够,如果不足继续停留在投币状态如果投币足够,系统进入到出票状态,每个周期出张票,出票结束后进行余额找零余额找零按照从大到小元,元,元,元,角的原则逐额进行退钱,找零结束系统返回到初始等待选站状态购票过程中,在选择了站点以后,乘客可以按下取消键,系统返回等待选站状态,可以进行重新选站或结束本次操作在投币过程中,如果所投钱币未达选站结束,进入选票状态未选站,停留在选站状态选择票数计算票价最多购张票选票结束,进入投币状态未选票,停留在选票状态进行投币连续投币,并进行累加投入硬币角元连续投币,并进行累加投币期间取消操作,退还所投钱币出票每个时钟周期出张票出票结束,余额找出继续出票余额找出,按从大到小原则退钱元,元,元,元,角元元元元角余额找出结束标志找零结束,回到选站状态继续找零其他任何情况,均回到选站状态参考文献辛春艳,硬件描述语言北京国防工业出版社张霞在现代中的应用现代电子技术夏宇闻复杂数字电路与系统的设计技术北京航空航天大学出版社赵世霞与微机接口设计北京清华大学出版社姜立东语言程序设计及应用第版北京邮电大学出版社张原可编程逻辑器件设计及应用机械工业出版社刘宝琴可编程逻辑器件及其应用北京清华大学出版社曾繁泰程序设计,第版清华大学出版社候伯亨,顾新硬件描述语言与数字逻辑电路设计西安电子科技大学出版社修订版林敏,方颖立数字系统设计与高层次综合电子工业出版社甘历应用与开发实践科学出版社,