EDA课设自动售邮票机_第1页
EDA课设自动售邮票机_第2页
EDA课设自动售邮票机_第3页
EDA课设自动售邮票机_第4页
EDA课设自动售邮票机_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 辽宁工程技术大学 集成电路EDA技术课程设计报告 题 目 自动售票机的设计 指 导 教 师 李书艳 院(系、部) 电信学院 专 业 班 级 电子09-2班 学 号 0906040202 姓 名 陈磊 日 期 2012/6/19 1、 摘要 20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如

2、同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 EDA设计是当代电子信息人才必须要掌握的一门技术,本次课程设计中我运用VHDL语言和Quaertus 软件完成了自动售邮票机的设计。着重介绍了VHDL语言的特点,在设计中体现了其基本原理、系统组成和主要功能;并分析讨论了用VHDL语言开发自动售货机系统的设计流程。最终完成的自动售货机系统具有投币处理、商品选择、购货撤销、异常退币、计算存货等主要功能。二、综述 VHDL语言是一种用于电路设计的高级语言。VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。

3、除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 本次课程设计将运用VHDL设计一款自动售邮票机,培养EDA操作技巧。设计目的:1巩固所学的专业技术知识; 2了解并掌握VHDL语言设计方法,具备初步的独立设计能力;3提高综合运用所学理论知识

4、、独立分析和解决问题的能力;4更好地将理论与实践相结合。设计要求: 有一个自动售邮票机,出售面值为6角和8角的邮票。售票机有1角,5角和1元三个硬币投放口,售票机每次只能售出一枚邮票。当所投硬币达到或者超过购买者所选面值时,售出一枚邮票,并找回零钱,售票机回到初始状态;当所投硬币不足邮票面值时,可以通过一个复位键退回所投硬币,售票机回到初始状态。三、方案设计与分析思路分析1、 题目分析: 因为售票机有3个投放口,而每次只能出售一枚邮票,所以如果要买6角,则购买方式有4种:0.1+0.5 0.5+1 1 0.1+1 购买8角的可能为以下4种:1 0.1+0.5+1 0.1+1 0.5+1(所投面

5、值达到购买面值就自动售出,注意投币顺序),如上分析顾客的无论是选择6角还是8角都最多能有4种行为能够购买。2、程序设计entity定义 我们定义了系统的输入/输出端口信号,考虑顾客只有4种操作行为,即投币、选择、确定与取消,所以定义以下系统输入信号。Reset: 系统内部设置给其他顾客重新操作的复位信号;Clk: 由外接信号发射器提供1024b/s的系统时钟信号;Ok buy: 购买确认的按键信号;Cancle: 购买取消的按键信号;Coin1: 投入1角硬币的动作按键Coin 5: 投入5角硬币的动作按键;Coin 10: 投入1元硬币的动作按键;Select 6: 选择6角邮票的按键信号;

6、Select 8: 选择8角邮票的按键信号;在设计中我们用LED灯的熄灭来表示系统的信号处理结果Led 6 ok: 灯亮显示还有6角邮票;Led 8 ok: 灯亮显示还有8角邮票;Led 6 sel: 灯亮显示6角邮票选择按键被按;与Led 8 sel只有一个灯亮,后按着优先;Led 8 sel: 灯亮显示8角邮票选择按键被按;与Led 6 sel只有一个灯亮,后按着优先;Led buy: 灯亮显示按了购买确认键;Led cancle: 灯亮显示按了购买取消键; Led one(1 to 8): 8个LED,投入1个1角硬币亮一个LED; Led five(1 to 2): 2个LED,投入1

7、个5角硬币亮一个LED;Led ten(1 to 1): 1个LED,投入1个1元硬币亮一个LED;Led one return: 8个LED , 以每秒4次的闪烁代表被推出的硬币;Led five renturn: 2个LED, 以每秒4次的闪烁代表被推出的硬币;Led ten return: 1个LED,以每秒4次的闪烁代表被推出的硬币:Led 6 out: 灯亮显示6角邮票已出货;Led 8 out: 灯亮显示8角邮票已出货;VHDL源代码:Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use

8、ieee.std_logic_unsigned.all;use work my_pkg.all;-package including debouncecomponent-input and output pins declaractionentity vendor isport( reset:in std logic;-power reset to another buying.Clk:in std logic;ok_ in std logic;cancle in std logic;Coin-1:in std-logic; -按钮投入1角硬币coin_5:in std_ logic;-按钮投

9、入5角硬币 coin_10:in std_ logic; -按钮投入1元硬币select 6: in std_ logic;-:按钮选择6角邮票select 8: in std_ logic;-按钮选择8角邮票led 6 ok:out std_ logic;- 显示6角邮票可用led 8 ok: out std_ logic;- 显示8角邮票可用led 6 sel:out std_ logic; -显示6角邮票被选择led 8 sel: out std_ logic; led buy:out std_ logic;-显示确定购买led cancle:out std_ logic;-显示拒绝购买

10、led five: out std_ logic vector(1to0);-显示五角硬币个数led ten :out std_ logic vector(0to0);Led one: out std-logic vector(0 to 7);led five return: out std_ logic vector(1to0);- 显示退出5角硬币led ten renturn:out std_ logic vector(0to0);Led one return :out std-logic vector(0 to 7);led 6 out: out std_ logic; -显示6角邮票

11、出货led 8 out: out std_ logic; End.3、仿真分析设定ok_buy,cancel_buy与reset三个系统输入信号,可观察到系统输出信号led_ok,led_cancel与输出全局信号ok与cancel的波形,ok与cancel信号用来维持ok_buy与cancel_buy按键操作的状态。源代码-to check confiming or canceling buying ok or cancle block -input reset ok buy cancle buy -output led buy ok led cancel cancel begin pl:p

12、rocess(reset ok buy)-to maintain the confiming status begin if reset=1than ok=0 led buy =0els if rising dege(ok buy)then ok=1 led buy =1end if;end prcessp2 process(reset cancle buy)-tomaitain the canceling statusbeginif reset=1;then cancel=0;led_cancel<=0; elsif rising_edge(cancel_buy) then. canc

13、el<=1; led_cancel<=1; end if1. end process;end block; 3、 如3-1所示3-1确认与取消电路仿真图设定clk与reset等系统输入信号,以及输入全局信号cancel,total_amount_one,return_clk,6_out与8_to信号后,可以观察到系统输出信号led_one_return,led_five_return与输出全局信号money_ok的波形。另外,局部信号total_amount仅用来暂存投入硬币的总金额,并不输出到模块外,正常交易时的系统反应。如果操作期间按了取消键,则退币灯全亮,并立即退还所有硬币,

14、退币与找零源代码: -to check total am ount and decide returned coins and twinkle. -the leds. coin_returned:block. -input:clk_reset.total_amount_ten.total_amount_five.total_amount_one。 -return_clk.cancel. -6_out.diet_out. -output:money_ok.led_five_return.led_ten_return.led_one_return. -6_choice.diet_choice. s

15、ignal total_amount : integer range 0 to 15; begin process(reset.clk). begin if reset=1 then total_amount<=0; money_ok<=0; led_five_return<=(others=>0); led_ten_return<=(others=>0); elsif rising_edge(clk) then. total_amount<=total_amount_ten+total_amount_five+total_amount_one; if

16、 total_amount>=6 then money_ok<=1; else money_ok<=0; end if; if(cancel=1) then -if canceled_return all coins mmediately. for i in 0 to 2 loop. led_five_return(i)<=return_clk; end loop; for i in 0 to 1 loop. led_ten_return(i)<=return_clk; end loop; elsif(diet_out=1or cola_out=1) then.

17、-return coins after drink delivered. case total_amount is. when 0 to 14 =>for i in 0 to 2 loop. led_five_return(i)<=return_clk; end loop; for i in 0 to 1 loop. led_ten_return(i)<=return_clk; end loop; When6=>null; When10=>led_one_return(4)<=return_clk; When15=>led_one_returen(9)

18、<= return_clk; when others=>led_ten_return(0)<=return_clk; led_ten_return(1)<=return_clk; end case; end if; end process; end block;信号仿真结果如图3-2,图3-3所示:图3-2退币处理电路仿真图图3-3 找零处理电路仿真图四、结论 本次课设中我进一步熟练的运用了VHDL语言来描述逻辑功能,课设完成了售票机的基础功能和基本处理方法。通过本次实践我发现学习EDA设计是一个漫长的过程,我必须静下心来,潜心研究才能有所作为。虽然课设的过程是艰辛的,但收货是巨大的。首先我们对自己所学的知识

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论