版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、8.1 一般有限(yuxin)状态机的设计8.1.1 用户(yngh)自定义数据类型定义语句TYPE语句用法(yn f)如下:TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型 ;或TYPE 数据类型名 IS 数据类型定义 ;以下列出了两种不同的定义方式:TYPE st1 IS ARRAY ( 0 TO 15 ) OF STD_LOGIC ;TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ;第1页/共49页第一页,共50页。8.1 一般(ybn)有限状态机的设计8.1.1 用户(yngh)自定义数据类型定义语句TYPE m_state IS (
2、st0,st1,st2,st3,st4,st5 ) ; SIGNAL present_state,next_state : m_state ;布尔数据类型的定义(dngy)语句是: TYPE BOOLEAN IS (FALSE,TRUE) ;TYPE my_logic IS ( 1 ,Z ,U ,0 ) ; SIGNAL s1 : my_logic ; s1 = Z ; 第2页/共49页第二页,共50页。8.1 一般(ybn)有限状态机的设计8.1.1 用户(yngh)自定义数据类型定义语句子类型SUBTYPE的语句格式(g shi)如下:SUBTYPE 子类型名 IS 基本数据类型 RANG
3、E 约束范围; SUBTYPE digits IS INTEGER RANGE 0 to 9 ;第3页/共49页第三页,共50页。(Finite State Machine,FSM)状态机 一个离散数学模型。给定 一个输入集合,根据对输入的接受次序(cx) 来决定一个输出集合。(摩尔状态机)状态 系统的基本数学(shxu)特征。有限状态机 输入(shr)集合和输出集合 都是有限的,并只有有限数目的状态。第4页/共49页第四页,共50页。输入(shr)集合 A输出(shch)集合 X状态(zhungti)记忆输出形成状态迁移状态机一般结构CLK组合逻辑时序逻辑同步当前状态后续状态输入第5页/共4
4、9页第五页,共50页。Sa1 , a2 , , anx1 , x2 , , xn状态(zhungti)位置状态(zhungti)名称转移(zhuny)方向输入集合(触发事件)输出集合(执行动作)状态等待第6页/共49页第六页,共50页。nna1 , a2 , , anx1 , x2 , , xn状态(zhungti)位置状态(zhungti)名称转移(zhuny)方向输入集合(触发事件)输出集合(执行动作)状态等待S状态编码第7页/共49页第七页,共50页。状态机实例(shl) 自动门 有一自动门,它可以被锁上,也可以开锁。当门锁上时,某人可以在它的槽中塞进一枚硬币。这样,门就会自动开锁,转变
5、(zhunbin)到开锁的状态;人通过后,门就会自动锁上。 我们希望把自动门交给一个简单的 FSM管理。通过对这个简单 FSM 的分析, 了解FSM 的设计过程。第8页/共49页第八页,共50页。自动门的基本(jbn)状态加 锁开 锁投币 / 开锁通过(tnggu) / 加锁初始状态 / 加锁状态机实例(shl)第9页/共49页第九页,共50页。异常(ychng)处理通过(tnggu) / 报警投币 / 请不要(byo)多次投币加 锁开 锁投币 / 开锁通过 / 加锁初始状态 / 加锁状态机实例第10页/共49页第十页,共50页。 无论对连续系统还是离散系统,状态概念(ginin)无所不在。F
6、SM 提供了一种描述和控制应用逻辑的非常强大的方法,具有规则简单、可读性和可验证性强等特点。 FSM 也是个不错的工具。很多复杂的逻辑都可以(ky)用一张图表来表述。 对一个复杂离散系统而言, 使用 FSM 方案几乎无所不能。FSM 在通信协议、图形界面控制和其他(qt)很多工程应用中均有其足迹。 第11页/共49页第十一页,共50页。 明确对象要求,确定输入和输出集合,合 理分配(fnpi)状态。 确定状态迁移方向和迁移触发条件,确定 合乎(hh)要求的输出集合。 充分预计(yj)各种异常情况,确定异常处理策 略及出口。 按照实际需求,制定合理的诊断模式。 完成系统综合。 系统评价,设计验证
7、。 第12页/共49页第十二页,共50页。 VHDL综合(zngh)器易于优化 易构成(guchng)性能良好的时序逻辑模块 结构(jigu)模式简单、层次分明、易读易懂、易排错 运行模式类似于CPU,易于进行顺序控制 利用同步时序和全局时钟线可实现高速FSM 高可靠性,非法状态易控制 第13页/共49页第十三页,共50页。8.1.3 一般有限(yuxin)状态机的设计8.1 一般(ybn)有限状态机的设计1. 说明(shumng)部分2. 主控时序进程com b_outputsstate_inputsresetclkF S M :s_m achineC O Mnext_statecurren
8、t_stateP R O C E S SR E GP R O C E S S图7-1 一般状态机结构框图工作示意图ARCHITECTURE .IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; . 第14页/共49页第十四页,共50页。3. 主控组合(zh)进程8.1.3 一般有限(yuxin)状态机的设计 控组合进程的任务是根据外部输入的控制信号(包括来自(li z)状态机外部的信号和来自(li z)状态机内部其它非主控的组合或时序进程的信号),或(和)当前状态的状态值确定下一状态(next_s
9、tate)的取向,即next_state的取值内容,以及确定对外输出或对内部其它组合或时序进程输出控制信号的内容。第15页/共49页第十五页,共50页。4. 辅助(fzh)进程【例8-1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY s_machine IS PORT ( clk,reset : IN STD_LOGIC; state_inputs : IN STD_LOGIC_VECTOR (0 TO 1); comb_outputs : OUT INTEGER RANGE 0 TO 15 );END s_machine;ARCHITECTU
10、RE behv OF s_machine IS TYPE FSM_ST IS (s0, s1, s2, s3); -数据类型定义,状态符号化 SIGNAL current_state, next_state: FSM_ST;-现态和次态定义为新的数据类型BEGIN REG: PROCESS (reset,clk) BEGIN IF reset = 1 THEN current_state = s0; -检测(jin c)异步复位 ELSIF clk=1 AND clkEVENT THEN current_state comb_outputs= 5; IF state_inputs = 00 T
11、HEN next_state=s0; ELSE next_state comb_outputs= 8; IF state_inputs = 00 THEN next_state=s1; ELSE next_state comb_outputs= 12; IF state_inputs = 11 THEN next_state = s0; ELSE next_state comb_outputs = 14; IF state_inputs = 11 THEN next_state = s3; ELSE next_state = s0; END IF; END case; END PROCESS;
12、 END behv;接上页第17页/共49页第十七页,共50页。图8-2 例8-1状态机的工作(gngzu)时序图8.1.3 一般(ybn)有限状态机的设计4. 辅助(fzh)进程第18页/共49页第十八页,共50页。例8-1 的状态图第19页/共49页第十九页,共50页。8.2 Moore型有限(yuxin)状态机设计ADC 0809工作(gngzu)时序8.2.1 三进程(jnchng)有限状态机第20页/共49页第二十页,共50页。ADC0809引脚图与接口(ji ku)电路第21页/共49页第二十一页,共50页。IN7IN0模拟量输入通道ALE地址锁存允许(ynx)信号。对应ALE上跳
13、沿,A、B、C地址状态送入地址锁存器中。START转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。本信号有时简写为ST.A、B、C地址线。通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。其地址状态与通道对应关系见表9-1。CLK时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号EOC转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断
14、请求信号使用。D7D0数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高OE输出允许(ynx)信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。Vcc+5V电源。Vref参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V,Vref(-)=-5V).ADC0809 信号(xnho)的引脚第22页/共49页第二十二页,共50页。8.2 Moore多进程(jnchng)有限状态机控制(kngzh)ADC0809采样状态图第23页/共49页第二十三
15、页,共50页。8.2.1 三进程(jnchng)有限状态机图8-7 采样状态机结构(jigu)框图第24页/共49页第二十四页,共50页。【例8-2】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADCINT ISPORT(D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -来自0809转换好的8位数据 CLK : IN STD_LOGIC; -状态(zhungti)机工作时钟 EOC : IN STD_LOGIC; -转换状态(zhungti)指示,低电平表示正在转换 ALE : OUT STD_LOGIC; -8个模
16、拟信号通道地址锁存信号 START : OUT STD_LOGIC; -转换开始信号 OE : OUT STD_LOGIC; -数据输出3态控制信号 ADDA : OUT STD_LOGIC; -信号通道最低位控制信号 LOCK0 : OUT STD_LOGIC; -观察数据锁存时钟 Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位数据输出END ADCINT;8.2.1 三进程(jnchng)有限状态机第25页/共49页第二十五页,共50页。【例8-2】 ARCHITECTURE behav OF ADCINT ISTYPE states IS (st0,
17、st1, st2, st3,st4) ; -定义各状态子类型SIGNAL current_state, next_state: states :=st0 ;SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL LOCK : STD_LOGIC; - 转换后数据输出锁存时钟信号(xnho)BEGINADDA = 1;-当ADDA=0,模拟信号(xnho)进入通道IN0;当ADDA=1,则进入通道IN1Q = REGL; LOCK0 ALE=0;START=0;LOCK=0;OE=0;next_state ALE=1;START=1;LOCK=0;OE
18、=0;next_state ALE=0;START=0;LOCK=0;OE=0;IF (EOC=1) THEN next_state = st3; -EOC=1表明转换结束ELSE next_state ALE=0;START=0;LOCK=0;OE=1;next_state ALE=0;START=0;LOCK=1;OE=1; next_state next_state = st0;END CASE ;END PROCESS COM ;接下页接上页第27页/共49页第二十七页,共50页。REG: PROCESS (CLK)BEGINIF (CLKEVENT AND CLK=1) THEN c
19、urrent_state=next_state; END IF;END PROCESS REG ;- 由信号(xnho)current_state将当前状态值带出此进程:REGLATCH1: PROCESS (LOCK) - 此进程中,在LOCK的上升沿,将转换好的数据锁入BEGINIF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF;END PROCESS LATCH1 ;END behav;接上页第28页/共49页第二十八页,共50页。7.2.1 三进程(jnchng)有限状态机图8-8 ADC0809 采样(ci yn)状态机工作时序第29页/共4
20、9页第二十九页,共50页。7.2.2 单进程(jnchng)Moore型有限状态机【例8-4】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MOORE1 IS PORT (DATAIN :IN STD_LOGIC_VECTOR(1 DOWNTO 0); CLK,RST : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END MOORE1;ARCHITECTURE behav OF MOORE1 IS TYPE ST_TYPE IS (ST0, ST1, ST2, ST3,ST4); SI
21、GNAL C_ST : ST_TYPE ; BEGIN PROCESS(CLK,RST) BEGIN IF RST =1 THEN C_ST = ST0 ; Q IF DATAIN =10 THEN C_ST = ST1 ; ELSE C_ST = ST0 ; END IF; Q IF DATAIN =11 THEN C_ST = ST2 ; ELSE C_ST = ST1 ;END IF; Q IF DATAIN =01 THEN C_ST = ST3 ; ELSE C_ST = ST0 ;END IF; Q IF DATAIN =00 THEN C_ST = ST4 ; ELSE C_ST
22、 = ST2 ;END IF; Q IF DATAIN =11 THEN C_ST = ST0 ; ELSE C_ST = ST3 ;END IF; Q C_ST = ST0; END CASE; END IF; END PROCESS;END behav;接上页第31页/共49页第三十一页,共50页。图8-9 例8-4状态机综合(zngh)后的RTL电路模块图8.2.2 单进程(jnchng)Moore型有限状态机第32页/共49页第三十二页,共50页。8.2.2 单进程(jnchng)Moore型有限状态机图8-10 例8-4单进程状态机工作(gngzu)时序第33页/共49页第三十三页,
23、共50页。7.2.2 单进程(jnchng)Moore型有限状态机图8-11 对应(duyng)于例8-4的2进程状态机工作时序图第34页/共49页第三十四页,共50页。7.3 Mealy型有限(yuxin)状态机的设计【例8-5】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY1 ISPORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);END MEALY1;ARCHITECTURE behav OF MEALY1 IS TYPE
24、 states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; BEGIN COMREG : PROCESS(CLK,RESET) BEGIN -决定(judng)转换状态的进程 IF RESET =1 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX STX IF DATAIN = 1 THEN Q = 10000 ; ELSE Q IF DA
25、TAIN = 0 THEN Q = 10111 ; ELSE Q IF DATAIN = 1 THEN Q = 10101 ; ELSE Q IF DATAIN = 0 THEN Q = 11011 ; ELSE Q IF DATAIN = 1 THEN Q = 11101 ; ELSE Q Q=00000 ; END CASE ;END PROCESS COM1 ;END behav;接上页图8-10 例8-5状态机工作(gngzu)时序图第37页/共49页第三十七页,共50页。【例8-6】 MEALY2 LIBRARY IEEE; -MEALY FSMUSE IEEE.STD_LOGIC_
26、1164.ALL;ENTITY MEALY2 IS PORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);END MEALY2;ARCHITECTURE behav OF MEALY2 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; SIGNAL Q1 : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN COMREG : PROCESS(CLK,RESET) -决定(judng)转换状态
27、的进程 BEGIN IF RESET =1 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX STX IF DATAIN = 1 THEN Q2 := 10000 ; ELSE Q2 := 01010 ; END IF ; WHEN st1 = IF DATAIN = 0 THEN Q2 := 10111 ; ELSE Q2:=10100 ; END IF ; WHEN st2 = IF DATAI
28、N = 1 THEN Q2 := 10101 ; ELSE Q2:=10011 ; END IF ; WHEN st3= IF DATAIN = 0 THEN Q2 := 11011 ; ELSE Q2:=01001 ; END IF ; WHEN st4= IF DATAIN = 1 THEN Q2 := 11101 ; ELSE Q2:=01101 ; END IF ; WHEN OTHERS = Q2:=00000 ; END CASE ; 接下页第39页/共49页第三十九页,共50页。IF CLKEVENT AND CLK = 1 THEN Q1=Q2; END IF; END PROCESS COM1 ; Q next_state next_state IF (STATUS=1) THEN next_state = st2; ELSE next_state next_state next_sta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工现场临时用电电缆截面计算方法选择原则制定
- 爬虫爬取合规性课程设计
- 全科医学科家庭医生实践指南
- 道路设计毕业
- 麻醉科椎管内麻醉穿刺操作规范
- 桂花雨课程作业设计
- 暖气调节教学设计
- 感谢信息设计
- 品牌LOGO设计理念解析
- 公园植物科普课件
- 2026年高考新高考二卷语文作文试题(附答案)
- 西门子S7-1200PLC教程 课件 第12章高速计数器
- 2026重庆机场集团招聘面试题及答案
- 2025年淮滨县司法局公开招聘合同制社区矫正社会工作者12人实施备考题库及参考答案详解
- 2025年及未来5年市场数据中国破乳剂行业市场调查研究及投资前景预测报告
- GB/T 31897.201-2025灯具性能第2-1部分:特殊要求LED灯具
- 中西医结合康复治疗技术
- 威海环翠文旅发展集团有限公司招聘笔试题库2025
- 中药材安全与监控题库及答案解析
- 军队建设工程质量管理条例
- 市政管网施工安全培训课件
评论
0/150
提交评论