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

上传人:s9****2 文档编号:492646000 上传时间:2023-04-25 格式:DOCX 页数:14 大小:95.95KB
返回 下载 相关 举报
HDL(Verilog)课程设计报告(自动售货机)_第1页
第1页 / 共14页
HDL(Verilog)课程设计报告(自动售货机)_第2页
第2页 / 共14页
HDL(Verilog)课程设计报告(自动售货机)_第3页
第3页 / 共14页
HDL(Verilog)课程设计报告(自动售货机)_第4页
第4页 / 共14页
HDL(Verilog)课程设计报告(自动售货机)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《HDL(Verilog)课程设计报告(自动售货机)》由会员分享,可在线阅读,更多相关《HDL(Verilog)课程设计报告(自动售货机)(14页珍藏版)》请在金锄头文库上搜索。

1、HDL(Verilog)课程设计报告(自动售货机)摘要本设计是以现场可编程逻辑器件(FPGA)为核心的自动售货机,利用QuartusII软件编写verilogHDL 硬件描述语言程序以实现自动售货功能。本设计主要以程序为主,硬件方面则使用实验箱,将程序各变量端口与实验箱管脚进行相应的配置, 用八个开关分别代表商品价格、所投钱币价格及确认付款找零操作。当选择好商品并投币后,数码管显示 所选商品价格及投入钱币价格;按下确认付款开关,数码管显示应找多少钱,蜂鸣器响,对应商品LED灯 亮。若所投钱币不足所选商品价格,对应警告钱币不足的LED灯亮。关键字:FPGA、Verilog HDL、自动售货机、Q

2、uartus IIAbstractThis design is an auto-vending machine based on field programmable logic devices (FPGA) . We use QuartusI to write procedure in verilog HDL which is a language to describe hardware. The procedure will realize the function of auto-vending machine.This design is mainly about procedure

3、. For the hardware, we use experimental box. We allocate all variable quantities in the procedure to the feet in experimental box. We use eight switch respectively represent commodity prices and throw money price and confirm payment change operation. When choosing good commodities and coin, digital

4、pipe display selected commodity prices and money price. When pressing confirm payment switch, digital pipe display should find how much money, buzzer sounded, corresponding commodity LED lights. If throw money shortage selected commodity prices, corresponding warning money shortage of LED lights.Key

5、words: FPGA、Verilog HDL、auto-vending machine、QuartusI目录摘要 I第一章 系统设计 11.1 系统设计 11.2 系统设计方案比较 11.2.1 总体设计 1第二章 详细设计 22.1 自动售货机状态描述 22.2 详细状态描述 32.2.1初始状态 32.2.2选商品状态 32.2.3投币状态 32.2.4找零状态 3第三章 软件设计 33.1 程序总流程图 33.2 程序 4第四章 结果与讨论 74.1实验调试 74.1.1调试步骤 74.1.2实验现象 74.2结果与分析 8总结 8参考文献 8附录 9第一章系统设计1.1 系统设计(1

6、) 用四个发光二极管分别模拟售出价值为5角、1元、1.5元和2元的小商 品,购买者可以通过开关选择任意一种标价中的小商品。(2) 灯亮时表示该小商品售出。(3) 用开关分别模拟5角、1元硬币和5元纸币投入,可以用几只发光二极 管(或数码管)分别代表找回剩余的硬币。(4) 每次只能售出一种小商品,当所投硬币达到或超过购买者所选面值时, 售出货物并找回剩余的硬币,回到初始状态;(5) 当所投硬币值不足面值时,可通过一个复位键退回所投硬币,回到初始 状态。1.2系统设计方案比较1.2.1总体设计釆用FPGA来设计的原理图如图1.1所示.它由控制输入电路、FPGA、显示电路电路组成。图1.1釆用FPG

7、A设计的自动售货机原理方框图控制输入电路主要是为用户设计的,起到一个输入控制的作用。FPGA是现场 可编程逻辑器件,也是本设计方案的核心内容,它是实现自动售货机运作的主要 控制模块。将编写好的HDL程序烧制到现场可编程逻辑器件FPGA 中,然后通过 控制输入电路把信号输入到FPGA,由八个开关控制输入信号即消费者选择商品 和消费者投币及确认消费,动态数码管显示输出信号即找零环节和所选择的商 品、消费者投币。1.2.2设计方案比较 本设计可以通过多种方案来实现,下面就主要的三种方案进行阐述和比较。 方案一:采用数字逻辑电路制作,用IC器件连接焊接外围电路实现,这种电路很直 观,简单方便。但应用数

8、字逻辑电路制作,使用的器件较多,连接复杂,体积 大,功耗大。电路中焊点和线路较多会,使成品的稳定度和精度大大降低。 方案二:使用现场可编程逻辑器件(FPGA)制作,利用Verilog HDL硬件描述语言 编程进行控制,然后烧写实现。方案三: 单片机现在已经达到很成熟的阶段了,它的应用也十分广泛。釆用单片机来实现 自动售货机,它的原理方框图与用FPGA来实现的原理方框图类似,如图1.2所示。图 1.2 采用单片机实现自动售货机的原理方框图图 1.1 和图 1.2 的基本原理都相同,唯一不同的是一个是用 FPGA 来制作, 一个是用单片机来实现。采用单片机来实现自动售货机,主要的核心是单片机程 序

