EDA课程设计报告(自动售货机)

2018-12-27 16:19

EDA(Verilog)课程设计报告

——自动售货机

摘 要

本设计是以现场可编程逻辑器件(FPGA)为核心的自动售货机,利用QuartusⅡ软件编写verilog HDL硬件描述语言程序以实现自动售货功能。

本设计主要以程序为主,硬件方面则使用实验箱(芯片Cyclone II— EP2C35F672C8,基于MagicSOPC创新教学实验开发平台),将程序各变量端口与实验箱管脚进行相应的配置,用八个开关分别代表商品价格、所投钱币价格及确认付款找零操作。当选择好商品并投币后,数码管显示所选商品价格及投入钱币价格;按下确认付款开关,数码管显示应找多少钱,若交易成功,则对应商品LED灯亮,同时步进电机转动将商品送出。若所投钱币小于所选商品价格,此时交易不成功,同时对应警告的LED灯亮。

目 录

前言

第一章 系统设计

1.1 系统设计 1.2 总体设计 1.3 方案设计

第二章 详细设计

2.1 2.2

自动售货机状态描述 详细状态描述

2.2.1 初始状态 2.2.2 选商品状态 2.2.3 投币状态 2.2.4 找零状态

第三章 软件设计

3.1 3.2

程序总流程图 verilog HDL源程序

第四章 结果与讨论

4.1 实验调试 4.1.1 调试步骤 4.1.2 实验现象 4.2 结果与分析

第五章 心得体会 参考文献 附录

前言

EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

Verilog HDL是众多EDA软件中的一个,结合我们这学期所学课程,本次设计采

用的是Verilog公司推出的Verilog硬件描述语言,目的是为了将我们所学应用到实际生活中,同时加深我们对Verilog硬件描述语言,FPGA芯片等等的认识与掌握。 Ve r i l o g硬件描述语言的主要能力:

· 基本逻辑门,例如a n d、o r和n a n d等都内置在语言中。

· 用户定义原语( U D P)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。

· 开关级基本结构模型,例如p m o s 和n m o s等也被内置在语言中。 · 提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。

· 可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。

· Verilog HDL中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。 · 能够描述层次设计,可使用模块实例结构描述任何层次。

· 设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。 · Verilog HDL不再是某些公司的专有语言而是I E E E标准。

· 人和机器都可阅读Verilog 语言,因此它可作为E D A的工具和设计者之间的交互语言。

· Verilog HDL语言的描述能力能够通过使用编程语言接口( P L I)机制进一步扩展。P L I是允许外部函数访问Verilog 模块内信息、允许设计者与模拟器交互的例程集合。

· 设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级( RT L)到算法级,包括进程和队列级。

· 能够使用内置开关级原语在开关级对设计完整建模。

· 同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。

· Verilog HDL 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。 · 在行为级描述中, Verilog HDL不仅能够在RT L级上进行设计描述,而且能够在体系结构级描述及其算 法级行为上进行设计描述。

· 能够使用门和模块实例化语句在结构级进行结构描述。 · 在Verilog HDL 的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。

· Verilog HDL 还具有内置逻辑函数,例如&(按位与)和|(按位或)。 · 对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。

· 可以显式地对并发和定时进行建模。 · 提供强有力的文件读写能力。

· 语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没有定义。

第一章 系统设计

1.1 系统设计

(1)用四个发光二极管分别模拟售出价值为5角、1元、1.5元和2元的小商品,购买者可以通过开关选择任意一种标价中的小商品。

(2)灯亮时表示该小商品售出成功。

(3)用开关分别模拟5角、1元硬币和5元纸币投入,用两个数码管显示商品价格,及应找回的钱数。

(4)每次只能售出一种小商品,当投币结束时,按下确认键,若交易成功,则售出货物并找回剩余的硬币;若交易不成功,则找回所投的硬币。按下复位按键,并将所有拨码开关复位,则回到初始状态。

1.2 总体设计

采用FPGA来设计的原理图如图1.1所示.它由控制输入电路、FPGA、电机驱动、显示电

路电路组成。

图1.1 采用FPGA设计的自动售货机原理方框图

控制输入电路主要是为用户设计的,起到一个输入控制的作用。FPGA是现场可编程逻辑器件,也是本设计方案的核心内容,它是实现自动售货机运作的主要控制模块。将编写好的verilog HDL程序烧制到现场可编程逻辑器件FPGA中,然后通过控制输入电路把信号输入到FPGA,由八个开关控制输入信号,即消费者选择商品和消费者投币及确认消费,动态数码管显示输出信号,即找零环节和所选择的商品、消费者投币。

1.3方案设计

使用现场可编程逻辑器件(FPGA)制作,利用Verilog HDL硬件描述语言编程进行控制,然后烧写实现。

对于自动售货机的设计,本方案采用的是现场可编程逻辑器件来实现, 它的优点是所有电路集成在一块芯片上,此方案所需的外围电路简单,这样它的体积就减少了,同时还提高了系统的稳定度,还可以用软件QuartusⅡ软件进行仿真和调试等,可以充分利用verilog HDL硬件描述语言方便的编程,提高开发效率,缩短研发周期,降低研发成本;而且易于进行功能的扩展,实现方法灵活,调试方便,修改容易。

第二章 详细设计

2.1 自动售货机状态描述

判断开关被按下的个数N。若N>=2表示所选本次选择无效,返回初始状态;若N=1则显示所选商品,并继续执行下面的流程。4个开关分别代表4种商品。3个开关分别代表投入0.5元,1元,5元,统计投入总额。投入总额与商品价格做比较,如果总额<商品价格,退钱并返回初始状态;如果总额>=商品价格,则继续执行下面的程序。找零=总额-商品价格,数码管显示找零金额。状态图如图2.1所示:

图2.1自动售货机状态图 2.2 详细状态描述

2.2.1 初始状态

各变量都设置为零,所有拨码开关复位,按下rst键后,一切恢复到初始状态。

2.2.2 选商品状态

分别有价格为0.5元、1元、1.5元和2元的商品,每次选择商品前,设置一个标志位btn_sell表示选择商品状态。此自动售货机每一次售货时只能一次选择一种商品,当同时选择两种以上时,选择商品无效,数码管显示清零,重新进行商品选择。选择商品后,数码管显示所选商品价格。

2.2.3 投币状态

当选好商品后,开始投币。同样有一标志位btn_price表示投币金额。投币口只接受三种面值的钱币0.5元、1元和5元,可以同时投入多种面值钱币。投完币后,先有一个确认买商品的过程,若投了币但又不购买商品了,就将全部投币金额退回;若确认购买商品,则进入下一状态——找零状态。

2.2.4 找零状态

投完币,并确认购买商品后,进入找零状态。首先要将所投的金额与所选商品的价格做比较,若所投金额小于商品价格,则退回所投钱币;若大于等于商品价格,则两者做差,得到需要找零的钱。


EDA课程设计报告(自动售货机).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014年10月江苏省计算机等级考试全真试题4

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: