基于eda的课程设计 自动售货机控制设计(3)

2019-05-17 11:15

5 总结

在学期期末,院系安排我们进行FPGA课程设计。首先,我们根据老师给我们的题目进行设计。然后,利用Quartus Ⅱ进行编译仿真等工作。

通过FPGA课程设计,我不仅加深了对数字电路理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。

这个设计过程中,我遇到过许多次失败的考验,就比如,自己对软件Quartus Ⅱ不熟悉,遇到了很多困难。有时候真想就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。于是,我坚持了下来。当然最终,这个设计很完成了。

9

参考文献

[1].Voknei A.Pedroni.VHDL数字电路设计教程.电子工业出版社,2008.5 [2].潘松,黄继业.EDA技术实用教程(第二版).科学出版社,2005.2 [3].焦素敏.EDA应用技术.清华大学出版社,2002.4

[4].张昌凡等.可编程逻辑器件及VHDL设计技术[M].广州:华南理工大学出版社,2001 [5].曾繁泰,陈美金.VHDL程序设计[M].北京:清华大学出版社,2001

10

附录

library ieee;

use ieee.std_logic_1164.all; entity shouhuoji is

port(rst,clk,ai,bi,ci,di,ei,fi,ok:in std_logic; xianshi:out integer range 0 to 10; ao,bo,co,warn:out std_logic); end shouhuo;

architecture bhv of shouhuo is

type state is(s0,s1,s11,s15,s110,s2,s21,s25,s210,s3,s31,s35,s310); --设计分13个状态 signal n_s,p_s:state; signal a,b:std_logic; begin process(clk,rst)

variable temp:integer range 0 to 3; begin if(rst='1')then

p_s<=s0; --时序进程部分 elsif(clk'event and clk='1')then p_s<=n_s; if(a='1')then

temp:=temp+1; --延时3s代码 if(temp=3)then b<='1'; else b<='0'; end if; else temp:=0; end if; end if; end process;

process(p_s,ai,bi,ci,di,ei,fi,ok,b) --组合进程代码 begin

11

if((p_s=s0)or(p_s=s1)or(p_s=s2)or(p_s=s3))then a<='0'; else

a<='1'; --商品的成功输出维持3s的时间 end if; case p_s is when s0=>

xianshi<=0; ao<='0'; bo<='0'; co<='0'; warn<='0'; if(ai='1')then

n_s<=s1; elsif( bi='1')then

n_s<=s2; elsif( ci='1')then

n_s<=s3; else

n_s<=s0; end if;

when s1=> ao<='0'; bo<='0'; co<='0'; warn<='0';

xianshi<=1; if(di='1')then xianshi<=1;

if(ok='1')then n_s<=s11; else

n_s<=s1; end if;

--自动售货机的初始状态 --购买一元商品进入s1状态 --购买五元商品进入s2状态 --购买十元商品进入s3状态 --返回初始状态 --购买一元商品的销售服务状态 --价格显示一元 --输入一元并确认进入s11状态 --没有确认则返回s1状态 12

elsif(ei='1')then --输入五元并确认进入s15状态 xianshi<=5; if(ok='1')then n_s<=s15; else

n_s<=s1; --没有确认则返回s1状态 end if; elsif(fi='1')then

xianshi<=10; if(ok='1')then n_s<=s110; else

n_s<=s1; end if; else

n_s<=s1; end if;

when s2=> ao<='0'; bo<='0'; co<='0'; warn<='0';

xianshi<=5; if(di='1')then xianshi<=1;

if(ok='1')then n_s<=s21; else

n_s<=s2; end if;

elsif(ei='1')then xianshi<=5; if(ok='1')then n_s<=s25;

--输入十元并确认进入s110状态 --没有确认则返回s1状态 --没有投币则返回s1状态 --购买五元商品的销售服务状态 --价格显示五元 --输入一元并确认进入s21状态 --没有确认则返回s2状态 --输入五元并确认进入s25状态 13


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

下一篇:马氏链模型及matlab程序

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

马上注册会员

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