EDA课设自动售邮票机.docx
- 文档编号:7029255
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:10
- 大小:113.37KB
EDA课设自动售邮票机.docx
《EDA课设自动售邮票机.docx》由会员分享,可在线阅读,更多相关《EDA课设自动售邮票机.docx(10页珍藏版)》请在冰豆网上搜索。
EDA课设自动售邮票机
辽宁工程技术大学
集成电路EDA技术课程设计报告
题目
指导教师院(系、部)
专业班级
学号
姓名
日期
自动售票机的设计
李书艳
电信学院
电子09-2班
0906040202
陈磊
2012/6/佃
一、摘要
20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。
在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。
这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。
这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
EDA设计是当代电子信息人才必须要掌握的一门技术,本次课程设计中我运用VHDL语言和Quaertus
U软件完成了自动售邮票机的设计。
着重介绍了VHDL语言的特点,在设计中体
现了其基本原理、系统组成和主要功能;并分析讨论了用VHDL语言开发自动售
货机系统的设计流程。
最终完成的自动售货机系统具有投币处理、商品选择、购
货撤销、异常退币、计算存货等主要功能。
二、综述
VHDL语言是一种用于电路设计的高级语言。
VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。
除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
本次课程设计将运用VHDL设计一款自
动售邮票机,培养EDA操作技巧。
设计目的:
1.巩固所学的专业技术知识;
2•了解并掌握VHDL语言设计方法,具备初步的独立设计能力;
3.提高综合运用所学理论知识、独立分析和解决问题的能力;
4.更好地将理论与实践相结合。
设计要求:
有一个自动售邮票机,出售面值为6角和8角的邮票。
售票机有1角,5角和1元三个硬币投放口,售票机每次只能售出一枚邮票。
当所投硬币达到或者超过购买者所选面值时,售出一枚邮票,并找回零钱,售票机回到初始状态;当所投硬币不足邮票面值时,可以通过一个复位键退回所投硬币,售票机回到初始状态。
三、方案设计与分析思路分析
1、题目分析:
因为售票机有3个投放口,而每次只能出售一枚邮票,所以如果要买6角,
则购买方式有4种:
0.1+0.50.5+110.1+1
购买8角的可能为以下4种:
10.1+0.5+10.1+10.5+1(所投面值达到购买面值就自动售出,注意
投币顺序),如上分析顾客的无论是选择6角还是8角都最多能有4种行为能够购买。
2、程序设计
entity定义
我们定义了系统的输入/输出端口信号,考虑顾客只有4种操作行为,即投
币、选择、确定与取消,
所以定义以下系统输入信号。
Reset:
系统内部设置给其他顾客重新操作的复位信号;
Clk:
由外接信号发射器提供1024b/s的系统时钟信号
Okbuy:
购买确认的按键信号;
Cancle:
购买取消的按键信号;
Coin1:
投入1角硬币的动作按键
Coin5:
投入5角硬币的动作按键;
Coin10:
投入1元硬币的动作按键;
Select6:
选择6角邮票的按键信号;
Select8:
选择8角邮票的按键信号;
在设计中我们用LED灯的熄灭来表示系统的信号处理结果
Led6ok:
灯亮显示还有6角邮票;
Led8ok:
灯亮显示还有8角邮票;
Led6sei:
灯亮显示6角邮票选择按键被按;与Led8sel只有
—个灯亮,后按着优先;
灯亮显示8角邮票选择按键被按;与Led6sei只
Led8se:
有一个灯亮,后按着优先;
硬币;
硬币;
币:
VHDL源代码:
Libraryieee;
useieee.std_logic_1164.all;
useieee.std」ogic_arith.all;
debounce'component
useieee.std_logic_unsigned.all;
useworkmy_pkg.all;-packageincluding---inputandoutputpinsdeclaractionentityvendorisport(resetinstdlogic;--powerresettoanotherbuying.
Clk:
instdlogic;ok_instdlogic;
cancleinstdlogic;
Coin-1:
instd-logic;——按钮投入1角硬币
coin_5:
instd_logic;--按钮投入5角硬币
coin_10:
instd_logic;--按钮投入1元硬币
select6instd_logic;--:
按钮选择6角邮票
select8instd_logic;--按钮选择8角邮票
led6ok:
outstd_logic;--显示6角邮票可用
led8ok:
outstd_logic;--显示8角邮票可用
led6setoutstd_logic;--显示6角邮票被选择
led8sel:
outstd_logic;
ledbuy:
outstd_logic;--显示确定购买
ledcancleoutstd_logic;--显示拒绝购买
ledfive:
outstd_logicvector(ltoO);--显示五角硬币个数
ledten:
outstd_logicvector(OtoO);
Ledone:
outstd-logicvector(0to7);
ledfivereturn:
outstd_logicvector(ltoO);--显示退出5角硬币
ledtenrenturn:
outstd_logicvector(OtoO);
Ledonereturn:
outstd-logicvector(Oto7);
led6out:
outstd_logic;--显示6角邮票出货
led8out:
outstd_logic;
End.
3、仿真分析
设定ok_buy,cancel_buy与reset三个系统输入信号,可观察到系统输出信号led_ok,led_cancel与输出全局信号ok与cancel的波形,ok与cancel信号用
来维持ok_buy与cancel_buy按键操作的状态。
源代码--tocheckconfimingorcancelingbuying
okorcancleblock
--inputresetokbuycanclebuy
--outputledbuyokledcancelcancel
:
process(resetokbuy)--tomaintaintheconfiming
begin
Pl
status
begin
ifreset=‘1'thanok<=0
ledbuy
<=0
elsifrisingdege
(okbuy')then
ok
<=1
ledbuy
<=1
endif;
endprcess
p2process(reset
canclebuy)--tomaitainthe
cancelingstatus
begin
ifreset<=1;thencancel<=‘O';
led_cancel<='0'elsifrising_edge(cancel_buy)then.
cancel<='1':
led_cancel<='1';
endif1.
endprocess;
endblock;
3、女口3-1所示
3-1确认与取消电路仿真图
设定elk与reset等系统输入信号,以及输入全局信号cancel,total_amount_one,return_clk,6_out与8_to信号后,可以观察到系统输出信
号led_one_return,led_five_return与输出全局信号money_ok的波形。
另外,
局部信号total_amount仅用来暂存投入硬币的总金额,并不输出到模块外,正常交易时的系统反应。
如果操作期间按了取消键,则退币灯全亮,并立即退还所有硬币,退币与找零源代码:
--tochecktotalamountanddecidereturnedcoinsandtwinkle.
--theleds.
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.
signaltotal_amount:
integerrange0to15;
begin
process(reset.clk).
begin
ifreset='1'thentotal_amount<='O'
money_ok<='0';
Ied_five_return<=(others=>led_ten_return<=(others=>
'O');
'O');
elsifrising_edge(clk)then.
total_amount<=total_amount_ten+total_amount_five+total_amount_one;
iftotal_amount>=6thenmoney_ok<='1';
elsemoney_ok<='O';
endif;
if(cancel='1')then
--ifcanceled_returnallcoinsmmediately.
foriin0to2loop.
Ied_five_return(i)v=return_clk;
endloop;
foriin0to1loop.
led_ten_return(i)<=return_clk;
endloop;
elsif(diet_out='1'orcola_out='1')then.
--returncoinsafterdrinkdelivered.
casetotal_amountis.
when0to14=>foriin0to2loop.
Ied_five_return(i)v=return_clk;
endloop;
foriin0to1loop.
led_ten_return(i)<=return_clk;
endloop;
When6=>null;
When10=>led_one_return(4)v=return_clk;
When15=>led_one_returen(9)<=return_clk;
whenothers=>led_ten_return(0)v=return_clk;
led_ten_return
(1)v=return_clk;
endcase;
endif;
endprocess;
endblock;
信号仿真结果如图3-2,图3-3所示:
图3-2退币处理电路仿真图
图3-3找零处理电路仿真图
四、结论
本次课设中我进一步熟练的运用了VHDL语言来描述逻辑功能,课设完成了售票机的基础功能和基本处理方法。
通过本次实践我发现学习EDA设计是一
个漫长的过程,我必须静下心来,潜心研究才能有所作为。
虽然课设的过程是艰辛的,但收货是巨大的。
首先我们对自己所学的知识有了更深的了解和认识,通
过实践使自己的操作更加熟练;其次,在设计过程中自己也发现了许多问题,在
今后的学习和工作中自己需要加强的地方也显露出来。
本次课设培养了我们的实
践和创新能力,在今后的日子里必将成为我们宝贵的财富。
五、参考文献
[1].江国强.EDA技术与应用]M\.北京:
电子工业出版社,2004
[2].林敏.方颍立.VHDL数字系统设计与高层次综合.北京:
电子工业出版社,
2002
[3].潘松、王国栋.VHDL实用教程]M].成都:
电子科技大学出版社,2000
[4].潘松、黄继业.EDA技术实用教程.北京:
科学出版社,2002
[5].曾繁泰等.EDA工程方法学.北京:
清华大学出版社,2003
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 自动 邮票