- 25
- 0
- 约1.04万字
- 约 15页
- 2016-05-28 发布于湖北
- 举报
地铁模拟售票系统
撰写日期:2013年9月13日
目录
一、设计课题要求及分析 - 3 -
二、 流程图描述 - 6 -
三、 状态机设计和状态转移图描述 - 7 -
四、程序设计及解释 - 7 -
五、程序调试和验证 - 12 -
六、 结论 - 14 -
七、 参考文献 - 15 -
一、设计课题要求及分析
设计题目:地铁售票模拟系统
功能描述:用于模仿地铁售票的自动售票,完成地铁售票的核心控制功能。
功能要求:售票机有两个进币孔,一个是输入硬币,一个是输入纸币,硬币的识别1元的硬币,纸币的识别5元,10元。乘客可以连续多次投入钱币。乘客可以选择的种类为2元、3元和4元,乘客一次只能选择一个出站口。购买车票时,乘客先选择出站名,然后选择所需的票数,再进行投币,投入的钱币未达到所需金额时,显示信号,提醒钱不够,需要继续投入钱币,如果投入的钱币达到所需金额时,售票机自动出票,并找出余额,本次交易结束,等待下一次的交易。在投币期间,乘客可以按取消键取消本次操作,钱币自动退出。
设计分析:经过分析, 本地铁自动售票系统的设计需要实现以下几项主要功能: 站点选择, 票数选择, 投币处理, 出票及余额找零。
本系统可以采用模块化设计和有限状态机的设计方案来实现。
采用模块化设计方法即从整个系统的功能出发, 将系统的整体逐步分解为若干个子系统和模块,然后用VHDL语言对各个模块进行编程,最后形成顶层文件,在QUARTUSⅡ环境下进行编译与仿真,检查所编程序是否运行正确。如果出现错误,需要进行修改,直到完全通过为止。
采用模块化设计的优点在于:对设计的描述从上到下逐步由粗略到详细,符合常规的逻辑思维习惯。便于由多个设计者同时进行设计从而加速整个项目的开发进度;每个子模块都能够灵活使用综合和实现工具独立进行优化,从而达到更好的优化结果;调试、更改某个子模块时,不会影响其他模块的实现结果,保证了整个设计的稳定性与可靠性。
有限状态机(Finite State Machine,简称FSM)是指输出向量不仅依赖于当前输入向量,也依赖于过去输入向量序列的电路.一个有限状态机电路由寄存器逻辑(时序逻辑)和组合逻辑组. 有限状态机
一般有限状态机的VHDL组成 :
说明部分:
主要是设计者使用TYPE语句定义新的数据类型,如:
TYPE states IS (st0, st1, st2, st3, st4, st5);
SIGNAL present_state, next_state: states;
主控时序逻辑部分:
任务是负责状态机运转和在外部时钟驱动下实现内部状态转换的进程。时序进程的实质是一组触发器,因此,该进程中往往也包括一些清零或置位的输入控制信号,如Reset信号。
主控组合逻辑部分:
任务是根据状态机外部输入的状态控制信号(包括来自外部的和状态机内部的非进程的信号)和当前的状态值current_state来确定下一状态next_state的取值内容,以及对外部或对内部其他进程输出控制信号的内容。
辅助逻辑部分:
辅助逻辑部分主要是用于配合状态机的主控组合逻辑和主控时序逻辑进行工作,以完善和提高系统的性能。
无论与基于VHDL的其它设计方案相比,还是与可完成相似功能的CPU相比,状态机都有其难以逾越的优越性,它主要表现在以下几方面:
由于状态机的结构模式相对简单,设计方案相对固定,特别是可以定义符号化枚举类型的状态,这一切都为VHDL综合器尽可能发挥其强大的优化功能提供了有利条件。而且,性能良好的综合器都具备许多可控或不可控的专门用于优化状态机的功能。
状态机容易构成性能良好的同步时序逻辑模块,这对于对付大规模逻辑电路设计中令人深感棘手的竞争冒险现象无疑是一个上佳的选择,加之综合器对状态机的特有的优化功能,使的状态机解决方案的优越性更为突出。
状态机的VHDL设计程序层次分明,结构清晰,易读易懂,易排错和修改。
在高速运算和控制方面,状态机更有其巨大的优势。由于在VHDL中,一个状态机可以由多个进程构成,一个结构体中可以包含多个状态机,而一个单独的状态机(或多个并行运行的状态机)以顺序方式的所能完成的运算和控制方面的工作与一个CPU类似。
就运行速度而言,状态机状态变换周期只有一个时钟周期,而且,由于在每一状态中,状态机可以完成许多并行的运算和控制操作,所以,一个完整的控制程序,即使由多个并行的状态机构成,其状态数也是十分有限的。因此有理由认为,由状态机构成的硬件系统比CPU所能完成同样功能的软件系统的工作速度要高出两个数量级。
就可靠性而言,状态机的优势也是十分明显
原创力文档

文档评论(0)