资源描述:
《基于vhdl语言的地铁自动售票系统设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于VHDL的地铁自动售票系统设计摘要本文主要介绍了利用VHDL设计语言和Altera公司的MAX+PLUSII软件开发平台,来设计实现地铁自动售票系统的核心控制部分的功能:站点选择,票数选择,投币处理,余额计算,自动出票等功能。在本设计中采用了有限状态机的设计方法,将整个售票系统的控制部分化分为五个状态:选站状态,选票状态,投币状态,出票状态和余额找零状态。最后通过对程序的调试以及相应部分功能的仿真,验证了整个系统的原理和本设计方案的正确性。由于采用了有限状态机的设计方法,使得本系统运行可靠性高,非法状态易控制。关键词:FPGA,CPLD,VHDL语言,MAX+PLUSII软件,有限状态
2、机,,地铁自动售票系统41基于VHDL的地铁自动售票系统设计目录第一章绪论11.1电子器件的发展和现状11.2设计方法的发展31.3层次化的设计与VHDL的应用51.4本课题的提出与意义81.5本课题研究内容8第二章VHDL语言介绍102.1什么是VHDL102.2VHDL语言的特点102.3VHDL的设计流程112.4VHDL程序的基本结构13第三章MAX+PLUSII软件介绍143.1MAX+PLUSII简介143.2Max+PlusⅡ开发系统的特点153.3Max+PlusⅡ功能简介163.4Max+plusⅡ设计过程20第四章地铁售票系统的设计与实现234.1课题要求234.2设计
3、分析234.3状态机设计25第五章结束语32附录33参考文献40致谢4141基于VHDL的地铁自动售票系统设计41基于VHDL的地铁自动售票系统设计第一章绪论1.1电子器件的发展和现状电子技术的发展总是同电子器件的发展密切相关的,由于电子器件的不断更新换代,电子技术得到了飞速发展,当今信息技术被广泛应用在国民经济的方方面面。多媒体技术的普及、高速宽带网络的建设、数字电视的出现以及与我们日常生活息息相关的各种家用电器,都离不开微处理器、存储器和一些采用行业标准的专用芯片。这些电子器件的发展经历了从电子管、晶体管、小规模集成电路、中规模集成电路到大规模集成电路和超大规模集成电路几个阶段,其发展
4、趋势是体积越来越小,集成度越来越高。随着半导体技术的迅速发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担,系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好在自己的实验室里就能设计并制造出适用的ASIC芯片,并且能够得到实际的应用。使用ASIC完成电子系统的设计,其优点是集成度高、保密性强、可大幅度地减少印刷电路板的面积和接插件、电路性能好并能降低装配和调试费用、更适合较大规模批量生产、降低生产成本。例如,现在微机中使用的显卡、网卡、数字电视等都是专用的ASIC芯片。采用ASIC设计的不足之处是一次性的投资大,设计周期一般比较长,不
5、便于以后修改设计,因而近几年在ASIC领域出现了一种半定制电路,即现场可编程逻辑器件FPLD。目前使用较多的可编程逻辑器是现场可编程门阵列FPGA(fieldprogrammablegatearray)和复杂可编程逻辑器件CPLD(complexprogrammablegatearray)。早期使用的可编程器件有PROM、EPROM、E2PROM、PAL、GAL等,这些芯片的容量一般比较小,只能完成简单的数字逻辑功能,这些器件基本上是使用专用的编程器进行装载。CPLD和FPGA的芯片是在早期使用的PAL和GAL基础上发展起来的,相比早期的可编程器件,现场可编程逻辑器件FPLD的容量大,器件
6、的容量远远大于PAL和GAL,更适合做时序和组合逻辑电路的设计,41基于VHDL的地铁自动售票系统设计不但集成度高,而且逐渐向低功耗发展,芯片的使用电压有+5V、+3.3V和+2.5V几种,有的芯片外部是+5V而内部的工作电压则是+3.3V或+2.5V。现在市场上FPLD的品种很多,使用较多的是Altera、Xilinx和Lattice这3个公司的产品,各公司都有不同型号的CPLD和FPGA产品,例如,Xilinx的XC系列;Altera的EPLD系列、FPGA系列;Lattice的ispLSI、ispGAL等。由于各个公司的FPLD结构不同,使用的装载电缆线是不一样的,设计软件也不同,但
7、共同的特点是:现场可编程逻辑器件FPLD都可以在系统进行编程加载程序,不需要使用专用的编程器,它们都是直接将实验系统和计算机的并行口连接,通过运行软件对芯片进行装载,在实验室中就可将大量的数字电路设计集成到一个大芯片中,实现系统的微型化和可靠性。目前工程设计人员通常都采用这种方法进行电路设计。1.CPLD或EPLD芯片这类器件的使用特点是:芯片一经上电加载即已完成编程,不必在每次上电时重新进行加载,也就是当程序烧入芯片后