数字电子技术课程设计报告(样例)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

大庆师范学院数字电子技术课程设计报告设计课题:基于VHDL自动售货姓名:杨浩北学院:物电学院专业:电子信息工程班级:08级(2)班学号:200801071425日期2011年5月24日—2011年6月4日指导教师:4目录1.设计的任务与要求···························································21.1设计指标·······························································21.2设计要求·······························································22.系统方案论证·······························································22.1程序设计································································32.2模拟仿真波形·····························································42.3模拟仿真波形分析·························································53实验总结····································································54参考文献····································································52自动售货机设计1.设计的任务与要求本设计要求使用VHDL设计制作一个自动售货机控制系统,该系统能完成货物信息储存,进程控制,硬币处理,自动找零等功能,判断钱币是否够用,当投入一元五角时输出货物,当投入两元时输出货物并找五角钱1.1设计指标1.有两种硬币:1元或5角,投入1元5角硬币输出货物。2投入2元硬币输出货物并找5角零钱。1.2设计要求1.画出电路原理图(或仿真电路图);2.元器件及参数选择;3.编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。2.方案论证Moore型状态机设计,完成自动售货机VHDL设计。要求:有两种硬币:1元和5角,投入1元5角硬币输出货物,投入2元硬币输出货物并找5角零钱。状态定义:S0表示初态,S1表示投入5角硬币,S2表示投入1元硬币,S3表示投入1元5角硬币,S4表示投入2元硬币。输入信号:state_input(0)表示投入1元硬币,state_input(1)表示投入5角硬币。输入信号为1表示投入硬币,输入信号为0表示未投入硬币。输出信号:comb_outputs(0)表示输出货物,comb_outputs(1)表示找5角零钱。输出信号为1表示输出货物或找钱,输入信号为0表示不输出货物或不找钱。根据设计要求分析,得到状态转换图如图所示。状态S0、S1、S2、S3和S4;输入state_inputs(0,1);输出comb_outputs(0,1);输出仅与状态有关,因此将输出写在状态圈内部。resetcurrent_statenext_stateclkstate_inputsmoorestate_inputs42.1程序设计libraryieee;useieee.std_logic_1164.all;entitymooreisport(clk,reset:instd_logic;state_inputs:instd_logic_vector(0to1);comb_outputs:outstd_logic_vector(0to1));endmoore;architecturebeofmooreistypefsm_stis(s0,s1,s2,s3,s4);--状态的枚举类型定义signalcurrent_state,next_state:fsm_st;--状态信号的定义beginreg:process(reset,clk)--时序进程beginifreset='1'thencurrent_state=s0;--发生reset异步复位elsifrising_edge(clk)then--发生clk时钟上升沿current_state=next_state;--进行状态转换endif;endprocess;com:process(current_state,state_Inputs)--组合进程状态定义:S0表示初态,S1表示投入5角硬币,S2表示投入1元硬币,S3表示投入1元5角硬币,S4表示投入2元硬币。输入信号:state_input(0)表示投入1元硬币,state_input(1)表示投入5角硬币。输入信号为1表示投入硬币,输入信号为0表示未投入硬币。输出信号:comb_outputs(0)表示输出货物,comb_outputs(1)表示找5角零钱。输出信号为1表示输出货物或找钱,输入信号为0表示不输出货物或不找钱。根据设计要求分析,得到状态转换图如图所示。状态S0、S1、S2、S3和S4;输入state_inputs(0,1);输出comb_outputs(0,1);输出仅与状态有关,因此将输出写在状态圈内部。元角S0表示初态5角硬币1元硬币1元5角2元硬币元角/物零4begincasecurrent_stateiswhens0=comb_outputs=00;--现态s0,输出00if--输入不同,次态不同state_inputs=00thennext_state=s0;--输入00,次态s0elsifstate_inputs=01thennext_state=s1;--输入01,次态s1elsifstate_inputs=10thennext_state=s2;--输入10,次态s2endif;whens1=comb_outputs=00;--现态s1,输出00ifstate_inputs=00thennext_state=s1;--输入不同,次态不同elsifstate_inputs=01thennext_state=s2;elsifstate_inputs=10thennext_state=s3;endif;whens2=comb_outputs=00;--现态s2ifstate_inputs=00thennext_state=s2;--输入不同,次态不同elsifstate_inputs=01thennext_state=s3;elsifstate_inputs=10thennext_state=s4;endif;whens3=comb_outputs=10;现态s3,输出10ifstate_inputs=00thennext_state=s0;输入不同,次态不同elsifstate_inputs=01thennext_state=s1;elsifstate_inputs=10thennext_state=s2;endif;whens4=comb_outputs=11;现态s4,输出11ifstate_inputs=00thennext_state=s0;输入不同,次态不同elsifstate_inputs=01thennext_state=s1;elsifstate_inputs=10thennext_state=s2;endif;endcase;endprocess;endbe;、2.2模拟仿真波形42.3模拟仿真波形分输入为10时,表示投入一元硬币,状态由s0转换到s2状态,当再次检测到投入一元硬币,则状态由s2转换到s4状态,输出11,表明输出货物且找零钱。如果检测到投入了3次5角硬币,状态变化顺序为s0→s1→s2→s3,到状态变化到s3时,输出10,表明输出货物且不找零钱。3.实验总结通过这次设计性实验我学会的很多知识,也学会了QuartusII9.0软件的应用,对以后的学习和工作都有很大的帮助,这个实验很有意义在我们的生活的就有这中售货机,我想通过我以后的不断学习肯定能设计出功能更多的售货机,把它的缺陷都补充完整,通过软件把这个设计实验的波形仿真出来就会让我们对这次设计实验有更加深刻的认识4.参考文献[1]谭会生,张昌凡。EDA技术及应用[M]。西安;西安电子科技大学出版社,2001,9。[2]黄智伟,FPGA系统设计与实践[M]北京,电子工业出版社,2005.1[3]王文娟,基于VHDL自动售货机设计方案与实现[J],2005.5[4]路而红,电子设计自动化应用技术-FPGA应用篇;高等教育出版社,20091213

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功