已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
状态机(FSM)设计,1,FSM定义,Finitestatemachine,表示有限个状态及其在这些状态直接的转移和动作等行为的一种数学模型状态存储过去的信息输出取决于过去输入部分和当前输入部分的时序逻辑电路状态机中必须包括寄存器,2,状态机(StateMachine)是一类很重要的时序电路,是很多数字电路的核心部件,是大型电子设计的基础。状态机相当于一个控制器,它将一项功能的完成分解为若干步,每一步对应于二进制的一个状态,通过预先设计的顺序在各状态之间进行转换,状态转换的过程就是实现逻辑功能的过程。状态机有摩尔(Moore)型和米立(Mealy)型两种。Moore型状态机的输出信号只与当前状态有关;Mealy型状态机的输出信号不仅与当前状态有关,还与输入信号有关。,3,为什么要使用状态机?,4,1.1数据类型定义语句,TYPEm_stateIS(st0,st1,st2,st3,st4,st5);SIGNALpresent_state,next_state:m_state;,TYPEBOOLEANIS(FALSE,TRUE);,TYPEmy_logicIS(1,Z,U,0);SIGNALs1:my_logic;s1=Z;,SUBTYPE子类型名IS基本数据类型RANGE约束范围;,SUBTYPEdigitsISINTEGERRANGE0to9;,1VHDL一般状态机,5,1.2一般有限状态机的设计,1.说明部分,ARCHITECTURE.ISTYPEFSM_STIS(s0,s1,s2,s3);SIGNALcurrent_state,next_state:FSM_ST;.,6,【例1】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYs_machineISPORT(clk,reset:INSTD_LOGIC;state_inputs:INSTD_LOGIC_VECTOR(0TO1);comb_outputs:OUTINTEGERRANGE0TO15);ENDs_machine;ARCHITECTUREbehvOFs_machineISTYPEFSM_STIS(s0,s1,s2,s3);-数据类型定义,状态符号化SIGNALcurrent_state,next_state:FSM_ST;-将现态和次态定义为新的数据类型BEGINREG:PROCESS(reset,clk)-主控时序进程BEGINIFreset=1THENcurrent_state=s0;-检测异步复位信号ELSIFclk=1ANDclkEVENTTHENcurrent_statecomb_outputscomb_outputscomb_outputscomb_outputs=14;IFstate_inputs=11THENnext_state=s3;ELSEnext_state=s0;ENDIF;ENDcase;ENDPROCESS;ENDbehv;,9,状态机的工作时序,打开QuartusII状态图观察器,状态图,10,状态机的结构示意图,11,2Moore状态机设计,2.1多进程状态机设计,ADC0809工作时序,12,控制ADC0809采样状态图,13,采样状态机结构框图,14,【例2】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYADCINTISPORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);-来自0809转换好的8位数据CLK:INSTD_LOGIC;-状态机工作时钟EOC:INSTD_LOGIC;-转换状态指示,低电平表示正在转换ALE:OUTSTD_LOGIC;-8个模拟信号通道地址锁存信号START:OUTSTD_LOGIC;-转换开始信号OE:OUTSTD_LOGIC;-数据输出3态控制信号ADDA:OUTSTD_LOGIC;-信号通道最低位控制信号LOCK0:OUTSTD_LOGIC;-观察数据锁存时钟Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0);-8位数据输出ENDADCINT;ARCHITECTUREbehavOFADCINTISTYPEstatesIS(st0,st1,st2,st3,st4);-定义各状态子类型SIGNALcurrent_state,next_state:states:=st0;SIGNALREGL:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALLOCK:STD_LOGIC;-转换后数据输出锁存时钟信号,15,BEGINADDAALEALEALEALEALEnext_state=st0;ENDCASE;ENDPROCESSCOM;REG:PROCESS(CLK)BEGINIF(CLKEVENTANDCLK=1)THENcurrent_state=next_state;ENDIF;ENDPROCESSREG;-由信号current_state将当前状态值带出此进程:REGLATCH1:PROCESS(LOCK)-此进程中,在LOCK的上升沿,将转换好的数据锁入BEGINIFLOCK=1ANDLOCKEVENTTHENREGLnext_statenext_stateIF(EOC=1)THENnext_statenext_statenext_statenext_stateALEALEALEALEALEALE=0;START=0;LOCK=0;ENDCASE;ENDPROCESSCOM2;,17,ADC0809采样状态机工作时序,18,2Moore状态机设计,2.2单进程Moore状态机设计,状态机综合后的部分主要RTL电路模块(Synplify综合),19,【例4】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMOORE1ISPORT(DATAIN:INSTD_LOGIC_VECTOR(1DOWNTO0);CLK,RST:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);ENDMOORE1;ARCHITECTUREbehavOFMOORE1ISTYPEST_TYPEIS(ST0,ST1,ST2,ST3,ST4);SIGNALC_ST:ST_TYPE;BEGINPROCESS(CLK,RST)BEGINIFRST=1THENC_STIFDATAIN=10THENC_STIFDATAIN=11THENC_STIFDATAIN=01THENC_STIFDATAIN=00THENC_STIFDATAIN=11THENC_STC_STIFDATAIN=1THENQ2:=10101;ELSEQ2:=10011;ENDIF;WHENst3=IFDATAIN=0THENQ2:=11011;ELSEQ2:=01001;ENDIF;WHENst4=IFDATAIN=1THENQ2:=11101;ELSEQ2:=01101;ENDIF;WHENOTHERS=Q2:=00000;ENDCASE;IFCLKEVENTANDCLK=1THENQ1=Q2;ENDIF;ENDPROCESSCOM1;Q=Q1;ENDbehav;,26,4状态机的状态编码,4.1状态位直接输出型编码,表1控制信号状态编码表,27,【例7】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYAD0809IS.PORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);CLK,EOC:INSTD_LOGIC;ALE,START,OE,ADDA:OUTSTD_LOGIC;c_state:OUTSTD_LOGIC_VECTOR(4DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ENDAD0809;ARCHITECTUREbehavOFAD0809ISSIGNALcurrent_state,next_state:STD_LOGIC_VECTOR(4DOWNTO0);CONSTANTst0:STD_LOGIC_VECTOR(4DOWNTO0):=00000;CONSTANTst1:STD_LOGIC_VECTOR(4DOWNTO0):=11000;CONSTANTst2:STD_LOGIC_VECTOR(4DOWNTO0):=00001;CONSTANTst3:STD_LOGIC_VECTOR(4DOWNTO0):=00100;CONSTANTst4:STD_LOGIC_VECTOR(4DOWNTO0):=00110;SIGNALREGL:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALLOCK:STD_LOGIC;BEGINADDA=1;Q=REGL;START=current_state(4);ALE=current_state(3);OE=current_state(2);LOCK=current_state(1);c_statenext_statenext_stateIF(EOC=1)THENnext_statenext_statenext_statenext_state=st0;ENDCASE;ENDPROCESSCOM;REG:PROCESS(CLK)BEGINIF(CLKEVENTANDCLK=1)THENcurrent_state=next_state;ENDIF;ENDPROCESSREG;-由信号current_state将当前状态值带出此进程:REGLATCH1:PROCESS(LOCK)-此进程中,在LOCK的上升沿,将转换好的数据锁入BEGINIFLOCK=1ANDLOCKEVENTTHENREGLnext_statenext_statenext_state=st0;ENDcase;,35,【例10】.alarm=(st0AND(st1ORst2ORst3ORst4ORst5)OR(st1AND(st0ORst2ORst3ORst4ORst5)OR(st2AND(st0ORst1ORst3ORst4ORst5)OR(st3AND(st0ORst1ORst2ORst4ORst5)OR(st4AND(st0ORst1ORst2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重症哮喘急救护理中的心理支持
- 高职护理:护理科研方法
- 压疮护理中的健康教育与宣传
- 周围型面瘫的饮食护理建议
- 口腔护理并发症的预防策略与措施
- 基础护理环境与医疗事故
- 开化教师招聘试卷试题及答案
- 2026年中考考前模拟-语文(贵州卷)(参考答案及评分标准)
- 警保业务考核试题及答案解析
- 酶制剂微生物菌种工岗前知识水平考核试卷含答案
- 中建成本管理与经济活动分析
- 全国赛课一等奖人教版美术四年级下册《设计文化衫》课件
- GB/T 4706.47-2024家用和类似用途电器的安全第47部分:动物繁殖和饲养用电加热器的特殊要求
- ISO28000:2022供应链安全管理体系
- 人教版高中物理课后习题参考答案汇编
- 填空题-江苏省南通市10年(2013-2022)中考物理真题按题型分类(解析版)
- 影视文学总课件
- 化粪池清理管理制度
- 压缩机巡检记录表(模板)
- 2023海洋观测数据格式
- 平面构成课程说课公开课一等奖市优质课赛课获奖课件
评论
0/150
提交评论