您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > VHDLFPGA状态机
《VHDL与数字系统设计》课程设计报告(2014--2015年度第1学期)名称:VHDL与数字系统设计题目:简单状态机院系:电气与电子工程学院班级:电子1301学号:1131230106学生姓名:韩辉指导教师:高雪莲设计周数:2周成绩:日期:2015年1月日课程课程设计报告1一、课程设计的目的与要求1.设计目的(1)熟悉MAXPLUS2/QuartusII软件,掌握软件的VHDL程序输入、程序编译和程序仿真操作;(2)学习利用VHDL语言设计简单状态机程序。2.设计要求:根据设计正文提出的简单状态机要求设计相应VHDL程序。二、设计正文设计一个简单状态机的电路,其功能如下:其中:状态有六种状态,分别为s0—s5;Q为输出值,只有从S5到S0的状态转换时,Q=1;k为控制信号,当K=1时,进行状态转换,k=0时,状态保持。简单状态机设计的源程序:Libraryieee;Useieee.std_logic_1164.all;——包含库和程序包Entitymachineis——定义实体S0:100000Q:0S1:010000Q:0S2:001000Q:0S3:000100Q:0S4:000010Q:0S5:000001Q:1K=1K=1K=1K=1K=1K=1课程课程设计报告2Port(clk,reset,K:instd_logic;——clk,reset,K输入变量phase:outstd_logic_vector(3downto0)Q:outstd_logic;);——phase,Q输出变量Endentitymachine;——结束实体Architecturearc1ofstepmotorisTypestatesis(S0,S1,S2,S3,S4,S5);Signalcurrent_state:states;Beginprocess(clk)beginifclk’eventandclk='1'then——检测时钟上升沿ifreset=‘1’thencurrent_state=S0;——reset=1时保持S0状态elsecasecurrent_stateis——reset=0时进入状态转换模式WHENS0=IFK='1'THEN——K=1时S0转换为S1current_state=S1;ELSEcurrent_state=S0;——K=0时S0保持原状态ENDIF;Q='0';——输出结果Q=0WHENS1=IFK='1'THENcurrent_state=S2;——K=1时S1转换为S2ELSEcurrent_state=S1;——K=0时S1保持原状态ENDIF;Q='0';——输出结果Q=0WHENS2=IFK='1'THENcurrent_stateE=S3;——K=1时S2转换为S3ELSEcurrent_stateE=S2;——K=0时S2保持原状态课程课程设计报告3ENDIF;Q='0';——输出结果Q=0WHENS3=IFK='1'THENcurrent_state=S4;——K=1时S3转换为S4ELSEcurrent_state=S3;——K=0时S3保持原状态ENDIF;Q='0';——输出结果Q=0WHENS4=IFK='1'THENcurrent_state=S5;——K=1时S4转换为S5ELSEcurrent_state=S4;——K=0时S4保持原状态ENDIF;Q='0';——输出结果Q=0WHENS5=IFK='1'THENcurrent_state=S0;——K=1时S5转换为S0ELSEcurrent_state=S5;——K=0时S5保持原状态ENDIF;Q='1';——输出结果Q=1WHENothers=current_state=s0;endcase;endif;Endif;Endprogress;Process(current_state)BeginCasecurrent_stateis——设置S0~S5的输出结果whenS0=phase=“100000”;whenS1=phase=“010000”;whenS2=phase=“001000”;课程课程设计报告4whenS3=phase=“000100”;whenS4=phase=“000010”;whenS5=phase=“000001”;Endcase;Endprogress;——结束进程Endarchitecturearc1;三.课程设计结论和总结1.简单状态机的仿真波形图及其分析图1为简单状态机的仿真波形图,由图1分析可得以下结论:(1)如图1中红色框内区域所示,忽略时间的延迟,当reset=1时,输出phase一直保持S0=100000,;当reset=1时,输出phase开始进入状态转换。(2)如图1中绿色框内区域所示,输出结果phase的循环状态为S0→S1→S2→S3→S4→S5→S0……且在phase输出S0、S1、S2、S3、S4时输出Q=0;在phase输出S5时输出Q=1。图2为简单状态机的仿真波形图,由图2分析可得以下结论:输入K控制phase的状态:当K=1时,为转换状态;当K=0时,为保持状态。例如:图2中红色框内区域所示即为K=0时的保持状态。2.课程设计的总结(1)在利用QuartusII进行仿真时,要清楚地知道源程序中每一个出入输出变量的作用,并对其给定合适的值,最终得到正确的仿真波形图。(2)对同一要求的设计,可尝试利用不同的设计方法进行设计,综合考量后选定最简单易懂的设计方案。图1简单状态机的仿真波形图一S0S1S2S3S4S5S0图2简单状态机的仿真波形图二S0S1S2S3S4
本文标题:VHDLFPGA状态机
链接地址:https://www.777doc.com/doc-2866354 .html