工程实训报告Modelsim实验四有限状态机之自动售货机(共4页).doc
-
资源ID:15104928
资源大小:48.50KB
全文页数:4页
- 资源格式: DOC
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
工程实训报告Modelsim实验四有限状态机之自动售货机(共4页).doc
精选优质文档-倾情为你奉上实验项目名称: 有限状态机 指导教师: 实验日期: 实验概述:【实验目的及实验设备】 实验目的:(1) 掌握有限状态机的应用方法。(2) 掌握有限状态机的静态测试方法,能够进行程序设计。(3) 学习测试模块的编写,综合和不同层次的仿真。(4) 用有限状态机设计一个自动售货机(饮料价格为2.5元)。实验设备及仪器名称:CPU型号: 英特尔 Pentium Dual-Core T4200 2.00GHz 操作系统类型:Windows XP SP3 仿真软件:MAX Plus 2软件、Modelsim SE-64 10.0c实验内容及步骤:【实验原理及电路图】系统能够根据用户输入的硬币,判断钱币是否足够,当所投硬币达到或者超过购买者所选面值时,则根据顾客的要求自动售货,并找回剩余的硬币,然后回到初始状态,当所投硬币面值不够时,则给出提示,并通过一个复位键退回所投硬币。然后回到初始状态。 该实验输入有4个clk,reset,表示投一元币y,表示投五角币w。输出有2个,表示饮料出现的out和找五角钱的w_out.该实验共5个状态,s0:表示投币为0的状态,s1:表示投入5角的,s2:表示投入1元,s3:表示投入1.5元,s4:表示投入2元。当投入2.5时out输出1,状态回到s0,当投入3元时out和w_out都输出1,状态回到s0.【实验方案】(实验步骤,记录)1、 打开Modelsim SE-64 10.0c软件。2、 建立工程及相应文件,文件名为shouhuoji.v。3、 编写程序。 module shouhuoji(y,w,out,w_out,reset,clk);parameter s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100;input y,w,reset,clk;output y,w_out;reg out,w_out;reg 2:0 s;always (posedge clk) begin if (reset) begin out=0;w_out=0;s=s0; endelse case (s) s0: if(w) begin out=0;w_out=0;s=s1;endelse if(y) begin out=0;w_out=0;s=s2;endelse begin out=0;w_out=0;s=s0;ends1: if(w) begin out=0;w_out=0;s=s2;end else if(y)begin out=0;w_out=0;s=s3;end else beginout=0;w_out=0;s=s1;ends2: if (w) begin out=0;w_out=0;s=s3;end else if(y)begin out=0;w_out=0;s=s4;end else beginout=0;w_out=0;s=s2;ends3: if (w) begin out=0;w_out=0;s=s4;end else if (y) begin out=1;w_out=0;s=s0;end else beginout=0;w_out=0;s=s3;ends4: if(w)begin out=1;w_out=0;s=s0;end else if(y)begin out=1;w_out=1;s=s0;end else beginout=0;w_out=0;s=s4;endendcaseendendmodule测试程序:module shou;wire y;reg w;reg reset;reg clk;paramerer clkperiod=100;shouhuoji shou(y,w,reset,clk)initial begin w=0;clk=0;reset=1;#150 reset=0;#100 reset=1;endalways#(clkperiod/2) clk=clk;always#(clkperiod+30) $random;initial $monitor(Stime, “y=%b”,y);endmodule3、编译并调试程序,出现错误立即修改直至无错误出现。4、建立仿真文件,并进行波形仿真。5、分析仿真波形图。 【实验结果】(实验波形)二、【解答思考题】对本次实验进行结论,并进一步认识有限状态机:有限状态机是指输出取决于过去输入部分和当前输入部分的时序逻辑电路。一般来说,除了输入部分和输出部分外,有限状态机还含有一组具有“记忆”功能的寄存器,这些寄存器的功能是记忆有限状态机的内部状态,它们常被称为状态寄存器在有限状态机中,状态寄存器的的下一个状态不仅与输入信号有关,而且还与该寄存器的当前状态有关,因此有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。其中,寄存器逻辑的功能是存储有限状态机的内部状态;而组合逻辑又可以分为次态逻辑和输出逻辑两部分,次态逻辑的功能是确定有限状态机的下一个状态,输出逻辑的功能是确定有限状态机的输出。【小结】(碰到的问题,如何解决,有何体会,改进建议等)在实验中遇到的问题是:1、首先是在定义程序的基本框图时,比较迷糊通过上网查阅一些资料后,才有了一个比较清晰的想法。2、弄不明白该如何定义输入输出,后来仔细研究了实验要求后,反复尝试后弄明白了。3、不知道该如何定义s0-s4,后来也是通过问同学才解决了这一问题。4、在连续输入四个1时,输出为1,否则输出为0,状态回到原始值。在reset_n=0,时将当前状态置为0,否则置为下个状态,使之能正常运转。 解决了以上这些问题之后,本次试验才算是圆满完成。通过本次试验我明白了,复杂的程序要一步一步的仔细做,要不怕出错,遇到不懂的地方要仔细钻研,适当的时候请教老师和同学,才能成功。实验成绩:专心-专注-专业