基于FPGA的自动售货机的课设说明书
基于FPGA的自动售货机控制系统的设计
基于FPGA的自动售货机控制系统的设计摘要本文旨在设计一种基于FPGA(现场可编程门阵列)的自动售货机控制系统。
该系统利用FPGA芯片的可编程特性和高性能,能够实现灵活、可靠的自动售货机操作。
本文将详细介绍系统的设计原理、硬件架构和关键功能,并提供实施建议和性能评估。
引言自动售货机已经成为现代社会的常见设备,用于快速、方便地购买商品。
然而,传统的自动售货机控制系统常常受限于固定的硬件结构和有限的功能。
为了提升自动售货机的灵活性和性能,本文提出基于FPGA的控制系统设计。
设计原理基于FPGA的自动售货机控制系统利用FPGA芯片的可编程特性,通过组合逻辑和时序逻辑实现自动售货机的各项功能。
系统将通过外部接口与售货机的硬件部分进行通信,并处理用户输入、商品库存、货币交易等关键操作。
通过FPGA的灵活配置和高速性能,该控制系统能够实现实时响应、精确计算和可靠交互。
硬件架构系统的硬件架构主要包括FPGA芯片、外部接口电路、按钮和显示屏。
FPGA芯片作为核心处理单元,负责运行控制程序和管理系统资源。
外部接口电路用于与售货机硬件部分进行数据传输和控制信号的交互。
按钮和显示屏提供用户与自动售货机进行交互的接口。
关键功能基于FPGA的自动售货机控制系统具备以下关键功能:1. 商品选择和购买:用户可以通过按钮选择所需商品,并进行购买操作。
系统将根据用户选择,实时更新商品库存和计算金额。
2. 货币交易:系统支持不同货币单位的识别和计算。
用户可以通过投币或刷卡等方式完成支付,系统将验证货币的合法性并进行交易处理。
3. 商品库存管理:系统能够实时监测商品库存,并在库存不足时提醒用户或停止销售。
管理员可以通过特定操作进行库存的添加和更新。
4. 故障监测和报警:系统能够监测售货机硬件部分的运行状态,并在故障发生时及时报警或进行相应处理。
实施建议实施基于FPGA的自动售货机控制系统时,可以考虑以下建议:1. 确定系统需求,并合理规划FPGA芯片和外部接口电路的选型和布局。
(完整word版)基于FPGA的自动售货机控制器设计
大连海事大学毕业论文二○一四年六月基于FPGA的自动售货机控制器设计专业班级:电子信息工程3班姓名:林慧指导老师:严飞信息科学技术学院摘要随着科学技术的迅猛发展、人们生活水平的逐日提高,自动售货机作为自动化商业机械的代表被广泛用于公共场所自动售货,给人们的生活带来了极大的方便.本文介绍的是基于FPGA的自动售货机控制器的软件设计,此自动售货机控制器包含八个大模块:购物模块,定价模块,投币模块,比价模块,计时模块,复位模块,购物显示模块以及数码管显示模块。
投入钱币并通过键盘选择后再经比价处理模块,将对应的出货找零信息通过LED 灯和数码管显示模块反映。
本设计借助于VHDL语言来编程实现八个模块的基本功能,在Quartus II软件中实现模块的设计、编译、综合、优化、仿真直至生成器件之后下载到FPGA目标芯片上。
在ZY11EDA13BE 实验系统中完成自动售货机的功能实现,通过开关、键盘等完成购物请求、投币等操作,通过数码管及指示灯显示系统运行结果,从而可以更清晰地观察到自动售货机的运行情况。
关键词:自动售货机控制器;EDA;FPGA;QuartusII;VHDLABSTRACTWith the rapid development of science and technology as well as people’s living standards rise day by day. As a representative of commercial machinery automation vending ,the vending machine business is widely used in public places ,has bought great convenience to people's lives.This paper describes the software design and hardware design based on FPGA vending machine controller, the vending machine controller module consists mainly of eight modules:shopping module,price module,coin module,timing module, price comparison module, reset module, shopping display module and digital display module. After parity processing module for selected commodity prices and the amount of investment comparison,the corresponding change information delivery through LED lights and the digital display module display.This design using VHDL hardware description language programming to describe the basic function of eight modules。
基于FPGA的自动售货机-课程设计
武汉理工大学《电子线路EDA》课程设计说明书绪论自动售货机(Vending Machine,VEM)是能根据投入的钱币自动付货的机器。
自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。
是一种全新的商业零售形式,又被称为24小时营业的微型超市。
能分为三种:饮料自动售货机、食品自动售货机、综合自动售货机。
它能够在无人操作的情况下根据程序自动地销售商品。
自动售货机不受工作时间及地点限制的特点,使其实现了一种提高营业额的同时又降低了成本的销售模式。
进入21世纪之后,自动售货机的发展进一步加快,智能化的自动售货机正在逐步进入普通民众的生活之中,在未来,自动售货机的发展将会更加迅速,更加智能的自动售货机会让人们的生活更加便利。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
因此,此次运用VHDL语言来实现一个简易的自动售货机是一个很有意义并且非常有乐趣的课题!关键词:自动售货机 VHDL1 课程设计实验要求1.1 初始条件设计一个自动售货机控制器,具有投币和选择商品等功能。
可出售四种商品,分别为纯净水(2元)、可乐(4.5元)、牛奶(5元)、果汁(5.5元)。
在购买过程中,采取投币方式,只能投入5元、10元或20元三种规格的纸币,且一次只能投入一张纸币。
1.2 要求完成的主要任务1.顾客通过按键选择某种商品后,由数码管显示该商品价格。
顾客投币过程中,数码管显示投币额。
基于FPGA自动售货机设计
第一层次是行为描述。所谓行为描述,实质 上就是对整个系统的数学模型的描述计过程中存 在的问题。在行为描述阶段,并不真正考虑实际 的操作和算法、用何种方法来实现,而是考虑系 统的结构及其工作的过程是否能够达到系统设计 的要求。
第二层次是RTL方式描述。这一层次成为寄 存器传输描述(又称数据流描述)。如前所述,用 行为方式描述的系统结构的程序,其抽象程度高, 是很难直接映射到具体逻辑元件结构的。想要得 到硬件的具体表现,必须将行为方式描述的 VHDL语言程序改写为RTL方式描述的VHDL语言 程序。也就是说,系统采用RTL方式描述,才能 导出系统的逻辑表达式,才能进行逻辑综合。
五、主要参考文献
[1] 刘韬,楼兴华. 《FPGA数字电子系统设计与开发实例导航》[M]. 北京:人民邮电出版社,2005.6, 27~36. [2] 王辉,殷颖,陈婷,俞一鸣. MAX+plusⅡ和QuartusⅡ应用于开发技巧[M]. 北京:机械工业出版社,2007.1, 293~316. [3] 吴冬梅,吴延海,邓玉玖. 基于CPLD/FPGA 的计费器[J];电子技术应用,2004(11):71~73. [4] 黄智伟. FPGA 系统设计与实践[M].,北京:电子工业出版社,2005,200~217. [5] 黄建新,刘迈,谭克俊. 基于FPGA芯片设计计费器的研究[J]. 吉林化工学院学报,2003(03):52~55. [6] 候伯亨,顾新. VHDL 硬件描述语言与数字逻辑电路设计[M]. 西安:西安电子科技大学出版社,2000. [7] 姜雪松,VHDL设计实例与仿真,北京:机械工业出版社,2007.1,91~103. [8] 王彦芳,王小平,王彦永等.用可编程逻辑器件实现专用数字集成电路的功能设计[J]半导体情报,2000,37 (5)48~51. [9] 张立,张光新,柴磊等. FPGA 在多功能计费器系统中的应用[J]. 仪器仪表学报,2005,26(8): 7352737. [10] 林愿. 基于CPLD/FPGA 的计费器系统的设计实现[J]. 国外电子元器件,2007(07):26~29. [11] 周润景,图雅,张丽敏. 基于Quartus II 的FPGA/CPLD 数字系统设计实例[J]. 北京:电子工业出版社, 2007. [12] [英]Jone Wulenskl. VHDL Digtal System Design,北京:电子工业出版社,2004,10~105. [13] San Jose. MAX+PLUS II IntroductionUSA:Altera Corporation,2004,52~69. [14] James R. Armstrong,VHDL设计表示和综合[M]. 李宗伯,王蓉晖,等译. 北京:机械工业出版社. [15] Altera Corpration. Altera Digital Library. Altera,2002.
基于FPGA的模拟自动售货机设计
现在EDA技术发展迅猛,应用比较广泛,包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域都有EDA的应用。
目前,EDA技术已在产品设计与制造、教学和科研部门广泛使用,发挥着巨大的作用。
在产品设计与制造方面,EDA技术可实现前期的计算机仿真、系统级模拟及测试环境的仿真、PCB的制作、电路板的焊接、ASIC的设计等。
在教学方面,高校电子类专业的实践教学中,几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。
主要是让学生了解EDA的基本原理和基本概念,掌握描述系统逻辑的方法,使用PLD/FPGA器件进行电子电路课程的模拟仿真实验,并在作毕业设计时从事简单电子系统的设计,既使实验设备或设计出的电子系统具有高可靠性,又经济、快速,容易实现,修改便利,同时可大大提高学生的实践动手能力、创新能力和计算机应用能力,为今后工作打下基础。
作为一个学电子信息专业的学生,我们必须不断地了解更多的新产品信息,这就更加要求我们对EDA有个全面的认识。
本设计系统地介绍了有关编程逻辑器件的基础知识以及相关软件的使用方法,着重讲述了自动售货机的原理以及本次设计的思路和方法。
第一章阐述了EDA技术的发展历史、基本特征以及Altera公司生产的一些产品器件、开发工具等等;并简单介绍了FPGA(Field Programmable Gate Array)的应用,现场可编程门阵列的出现是超大规模集成电路技术和计算机辅助设计技术发展的结果,它允许电路设计者利用基于计算机开发平台,经过设计输入、仿真、测试和校验,直到达预期的效果。
第二章介绍系统方案的设计,其中主要介绍了不同方案的比较,自动售货机的基本功能等。
第三章分析了系统设计的具体模块实现。
第四章阐述自动售货机系统的硬件设计及调试结果。
摘要........................................................................ I I ABSTRACT ..................................................................... I I 第1章绪论 (1)1.1EDA的发展概述 (1)1.1.1 EDA技术简介 (1)1.1.2 EDA技术的发展概况 (2)1.1.3 EDA技术的基本特征 (2)1.2EDA的FPGA/CPLD开发 (3)1.2.1 FPGA简介 (3)1.2.2 FPGA的基本特点 (3)1.2.3 FPGA的结构及其发展 (4)1.3课题的研究现状及研究意义 (4)1.3.1课题的研究现状 (4)1.3.2课题研究意义 (4)第2章模拟自动售货机系统方案设计 (5)2.1模拟自动售货机的方案比较 (5)2.2软件简介 (5)2.2.1 Quartus II软件简介 (5)2.2.2 VHDL语言简介 (6)2.2.3 VHDL语言的特点 (7)2.2.4 VHDL语言的优点 (7)2.2.5 VHDL语言的基本结构 (8)2.3模拟自动售货机的实现 (8)2.3.1总体系统的设计 (8)2.3.2自动售货机软件组成 (10)第3章模拟自动售货机的模块化处理 (12)3.1各模块组成 (12)3.1.1状态控制模块 (12)3.1.2状态指示模块 (12)3.1.3商品选择模块 (13)3.1.4投币处理模块 (13)3.1.5液晶显示模块 (14)3.1.6声音处理模块 (16)3.2 模拟自动售货机交易仿真图 (17)3.2.1商品选择仿真 (17)3.2.2投币、交易完成仿真 (17)3.2.3投币不足时返回继续投币仿真 (18)3.2.4投币时退出购买、复位仿真 (18)第4章模拟自动售货机的FPGA验证 (20)4.1CYCLONE核心板简介 (20)4.2液晶显示屏简介 (22)4.3接口板简介 (22)4.4硬件引脚绑定 (23)4.5测试结果及分析 (24)第5章结论与展望 (25)5.1结论 (25)5.2展望 (25)致辞 (26)参考文献 (27)第6章附录 (28)附录1设计原理图: (28)附录2接口板PCB版图 (29)附录3设计源程序: (29)2010届电子信息工程专业毕业设计(摘要)摘要本文是基于FPGA芯片设计一个简易模拟自动售货机。
基于FPGA的自动售货机设计
基于FPGA的自动售货机设计
自动售货机最基本的功能就是为顾客提供可供选择的物品并接受付款,然后交付所选物品。
自动售货机还需要具备一些其他的功能,例如在货品数量低于设定值时警报,更新商家的库存信息等。
基于FPGA的自动售货机设计包括以下步骤:
1. 确定自动售货机的物品种类和数量,并选择相应的电机、传感器和显示器等组件。
2. 设计自动售货机的控制电路,包括接口电路、逻辑电路和中央处理器(CPU)等。
其中,FPGA可以作为逻辑电路的核心部件,负责控制整个自动售货机的操作流程。
3. 利用Verilog HDL编写FPGA的逻辑设计,并通过仿真和测试确保正确性和可靠性。
FPGA的逻辑设计应该能够控制电机的旋转、传感器的检测和显示器的显示等操作。
4. 将FPGA的逻辑设计下载到实验板上并测试它的功能和性能。
在测试过程中需要注意电机的工作效率、传感器的准确性和显示器的清晰度等方面的问题。
5. 将整个自动售货机装在一个外壳中,并测试整个系统的可靠性和用户友好性。
在测试过程中需要关注售货机的操作流程、货品存储和取出的方便程度以及付款方式的安全性等方面的问题。
综上所述,基于FPGA的自动售货机设计需要充分考虑到售货机的各个方面,包括物品种类、控制电路、逻辑设计和用户体验等,以提供高质量和可靠性的售货机。
基于FPGA自动售货机
摘要本课题是基于Verilog HDL语言的小型自动售货机。
采用Verilog HDL在ModelsimSE6.2B软件平台进行编译和仿真。
在此次设计中,主要采用有限状态机(FSM)的设计,在投币选货状态和找零状态在这两个状态间进行转移。
从而实现货物的选择、货币运算、出货控制、余额显示以及找零等功能。
该售货机系统能够识别两种硬币,两种纸币。
有五种不同价格的商品可供选择,并且通过显示译码电路,可在LED显示器显示余额,同时具备找零、机器存有硬币不足LED 亮起报警、缺货LED亮起报警等功能。
现代的自动售货机有使用方便快捷,可以全天候24小时工作,占地少,成本低,维护简单等优点,有着广阔的前景。
采用FPGA方式用Verilog HDL硬件描述语言,设计简易的自动售货机,其编程简单,开发周期短,硬件运行速度快,开发成本低,稳定性高等优点。
关键词:自动售货机; Verilog HDL;有限状态机;Modelsim;ABSTRACTThis topic design a simple vending machine is based on the FPGA chip. EP2C35 chip, and DE2 development board for the hardware platform, the use of Verilog HDL to compile and simulation in the Quartus Ⅱ software platform, and through the DE2 development achieve the basic functions of a Si mple vending machine.board by to download code to the chip. In this design,it used of finite state machine (FSM) design, choice of goods state, shipment status and give change coin state in the three inter-state transfer, in order to achieve the choice of goods, monetary operations, the cargo control, features such as display and give change. The vending machine system to identify three kinds of coins, there are five kinds of goods at different prices to choose from, and by showing decoding circuit, in DE2 onboard LED display shows the balance, both functions give change. Modern vending machines are convenient, it can work 24 hours a day, covers an area of small, low cost, simple maintenance, there are broad prospects. Manner with the use of FPGA hardware description language Verilog HDL, design simple vending machine, the programming is simple, short development cycles, fast hardware, the development of low cost, high stability.Key words: vending machines; Verilog HDL; Finite state machine; FPGA; DE2 development board;目录绪论..............................................................1 第一章系统方案设计...............................................31.1 人机交换界面设计..........................................31.2 系统方案设计..............................................41.2.1 系统方案确定..........................................5 第二章系统各模块硬件设计.........................................72.1 DE2开发板介绍.............................................72.2 自动售货机各模块设计.....................................82.2.1 自动售货机主体设计...................................82.2.2 LED显示设计方案.....................................92.2.3 货币输入信号设计方案................................102.2.4 出货显示设计方案....................................11 第三章系统的软件设计............................................123.1 EDA工具软件介绍.........................................133.2 软件设计总方案...........................................143.3 售货机主芯片程序设计方案................................153.4 BCD-LED七段数码显示译码器...............................173.5 硬币输入信号程序设计方案................................183.6 出货显示程序设计方案....................................193.7 自动售货机各部分组合连接设计............................20 第四章调试及仿真...............................................214.1 用Quartus Ⅱ完成PFGA设计步骤...........................214.2 自动售货机波形仿真结果..................................214.2.1 自动售货机波形仿真..................................214.2.2 输入信号处理程序波形仿真............................234.2.3 BCD-LED七段数码显示译码器波形仿真..................234.2.4 出货显示译码器波形仿真..............................244.2.5 自动售货机主芯片程序仿真波形.......................254.3 下载、仿真及测试..........................................25 结论..............................................................26 致谢.............................................................27 参考文献..........................................................28 附录1(程序源代码)...............................................29 附录2(整体设计原理图)...........................................35绪论自动售货机最早出现在二十世纪五、六十年代的西欧,英国是较早实行自动售货机售货的国家之一。
FPGA实验报告 系统设计综合实践 自动售货机
FPGA实验报告系统设计综合实践自动售货机引言本实验报告旨在介绍FPGA实验中关于系统设计综合实践的内容,以及针对自动售货机的设计和实现过程。
本项目的目标是通过FPGA实现一个基本的自动售货机,能够接受货币投入并显示余额,实现商品选择和出货的功能。
设计概述在本项目中,我们使用FPGA作为硬件平台进行实现,采用VHDL语言进行编程。
整个设计主要分为三个模块:货币处理模块、商品选择模块和出货控制模块。
货币处理模块货币处理模块负责接收和处理投入的货币,并显示当前的余额。
具体实现过程如下:1.接收货币输入:使用FPGA板载的GPIO接口连接硬币接收器,将接收到的信息传递给FPGA。
2.处理货币信息:通过计算接收到的货币数量和面额,计算出当前的余额。
3.显示余额:使用FPGA板载的数码管显示当前的余额。
根据计算得到的余额,将其显示在数码管上。
商品选择模块商品选择模块负责接收用户的商品选择,并计算选中商品的价格。
具体实现过程如下:1.接收商品选择:使用FPGA板载的按键输入接口,接收用户按下的相应按键,确定用户选择的商品。
2.计算商品价格:根据用户选择的商品,从预先配置的商品价格表中查找相应的价格。
3.显示选中商品价格:使用FPGA板载的数码管显示选中商品的价格。
根据查找到的价格,将其显示在数码管上。
出货控制模块出货控制模块负责控制商品的出货和相关信息的提示。
具体实现过程如下:1.判断余额是否足够:根据当前余额和选中商品的价格,判断余额是否足够购买商品。
2.控制商品出货:如果余额足够购买商品,则触发相应的出货机构,实现商品的出货。
3.提示用户相关信息:根据出货情况,通过数码管显示相关信息,如余额不足、出货成功等提示。
实验结果经过对上述三个模块的设计和实现,我们成功地完成了自动售货机的基本功能。
在实验过程中,我们选取了几种常见的商品,并配置了相应的价格表。
通过按下相应的按键,用户可以选择购买的商品,并通过投币的方式支付。
地铁自动售票机(基于FPGA)设计
地铁自动售票机(基于FPGA)西安电子科技大学08 级集成电路设计与集成系统专业井站14082094 尹俊镖14082108潘志友14082068 李波14082117一功能需求1市场目标本工程设计是基于FPGA 设计一个地铁自动售票系统。
近年来,集成电路技术的迅猛发展,特别是可编程逻辑器件的高速发展,电子设计自动化EDA 技术成为电子设计工程师的新宠。
然而随着城市人口的迅速增加、车辆的增多,世界各地的城市交通变得愈发拥挤,地铁成为城市交通的重要组成部分。
随着国民经济的发展,我国的地铁建设也日益成为人们日常生活中不可或缺的一部分。
作为地铁运营服务的第一道关,改善地铁已逐渐落后于时代步伐的售票系统势在必行。
本系统是结合行业管理中实际的地铁售票系统运行过程中的需求过程,经过实际的需求分析,开发出来的地铁自动售票系统。
整个系统的设计从符合操作简便快捷、灵活实用、保证稳定安全的要求出发,完成售票管理的基本过程。
2功能定义通过本设计,正确掌握数字系统的模块划分、并能自如应用硬件描述语言描述各模块功能,以实现系统设计。
以Verilog语言和Quartue II,Modlesim 为工具,实现了地铁自动售票系统。
系统划分为几个功能模块,分模块进行分析和设计,系统给出相应的设计原理图和Verilog 源程序,通过仿真实现预定的功能。
本组成员参与设计的自动售票机,就其功能特点来说,可以归纳如下:1)该自动售票系统可对单价为3元、4元、5元,6元四种票售票。
2)能选择买1张或2张票;3)有1元,5元、10元,20元四个投币口。
当投入的钱币与选择的票款相等时,送出车票;若投入的钱币不够,1分钟后,退出钱币,无票送出;若投入的钱币超过票款,能自动找赎。
4)系统显示选择所选票单价面额、购买的票数、投入的钱币额及找赎的钱额。
3应用案例在广州地铁、北京地铁、南京地铁等全国十多条城市轨道交通线路都能见到广电运通自动售票机的身影。
FPGA售卖机
大学实验报告课程名称:数字系统现场集成技术实验项目名称:实验四(自动售货机设计和实现)学院:专业:指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务部制基本要求:该实验为团队协作,2人一个小组。
可以对3种不同种类的货物进行自动售货,价格分别为A=4.00, B=2.50, C=1.00。
售货机可以接受10元,5元,1元三种硬币(即有三种输入信号SY,WY,IY),并且在7段数码管(二位代表元,一位代表角)显示已投入的总钱数,选择货物的输入信号Ia,Ib,Ic,输出指示信号为Sa, Sb ,Sc 分别表示售出相应的货物,同时输出的信号yuan, jiao代表找零,并显示在7段数码管上。
高级要求(可选):VGA显示3种货物图片及其价格,鼠标点击购买数量(1-9)后显示总价,安规格说明2中的button2-button4输入硬币,VGA显示已投入的总钱数,鼠标点击购买后,显示找零数目,购买物品闪烁,交易完成。
规格说明:∙按一下button1按钮,表示购买货物A,第一个LED灯亮;按两下button1按钮,表示购买货物B,第二个LED灯亮;按三下button1按钮,表示购买货物C,第三个LED灯亮,同时7段数码管显示所要购买货物的价格。
∙LED灯亮后,开始输入硬币。
button2按一下,输入10元,按两下,输入二十元,以此类推;Button3按一下输入5元,按两下输入10元,以此类推;button4按一下输入1元,按两下输入2元,以此类推。
7段数码管显示已投入的总钱数,再次按下button1键,7段数码管显示找零数目,同时指示货物的LED灯熄灭。
∙如果投入的钱币不够就按下button1键确认购买,数码管显示“ER”。
∙本实验使用FPGA板:Sparant6XC6SLX16CSG324C(建project时,需要选择该芯片的型号)。
1、顶层代码:module top(input clk,input rst,input[4:0] btn,output[3:0] an,output[7:0] seg,output[2:0] led);wire clk,rst;wire[7:0] first_seg,second_seg,third_seg; wire[4:0] btn_down;seg_drv v1(.clk(clk),.rst(rst),.first_seg(first_seg),.second_seg(second_seg),.third_seg(third_seg),.an(an),.seg(seg));main v2 (.clk(clk),.rst(rst),.btn_down(btn_down),.first_seg(first_seg),.second_seg(second_seg),.third_seg(third_seg),.led(led));btn_scan v3 (.clk(clk),.rst(rst),.btn(btn),.btn_down(btn_down));Endmodule2、数码管驱动:module seg_drv(input clk,input rst,input[7:0] first_seg,input[7:0] second_seg,input[7:0] third_seg,// input[7:0] forth_seg,output reg[3:0] an,output reg[7:0] seg);localparam[1:0] s0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11;reg[1:0] state;always@(posedge clk,posedge rst)beginif(rst)beginan<=4'b1111;seg<=8'b1111_1111;state<=s0;endelsebegincase(state)s0:beginan<=4'b1110;seg<=first_seg;if(ms_up)state<=s1;elsestate<=state;ends1:beginan<=4'b1101;seg<=second_seg;if(ms_up)state<=s2;elsestate<=state;ends2:beginan<=4'b1011;seg<=third_seg;if(ms_up)state<=s3;elsestate<=state;ends3:beginan<=4'b0111;seg<=8'b1111_1111;if(ms_up)state<=s0;elsestate<=state;endendcaseendendreg[17:0] ms_cnt;reg ms_up;always@(posedge clk,posedge rst)beginif(rst)beginms_cnt<=0;ms_up<=0;endelsebeginif(ms_cnt==200000)beginms_cnt<=0;ms_up<=1;endelsebeginms_cnt<=ms_cnt+1'b1;ms_up<=0;endendendendmodule3、按键扫描与消抖:module btn_scan(input clk,input rst,input[3:0] btn,output reg[3:0] btn_down);localparam[1:0] s0=2'b00,s1=2'b01,s2=2'b10;reg[1:0] state;reg[3:0] btn_reg;always@(posedge clk,posedge rst)beginif(rst)beginbtn_down<=4'b0000;state<=s0;endelsebegincase(state)s0: beginbtn_down<=4'b0000;if(btn)state<=s1;elsestate<=s0;ends1: beginif(cnt_done)beginif(btn)beginstate<=s2;btn_reg<=btn;endelsestate<=s0;endelsestate<=s1;ends2:beginif(btn==4'b0000)beginbtn_down<=btn_reg;state<=s0;endelsebeginbtn_down<=btn_down;state<=s2;endendendcaseendendreg[20:0] cnt;reg cnt_done;always@(posedge clk,posedge rst)beginif(rst)begincnt<=21'b0;cnt_done<=1'b0;endelse if(state==s1)begincnt<=cnt+1'b1;if(cnt==21'd2000000)begincnt<=21'b0;cnt_done<=1'b1;endendelsebegincnt<=21'b0;cnt_done<=1'b0;endendendmodule4、主程序code:module main(input clk,input rst,input[3:0] btn_down,output reg[7:0] first_seg,output reg[7:0] second_seg,output reg[7:0] third_seg,output reg[2:0] led);localparam[2:0] s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100,s5=3'b101;reg[2:0] state;reg[3:0] money0,money1;reg[3:0] price;reg[4:0] change;reg[3:0] change1,change0;always@(posedge clk,posedge rst)beginif(rst)beginled <= 3'b000;money0 <= 0;money1 <= 0;change <= 0;price <= 0;state <= s0;endelsebegincase(state)s0:beginled <= 3'b000;if(btn_down[0] == 1)state <= s1;elsestate <= s0;ends1:beginled <= 3'b100;price <= 1;money0 <= 0;money1 <= 0;change<=0;if(btn_down[0] == 1)state <= s2;else if(btn_down[3:1])state <= s4;elsestate <= s1;ends2:beginled <= 3'b010;price<=2.5;money0 <= 0;money1 <= 0;change <= 0;if(btn_down[0] == 1)state <= s3;else if(btn_down[3:1])state <= s4;elsestate <= s2;ends3:beginled <= 3'b001;price <= 4;money0 <= 0;money1 <= 0;change <= 0;if(btn_down[0] == 1)state <= s1;else if(btn_down[3:1])state <= s4;elsestate <= s3;ends4:begincase(btn_down[3:1])3'b001:money1 <= money1 + 1;3'b010:beginmoney0 = money0 + 5;if(money0 >= 10)beginmoney1 <= money1 + 1;money0 <= money0 - 10;endelsemoney1 <= money1;end3'b100:beginmoney0 <= money0 + 1;if(money0 >= 9)beginmoney1 <= money1 + 1;money0 <= 0;endelsemoney1 <= money1;endendcaseif(btn_down[0] == 1)state <= s5;elsestate<=s4;ends5:beginif((money1*10 + money0)>= price)beginchange <= money1*10 + money0 - price;if(change >= 20)beginchange1 <= 2;change0 <= change - 20;endelse if(change >= 10)beginchange1 <= 1;change0 <= change - 10;endelsebeginchange1 <= 0;change0 <= change;endendelsechange <=5'b01110;if(btn_down[3:0])state <= s0;elsestate<=s5;endendcaseendend//译码always@(posedge clk,posedge rst)beginif(state == s0)beginthird_seg<=8'b0000_0011;second_seg<=8'b0000_0010;first_seg<=8'b0000_0011;endelse if(state == s1)beginthird_seg<=8'b0000_0011;second_seg<=8'b1001_1110;first_seg<=8'b0000_0011;endelse if(state ==s2)beginthird_seg<=8'b0000_0011;second_seg<=8'b0010_0100;first_seg<=8'b0100_1001;endelse if(state ==s3)beginthird_seg<=8'b0000_0011;second_seg<=8'b1001_1000;first_seg<=8'b0000_0011;endelse if(state ==s4)begincase(money0)4'b0000: second_seg<=8'b0000_0010;4'b0001: second_seg<=8'b1001_1110;4'b0010: second_seg<=8'b0010_0100;4'b0011: second_seg<=8'b0000_1100;4'b0100: second_seg<=8'b1001_1000;4'b0101: second_seg<=8'b0100_1000;4'b0110: second_seg<=8'b0100_0000;4'b0111: second_seg<=8'b0001_1110;4'b1000: second_seg<=8'b0000_0000;4'b1001: second_seg<=8'b0000_1000;endcasecase(money1)4'b0000: third_seg<=8'b0000_0011;4'b0001: third_seg<=8'b1001_1111;4'b0010: third_seg<=8'b0010_0101;4'b0011: third_seg<=8'b0000_1101;4'b0100: third_seg<=8'b1001_1001;4'b0101: third_seg<=8'b0100_1001;4'b0110: third_seg<=8'b0100_0001;4'b0111: third_seg<=8'b0001_1111;4'b1000: third_seg<=8'b0000_0001;4'b1001: third_seg<=8'b0000_1001; endcasefirst_seg<=8'b0000_0011;endelse if(state ==s5)beginif(change == 5'b01110)beginthird_seg<=8'b0000_0011;second_seg<=8'b0110_0001;first_seg<=8'b0110_0001;endelsebegincase(change0)4'b0000: second_seg<=8'b0000_0010;4'b0001: second_seg<=8'b1001_1110;4'b0010: second_seg<=8'b0010_0100;4'b0011: second_seg<=8'b0000_1100;4'b0100: second_seg<=8'b1001_1000;4'b0101: second_seg<=8'b0100_1000;4'b0110: second_seg<=8'b0100_0000;4'b0111: second_seg<=8'b0001_1110;4'b1000: second_seg<=8'b0000_0000;4'b1001: second_seg<=8'b0000_1000;4'he:second_seg<=8'b0110_0000;endcasecase(change1)4'b0000: third_seg<=8'b0000_0011;4'b0001: third_seg<=8'b1001_1111;4'b0010: third_seg<=8'b0010_0101;4'b0011: third_seg<=8'b0000_1101;4'b0100: third_seg<=8'b1001_1001;4'b0101: third_seg<=8'b0100_1001;4'b0110: third_seg<=8'b0100_0001;4'b0111: third_seg<=8'b0001_1111;4'b1000: third_seg<=8'b0000_0001;4'b1001: third_seg<=8'b0000_1001;endcaseif(led[1] == 1)first_seg<=8'b0100_1001;elsefirst_seg<=8'b0000_0011;endendendendmodule三、实验结果:买货物2,价格2.5,投币15,找零12.5金币不够显示为错误深圳大学学生实验报告用纸四、实验结论:通过此次实验加深了对数码管驱动以及按键扫描与消抖工作原理的的运用,对各个模块搭建系统也有了新的认识。
东南大学信息科学与工程学院 基于FPGA的自动售货机控制系统
数字系统课程设计--基于FPGA的自动售货机组长:师楠(04010512)组员:徐璇(04010505)一、设计要求:功能描述:用于模拟自动售货机的工作过程,完成自动售货功能。
功能要求:(1)售货机有两个进币孔,可以输入硬币和纸币,售货机有两个进币孔,一个是输入硬币,一个是输入纸币,硬币的识别范围是1 元的硬币,纸币的识别范围是5 元,10 元,20,50 元,100元。
乘客可以连续多次投入钱币。
(2)顾客可以选择的商品种类有16 种,价格分别为1-16 元,顾客可以通过输入商品的编号来实现商品的选择。
即有一个小键盘(0-9 按键)来完成,比如输入15 时要先输入1,再输入5。
(3)顾客选择完商品后,可以选择需要的数量。
然后可以继续选择商品及其数量,每次可以选择最多三个商品。
然后显示出所需金额。
顾客此时可以投币,并且显示已经投币的总币值。
当投币值达到或超过所需币值后,售货机出货,并扣除所需金额,并找出多余金额。
在投币期间,顾客可以按取消键取消本次操作,钱币自动退出。
二、课题分析1)进行购物时,顾客依次选择商品种类和对应的商品数量。
一共有16种商品,编号分别为1-16,顾客通过(0-9按键)小键盘输入商品编号和对应的商品数量。
若顾客继续选择商品则按下“继续购物”按钮,继续选择下一商品的种类和数量。
最多可以选择三种商品,每种商品最多可选择三个。
若在商品选择过程中顾客按下“取消”按钮,则回到初始化状态,顾客重新进行选择。
2)完成选择后,自动售货机显示所需金额,编号1-16的商品价格分别为1-16元。
顾客根据所需金额继续投币,可以连续多次投入1元的硬币和5 元,10 元,20,50 元,100元的纸币。
当投币总额大于所需金额时,自动售货机出货并找出零钱。
若在投币过程中顾客按下“取消”按钮,则自动售货机自动退出顾客已经投入的钱币。
3)根据按键的数值范围(0-9)和商品数量(1-3)的选择范围,设置三个端口,分别用于接收商品编号的个位(4位)、商品编号的十位(4位)、商品数量(2位)。
fpga课程设计自动售货机
fpga课程设计自动售货机一、教学目标本课程旨在通过学习FPGA课程设计自动售货机,使学生掌握以下知识目标:1.理解自动售货机的基本工作原理和结构。
2.学习FPGA的基本设计和编程方法。
3.掌握自动售货机的控制逻辑和接口设计。
4.能够使用FPGA开发板进行基本设计和编程。
5.能够独立完成自动售货机控制逻辑的设计和实现。
6.能够对自动售货机进行调试和优化。
情感态度价值观目标:1.培养学生的创新意识和实践能力。
2.培养学生的团队合作意识和沟通能力。
3.培养学生的自主学习和解决问题的能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.FPGA的基本概念和设计方法。
2.自动售货机的基本工作原理和结构。
3.自动售货机的控制逻辑和接口设计。
4.FPGA编程和调试方法。
第一周:FPGA的基本概念和设计方法。
第二周:自动售货机的基本工作原理和结构。
第三周:自动售货机的控制逻辑和接口设计。
第四周:FPGA编程和调试方法。
第五周:项目实践和总结。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括:1.讲授法:用于讲解FPGA的基本概念和设计方法,自动售货机的基本工作原理和结构,以及控制逻辑和接口设计等理论知识。
2.案例分析法:通过分析实际案例,使学生更好地理解和掌握FPGA设计和编程的方法。
3.实验法:通过动手实践,使学生能够独立完成自动售货机的控制逻辑设计和实现,并掌握FPGA编程和调试方法。
4.小组讨论法:通过分组讨论和合作,培养学生的团队合作意识和沟通能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选用《FPGA设计与应用》作为主教材,辅助以相关论文和案例分析资料。
2.实验设备:准备FPGA开发板和相关实验设备,供学生进行实践操作。
3.多媒体资料:制作PPT和教学视频,用于辅助讲解和演示。
4.在线资源:提供在线编程环境和调试工具,方便学生进行自主学习和实践。
基于FPGA的自动售货机的课设说明书
目录1 引言 (1)2 VHDL介绍 (2)2.1 硬件描述语言VHDL (2)2.2 VHDL语言的特点 (3)3 QuartusII软件简介 (4)3.1软件介绍 (4)3.2界面介绍 (4)3.2.1代码输入界面 (4)3.2.2功能仿真界面 (5)3.2.3波形仿真界面 (6)4 自动售货机控制器设计与仿真 (7)4.1硬件电路设计 (7)4.2状态转换图 (7)4.3时序仿真结果 (10)5引脚锁定及下载 (12)5.1引脚锁定 (12)5.2下载 (12)5.3结果分析 (12)6设计总结 (14)参考文献 (15)附录 (16)1 引言VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language,诞生于1982年。
1987年底,VHDL被美国国防部确认为标准硬件描述语言。
自IEEE公布了VHDL的标准版本,IEEE-1076之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。
1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。
现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。
VHDL的英文全写(Very-High-Speed Integrated Circuit HardwareDescription Language)翻译成中文就是超高速集成电路硬件描述语言。
因此它的应用主要是应用在数字电路的设计中。
目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。
基于FPGA的自动售货机控制系统
基于FPGA的自动售货机控制系统摘要伴随着我国现代化进程的不断深入以及生活节奏的不断加快,如何能够快速、高效、便捷的购物也成为了商家和顾客不得不面临的一个问题。
自动售货机作为一种不同于传统的零售方式,以其不受时间地点限制、省时省力的优点,迅速的成为了人们的首选。
本课题主要是用EDA技术来实现对自动售货机控制系统的设计。
EDA技术以其特有的有开发周期短、设计成本低、运行速度快等天然优势,使开发出的产品可以迅速的投放到市场上去。
该课题主要是基于FPGA内部电路的编程设计,使用硬件描述语言(VHDL)对自动售货机控制系统进行描述,以Altera公司的EP1K30QC208-3芯片为目标器件详细阐述了自动售货机控制系统整体的设计思路以及工作原理,并且对自动收货机控制系统实现的货物信息的存储、进程控制、硬币处理、余额计算和显示功能加以仿真调试。
通过仿真调试,基于可编程器件FPGA 的自动售货机控制系统的设计基本达到了预期目标。
关键词:EDA,FPGA,自动售货机,VHDLVending machine control system based onFPGAAbstractWith the deepening of China's modernization process and the accelerating pace of life, it has become a problem for businesses and consumers to face that how to fast, efficient, convenient shopping. As a way different from the traditional retail, vending machines are not restricted by time and place, So vending machines quickly became the first choice for shopping election. The main topic is the use of EDA technology to achieve the vending machine control system design. EDA technology has a short development cycle, lower design costs, faster running speed, etc. That products can be developed rapidly to market upswing.The main topic is programming based on FPGA. Using hardware description language (VHDL) to describe the vending machine control system. Altera's EP1K30QC208-3 chip as the target device elaborated vending machine control system as well as the overall design concept works, and automatic control of receipt storing cargo information system implementation, process control, coin handling, balance calculation and display capabilities to simulation debugging. Through simulation debugging FPGA-based programmable device vending machine controller design basically achieve the desired goals.Key Words:EDA; FPGA; Vending machine; VHDL目录摘要 (1)Abstract (2)第一章引言 (1)1.1 自动售货机的发展历史 (1)1.2 自动售货机的发展现状 (1)1.3 自动售货机控制系统研究的目的和意义 (2)1.4 课题主要研究工作 (2)第二章关键技术 (3)2.1 EDA技术简介 (3)2.2 FPGA简介 (3)2.3 VHDL简介 (3)第三章系统硬件介绍 (5)3.1 KH310实验箱简单介绍 (5)3.2 时钟单元 (5)3.3 数码管显示单元 (5)第四章程序设计 (7)4.1 功能要求 (7)4.2 系统内部模块设计 (7)4.3 系统外部界面设计 (7)4.4 工作流程图 (8)4.5 系统各功能模块 (9)4.5.1 分频模块 (9)4.5.2 显示模块 (12)4.5.3 扫描模块 (14)4.5.4 主控模块 (16)第五章仿真调试 (21)5.1 顶层模块 (21)5.2 管脚分配.............................................................................................. 错误!未定义书签。
EDA课程设计--基于FPGA的自动售票机设计
湖南工程学院
课程设计
课程名称EDA课程设计
课题名称基于FPGA的自动售票机设计
专业电子科学与技术
班级
学号
姓名
指导教师李延平
2014 年12 月19 日
湖南工程学院
课程设计任务书
课程名称EDA课程设计
课题基于FPGA的自动售票机设计
专业班级电子科学技术
学生姓名
学号
指导老师李延平
审批
任务书下达日期2014 年12 月8 日任务完成日期2013 年12 月19 日
图1自动售邮票机系统框图
电气信息学院课程设计评分表
指导教师签名:________________
日期:________________
注:①表中标*号项目是硬件整理或软件编程类课题必填内容;
②此表装订在课程设计说明书的最后一页。
课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。
[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!]。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1 引言 (1)2 VHDL介绍 (2)2.1 硬件描述语言VHDL (2)2.2 VHDL语言的特点 (3)3 QuartusII软件简介 (4)3.1软件介绍 (4)3.2界面介绍 (4)3.2.1代码输入界面 (4)3.2.2功能仿真界面 (5)3.2.3波形仿真界面 (6)4 自动售货机控制器设计与仿真 (7)4.1硬件电路设计 (7)4.2状态转换图 (7)4.3时序仿真结果 (10)5引脚锁定及下载 (12)5.1引脚锁定 (12)5.2下载 (12)5.3结果分析 (12)6设计总结 (14)参考文献 (15)附录 (16)1 引言VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language,诞生于1982年。
1987年底,VHDL被美国国防部确认为标准硬件描述语言。
自IEEE公布了VHDL的标准版本,IEEE-1076之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。
1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。
现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。
VHDL的英文全写(Very-High-Speed Integrated Circuit HardwareDescription Language)翻译成中文就是超高速集成电路硬件描述语言。
因此它的应用主要是应用在数字电路的设计中。
目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。
当然在一些实力较为雄厚的单位,它也被用来设计ASIC。
随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件CPLD/FPGA的出现,给设计人员带来了诸多方便。
利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。
利用VHDL语言设计自动售货机,使其实现自动售货,找零钱等功能,突出了其作为硬件描述语言的良好的可读性、可移植性和易读性等优点。
此程序通过下载到特定芯片后,可应用于实际的自动售货机系统中。
本文基于FPGA开发系统,在QuartusII 7.2软件平台上,完成了自动售货机控制器的设计和与仿真,并下载到试验箱进行硬件实现。
首先,本文介绍了QuartusII 7.2软件的基本使用方法和VHDL硬件描述语言的特点,采用VHDL 硬件描述语言描述自动售货机控制器,完成对电路的功能仿真。
在设计过程中,重点探讨了自动售货机控制器的设计思路和功能模块划分。
然后,初步探讨了电路逻辑综合的原理,该软件对自动售货机控制器电路进行了逻辑综合。
最后,使用EDA实验开发系统进行电路的下载和验证。
验证结果表明设计的自动售货机控制器完成了预期的功能。
2 VHDL介绍2.1 硬件描述语言VHDL硬件描述语言(HDL)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。
例如一个32位的加法器,利用图形输入软件需要输人500至1000个门,而利用VHDL语言只需要书写一行“A=B+C” 即可。
而且VHDL语言可读性强,易于修改和发现错误。
早期的硬件描述语言,如ABEL、HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。
为了克服以上不足,1985年美国国防部正式推出了高速集成电路硬件描述语言VHDL,1987年IEEE采纳VHDL为硬件描述语言标准(IEEE-STD-1076)。
VHDL是一种全方位的硬件描述语言,包括系统行为级。
寄存器传输级和逻辑门多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此VHDL 几乎覆盖了以往各种硬件俄语言的功能,整个自顶向下或由下向上的电路设计过程都可以用VHDL来完成。
VHDL还具有以下优点:(1)VHDL的宽范围描述能力使它成为高层进设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花较少的精力于物理实现。
(2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑设计,灵活且方便,而且也便于设计结果的交流、保存和重用。
(3)VHDL的设计不依赖于特定的器件,方便了工艺的转换。
(4)VHDL是一个标准语言,为众多的EDA厂商支持,因此移植性好。
[6]传统的硬件电路设计方法是采用自下而上的设计方法,即根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图;然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理地划分功能模块,并画出系统的功能框图;接着就进行各功能模块的细化和电路设计;各功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。
采用传统方法设计数字系统,特别是当电路系统非常庞大时,设计者必须具备较好的设计经验,而且繁杂多样的原理图的阅读和修改也给设计者带来诸多的不便。
为了提高开发的效率,增加已有开发成果的可继承性以及缩短开发周期,各ASIC研制和生产厂家相继开发了具有自己特色的电路硬件描述语言(Hardware Description Language,简称HDL)。
但这些硬件描述语言差异很大,各自只能在自己的特定设计环境中使用,这给设计者之间的相互交流带来了极大的困难。
因此,开发一种强大的、标准化的硬件描述语言作为可相互交流的设计环境已势在必行。
于是,美国于1981年提出了一种新的、标准化的HDL,称之为VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,简称VHDL。
这是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。
设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门电路,最后用PLD实现其功能。
2.2 VHDL语言的特点具有良好的可读性,即容易被计算机接受,也容易被读者理解。
使用期长,不会因工艺变化而使描述过时。
因为VHDL的硬件描述与工艺无关,当工艺改变时,只需修改相应程序中的属性参数即可。
当电路系统采用VHDL语言设计其硬件时,与传统的电路设计方法相比较,具有如下的特点:第一层次是行为描述。
所谓行为描述,实质上就是对整个系统的数学模型的描述。
一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。
在行为描述阶段,并不真正考虑其实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否能到达系统设计的要求。
第二层次是RTL方式描述。
这一层次称为寄存器传输描述(又称数据流描述)。
如前所述,用行为方式描述的系统结构的程序,其抽象程度高,是很难直接映射到具体逻辑元件结构的。
要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序改写为RTL方式描述的VHDL语言程序。
也就是说,系统采用RTL方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。
第三层次是逻辑综合。
即利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表)。
此时,如果需要,可将逻辑综合的结果以逻辑原理图的方式输出。
此后可对综合的结果在门电路级上进行仿真,并检查其时序关系。
由自上而下的设计过程可知,从总体行为设计开始到最终的逻辑综合,每一步都要进行仿真检查,这样有利于尽早发现设计中存在的问题,从而可以大大缩短系统的设计周期。
由于目前众多制造PLD芯片的厂家,其工具软件均支持VHDL语言的编程。
所以利用VHDL语言设计数字系统时,可以根据硬件电路的设计需要,自行利用PLD设计自用的ASIC芯片,而无须受通用元器件的限制。
3 QuartusII软件简介3.1软件介绍Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD 设计流程。
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA 工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。
目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。
Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC 和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。
Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
3.2界面介绍3.2.1代码输入界面代码输入界面如图3.1所示:图3.1 代码输入界面3.2.2功能仿真界面功能仿真界面如图3.2所示:图3.2 功能仿真界面3.2.3波形仿真界面波形仿真界面如图3.3所示:图3.3 波形仿真界面4 自动售货机控制器设计与仿真4.1硬件电路设计根据要求:自动售货机能出售1元、5元、10元三种商品。
出售哪种商品可由顾客按动相应的一个按键即可,并同时用数码管显示出此商品的价格;顾客投入硬(纸)币的钱数也是有1元、5元、10元三种,但每次只能投入其中的一种币,此操作通过按动相应的一个按键来模拟,并同时用数码管将投币额显示出来;顾客投币后,按一次确认键,如果投币额不足时则报警,报警时间3秒。