9、的设计。方案比较:对于自动售货机的设计,三个方案均可以实现,但是第一个方案中采用的是 数字逻辑电路来制作,该电路硬件所需的器材多,体积庞大,比较复杂,而且精度 和稳定度都不是很高。第二个方案采用的是现场可编程逻辑器件来实现, 它的 优点是所有电路集成在一块芯片上,此方案所需的外围电路简单,这样它的体积 就减少了,同时还提高了系统的稳定度。还可以用软件Quartusll软件进行仿真 和调试等。可以充分利用HDL硬件描述语言方便的编程,提高开发效率,缩短 研发周期,降低研发成本;而且易于进行功能的扩展,实现方法灵活,调试方 便,修改容易.方案三也有它的优点,但同时也存在缺点。它对设计者的要求比 较

10、高,设计者对软硬件必须十分熟悉2。 和方案二来比它的实验仿真没有方案二 简单直观,调试也有一定的难度。在外界环境相同的条件下,方案三设计出来的 产品精度和稳定度要比方案二稍微差一些。因此,自动售货机的设计我们选择方 案二来实现。第二章 详细设计2.1 自动售货机状态描述判断开关被按下的个数N。若N=2表示所选本次选择无效,返回初始状态; 若N=1则显示所选商品,并继续执行下面的流程。3个开关分别代表三种商品。 4个开关分别代表投入0.5元, 1元, 2元, 5元,统计投入总额。投入总额与商 品价格做比较,如果总额商品价格,退钱并返回初始状态如果总额=商品价格, 则继续执行下面的程序。找零=总额

11、-商品价格,数码管显示找零金额。状态图如 图 2.1 所示:2.2.1 初始状态各变量都设置为零,按下rst键后,一切恢复到初始状态。2.2.2 选商品状态分别有价格为 0.5 元、1 元、1.5 元和 2 元的商品,每次选择商品前,设置 一个标志位 btn_sell 表示选择商品状态。此自动售货机每一次售货时只能一次选 择一种商品,当同时选择两种以上时,选择商品无效,数码管显示清零,重新 进行商品选择。选择商品后,数码管显示所选商品价格。2.2.3 投币状态当选好商品后,开始投币。同样有一标志位 btn_price 表示投币金额。投币 口只接受三种面值的钱币 0.5元、2元和5元,可以同时投

12、入多种面值钱币。投 完币后,先有一个确认买商品的过程,若投了币但又不购买商品了,就将全部 投币金额退回;若确认购买商品,则进入下一状态找零状态。2.2.4 找零状态投完币,并确认购买商品后,进入找零状态。首先要将所投的金额与所选商 品的价格做比较,若所投金额小于商品价格,则退回所投钱币;若大于等于商 品价格,则两者做差,得到需要找零的钱。第三章 软件设计3.1 程序总流程图3.2 程序module auto_seller(clk,rst,dis_mony,dis_price,btn_ok,btn_mon,btn_sell,led_warn,led,bee p);input clk,rst,bt

13、n_ok;input 2:0 btn_mon;/选择放入的钱input 3:0 btn_sell;/选择商品 bbt_5,gz_10,kqs_15,kl_20output 3:0 led;/led_5,led_10,led_15,led_20output led_warn;/钱不足,指示灯output 11:0 dis_mony;/数码管显示投入面值,dia_mony10:7=com 位 选,dis_mony7:0=段码output 11:0 dis_price;/数码管显示价钱output beep;reg clk_500Hz;reg 3:0 led;/led_5,led_10,led_15

14、,led_20reg led_warn;/警告放入钱不足reg 11:0 dis_mony;reg 11:0 dis_price;reg 31:0 counter;reg 9:0 price,price_all;reg 1:0 flag = 2b00;/数码管显示标志位reg beep=0;parameter COUNT1 = 25d10000;/*分频使数码管显示稳定*/always (posedge clk)beginif(counter= 0)begincounter = COUNT1;clk_500Hz = clk_500Hz;endelsecounter = counter-1;en

15、dalways (negedge rst or posedge clk) begin if(!rst)beginled = 4b0000;/LED 灭 price_all = 0;/价格清零 led_warn = 0;price = 0;beep = 0;endelsebegin/*三种面值共8种组合*/ case(btn_mon)3b001:begin price_all = 5;end3b010:begin price_all = 10;end3b100:begin price_all = 50;end3b011:begin price_all = 15;end3b101:begin price_all = 55;end3b110:begin price_all = 60;end3b111:begin price_all = 65;end default:begin price_all = 0;end endcase case(btn_sell) 4b0001:begin price = 5;end4b0010:begin price = 10;end4b0100

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号