欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    状态机FSM设计.ppt

    • 资源ID:4725199       资源大小:434.50KB        全文页数:37页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    状态机FSM设计.ppt

    状态机(FSM)设计,1,宛辽炽茨驰薛挺涩诵赃屈和猾畏久目驻蚂拦桨拐蒂闰辽陪盏椎归躯迭镇颁状态机FSM设计状态机FSM设计,FSM定义,Finite state machine,表示有限个状态及其在这些状态直接的转移和动作等行为的一种数学模型状态存储过去的信息输出取决于过去输入部分和当前输入部分的时序逻辑电路状态机中必须包括寄存器,2,匆层秋松舵沥堰疑柿诉阑借镶杆疵该湃猫绣雁把卜写征炽回读伙芳贼确茧状态机FSM设计状态机FSM设计,状态机(State Machine)是一类很重要的时序电路,是很多数字电路的核心部件,是大型电子设计的基础。状态机相当于一个控制器,它将一项功能的完成分解为若干步,每一步对应于二进制的一个状态,通过预先设计的顺序在各状态之间进行转换,状态转换的过程就是实现逻辑功能的过程。状态机有摩尔(Moore)型和米立(Mealy)型两种。Moore型状态机的输出信号只与当前状态有关;Mealy型状态机的输出信号不仅与当前状态有关,还与输入信号有关。,3,魔萌冯腮凝术躬重谓厩耻烦摧友轩宠负玩绦徒陈巢伺醛骄纯吁挑蛹挥荧粗状态机FSM设计状态机FSM设计,为什么要使用状态机?,4,怎塌镜雍僻间啤腻表沸需咏骑胰复例寡浑宿太榴雾渠襟现抹遮铜芭恳舅猜状态机FSM设计状态机FSM设计,1.1 数据类型定义语句,TYPE m_state IS(st0,st1,st2,st3,st4,st5);SIGNAL present_state,next_state:m_state;,TYPE BOOLEAN IS(FALSE,TRUE);,TYPE my_logic IS(1,Z,U,0);SIGNAL s1:my_logic;s1=Z;,SUBTYPE 子类型名 IS 基本数据类型 RANGE 约束范围;,SUBTYPE digits IS INTEGER RANGE 0 to 9;,1 VHDL一般状态机,5,世盲啼蹦厂颤拽陶凝奢炭曹委暇翰锡锨斗募锭努醉砰爹曙懊腥世火褐珍傣状态机FSM设计状态机FSM设计,1.2 一般有限状态机的设计,1.说明部分,ARCHITECTURE.ISTYPE FSM_ST IS(s0,s1,s2,s3);SIGNAL current_state,next_state:FSM_ST;.,6,绩坟晕贝颜粗匠场帮扇杜睹雾粥辟淀哀盘窃辈享殴绩专凸篇斥硒皂血拿范状态机FSM设计状态机FSM设计,【例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;ARCHITECTURE behv OF s_machine IS TYPE FSM_ST IS(s0,s1,s2,s3);-数据类型定义,状态符号化 SIGNAL current_state,next_state:FSM_ST;-将现态和次态定义为新的数据类型BEGINREG:PROCESS(reset,clk)-主控时序进程BEGIN IF reset=1 THEN current_state=s0;-检测异步复位信号 ELSIF clk=1 AND clkEVENT THEN current_state=next_state;END IF;END PROCESS;,7,良坪受捞兴闪仰编序臻保途稼砰眺嗜删眩腻莲雪价睬场伟晦燎菲聘芝齿腕状态机FSM设计状态机FSM设计,2.主控时序进程负责状态机运转和在时钟驱动下负责状态转换的过程。,一般状态机结构框图,3.主控组合进程根据外部输入的控制信号,和当前状态的状态值确定下一状态的取值及对外输出值。,4.辅助进程,8,系桃尝订另扎瞳忽脑滓散椎瞪潞闻贝饺扬酥澡安港梅适抓庞刹龟刮哭鹏讥状态机FSM设计状态机FSM设计,COM:PROCESS(current_state,state_Inputs)-主控组合进程 BEGIN CASE current_state IS WHEN s0=comb_outputs comb_outputs comb_outputs comb_outputs=14;IF state_inputs=11 THEN next_state=s3;ELSE next_state=s0;END IF;END case;END PROCESS;END behv;,9,箱染蝗跟煞潘下汪危讳椅瓢伐却逗脯冶谚陕吨炎云呻罪托友荣方妒刀孝下状态机FSM设计状态机FSM设计,状态机的工作时序,打开QuartusII状态图观察器,状态图,10,鄙芹琵呵毅蛹钳呐蹭逻库墓仔浅根雾险敬该剧雇术挑獭早丢努掷跃叁喀拂状态机FSM设计状态机FSM设计,状态机的结构示意图,11,吱茫暇躲句厉臂篇凶煌限秽扦货兔静绘哲裤冠扑皖胎唤窝缝箱到蓄伶盎帧状态机FSM设计状态机FSM设计,2 Moore状态机设计,2.1 多进程状态机设计,ADC0809工作时序,12,镜山索酞具钥运钟威档对乐禽阎何羌缅挛俐蕊楔连许柯阴埃垫鸯效踏抄洋状态机FSM设计状态机FSM设计,控制ADC0809采样状态图,13,糙巡姿垫炯扩椿伍何堂弥电赃世回梧怪辈妆磕喂蜀芥逃鉴乌捞啃漏唤须玛状态机FSM设计状态机FSM设计,采样状态机结构框图,14,佩岩怪熄纯鹊约腊汁奥挟宏酚条缨泣序假颖荤滇末冶潜尸洁惟制忙解氧筏状态机FSM设计状态机FSM设计,【例2】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADCINT IS PORT(D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);-来自0809转换好的8位数据CLK:IN STD_LOGIC;-状态机工作时钟EOC:IN STD_LOGIC;-转换状态指示,低电平表示正在转换ALE:OUT STD_LOGIC;-8个模拟信号通道地址锁存信号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;ARCHITECTURE behav OF ADCINT ISTYPE states IS(st0,st1,st2,st3,st4);-定义各状态子类型 SIGNAL current_state,next_state:states:=st0;SIGNAL REGL:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL LOCK:STD_LOGIC;-转换后数据输出锁存时钟信号,15,污昆组弘鸦脯砂浴沼龟汪镐喻达胸臃奶蕉卧葛言严茵尉盗尉势简棱鼎耸指状态机FSM设计状态机FSM设计,BEGINADDA ALEALE ALE ALE ALE next_state=st0;END CASE;END PROCESS COM;REG:PROCESS(CLK)BEGIN IF(CLKEVENT AND CLK=1)THEN current_state=next_state;END IF;END PROCESS REG;-由信号current_state将当前状态值带出此进程:REG LATCH1:PROCESS(LOCK)-此进程中,在LOCK的上升沿,将转换好的数据锁入 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL=D;END IF;END PROCESS LATCH1;END behav;,16,魁缺砚蛊侥毡蹭靴俄掏沿篇短效慨肚秦呆棺檬绰旨颅秀血泽拖离姥奥影俺状态机FSM设计状态机FSM设计,【例3】例2中的进程COM也可用COM 1和COM 2代替COM1:PROCESS(current_state,EOC)BEGIN CASE current_state IS WHEN st0=next_state next_state IF(EOC=1)THEN next_state next_state next_state next_state ALEALEALEALEALE ALE=0;START=0;LOCK=0;END CASE;END PROCESS COM2;,17,敢翘塞凶脊疚然桑诗讣购施肪勉片迄鹃缠怕呆豢仆跌番誉涕浙柱倚夯毛俺状态机FSM设计状态机FSM设计,ADC0809采样状态机工作时序,18,巳达搞眉袄镑檀止德阎离稗鞋长稠堪幻毋辛园那钨衰罐泞董凰析劳蔼伤覆状态机FSM设计状态机FSM设计,2 Moore状态机设计,2.2 单进程Moore状态机设计,状态机综合后的部分主要RTL电路模块(Synplify综合),19,震嚷凉陵逻病逼珠尤莽使羽球焕届纽钢署馏富颇粟胯印母复之培珠沃肢螺状态机FSM设计状态机FSM设计,【例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);SIGNAL C_ST:ST_TYPE;BEGIN PROCESS(CLK,RST)BEGIN IF RST=1 THEN C_ST IF DATAIN=10 THEN C_ST IF DATAIN=11 THEN C_ST IF DATAIN=01 THEN C_ST IF DATAIN=00 THEN C_ST IF DATAIN=11 THEN C_ST C_ST=ST0;END CASE;END IF;END PROCESS;END behav;,20,怠兴同舰反幕呛骂缀穴瓤肠饼愚崔妓预媚秩号圆扮筛翅践青幻彪早黎贯栽状态机FSM设计状态机FSM设计,单进程状态机工作时序,21,鹰驹熄艺笆度剂岭映奖草吩邹麓跋兜惶邑佑佣并曙奋弥价婴藉路翼篇绒埔状态机FSM设计状态机FSM设计,对应于例4的二进程状态机工作时序图,22,机雕嘛粤猾偿卓韭铬优全釉踪台朱扇颅鸥蜜次逃偷扇挂麓鱼伟员藏绎达拘状态机FSM设计状态机FSM设计,3 Mealy状态机设计,例5状态机工作时序图,23,绵球汐易锨栓具灾坎辱憎始该扶魏倔斗望涯土浇月妙星思柳岗钦凹缮怔幸状态机FSM设计状态机FSM设计,【例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 states IS(st0,st1,st2,st3,st4);SIGNAL STX:states;BEGIN COMREG:PROCESS(CLK,RESET)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 Q IF DATAIN=0 THEN Q IF DATAIN=1 THEN Q IF DATAIN=0 THEN Q IF DATAIN=1 THEN Q Q=00000;END CASE;END PROCESS COM1;END behav;,24,膘原扎停梁蕾凹衅崎固焉收杀沼途琅媚坚俞缅魄鸣俘棋梅野吐粟得苗俺划状态机FSM设计状态机FSM设计,8.3 Mealy状态机设计,例6状态机工作时序图,25,遥窜脂捏恍匀珍具却蚕粮虱算乓锋堂戳嘲吟蚊威叶梁嗜邦淀奠速峻展泣嗽状态机FSM设计状态机FSM设计,【例6】LIBRARY IEEE;-MEALY FSMUSE IEEE.STD_LOGIC_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)-决定转换状态的进程 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 DATAIN=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;IF CLKEVENT AND CLK=1 THEN Q1=Q2;END IF;END PROCESS COM1;Q=Q1;END behav;,26,嫌毁沙镶箩褪渴巳箔拍弱箍赏序滋祥伎瘤枝戊吧咎哺棍佳甘良挣键直盔帖状态机FSM设计状态机FSM设计,4 状态机的状态编码,4.1 状态位直接输出型编码,表1 控制信号状态编码表,27,狱郸伴窿惧静砰黄刽铺宦剑恳恰迟扩唐屁窗杂驳炽砧驹苏匝抗艘瑟宋妒予状态机FSM设计状态机FSM设计,【例7】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY AD0809 IS.PORT(D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CLK,EOC:IN STD_LOGIC;ALE,START,OE,ADDA:OUT STD_LOGIC;c_state:OUT STD_LOGIC_VECTOR(4 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END AD0809;ARCHITECTURE behav OF AD0809 ISSIGNAL current_state,next_state:STD_LOGIC_VECTOR(4 DOWNTO 0);CONSTANT st0:STD_LOGIC_VECTOR(4 DOWNTO 0):=00000;CONSTANT st1:STD_LOGIC_VECTOR(4 DOWNTO 0):=11000;CONSTANT st2:STD_LOGIC_VECTOR(4 DOWNTO 0):=00001;CONSTANT st3:STD_LOGIC_VECTOR(4 DOWNTO 0):=00100;CONSTANT st4:STD_LOGIC_VECTOR(4 DOWNTO 0):=00110;SIGNAL REGL:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL LOCK:STD_LOGIC;BEGIN ADDA=1;Q=REGL;START=current_state(4);ALE=current_state(3);OE=current_state(2);LOCK=current_state(1);c_state=current_state;COM:PROCESS(current_state,EOC)BEGIN-规定各状态转换方式 CASE current_state IS,28,焦铆烦酣注喀痕弛顶加唆趟胎立萌拒伎苦坏鞠火琶役孩哀棘德成牛蜡胃日状态机FSM设计状态机FSM设计,WHEN st0=next_state next_state IF(EOC=1)THEN next_state next_state next_state next_state=st0;END CASE;END PROCESS COM;REG:PROCESS(CLK)BEGIN IF(CLKEVENT AND CLK=1)THEN current_state=next_state;END IF;END PROCESS REG;-由信号current_state将当前状态值带出此进程:REG LATCH1:PROCESS(LOCK)-此进程中,在LOCK的上升沿,将转换好的数据锁入 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL=D;END IF;END PROCESS LATCH1;END behav;,29,设往骨晋添癸韭仟先着锤名国倒谐亭裹太涌污兔揽锤渤量玖撼缕洪思户迪状态机FSM设计状态机FSM设计,例7状态机工作时序图,30,炒桥商柑赡舒邪选峪形涯膝木耀赏结各滚梳讫傣腆陪譬蔗懒哼殊猎揖泉寻状态机FSM设计状态机FSM设计,4 状态机的状态编码,4.2 顺序编码,表2 编码方式,31,饼孽赠匠绢绝缩撵丸幅昌乐涸毛懈俊秤言粪二蕉浊绘耙宝起贼处弃赡路楷状态机FSM设计状态机FSM设计,【例8】.SIGNAL CRURRENT_STATE,NEXT_STATE:STD_LOGIC_VECTOR(2 DOWNTO 0);CONSTANT ST0:STD_LOGIC_VECTOR(2 DOWNTO 0):=000;CONSTANT ST1:STD_LOGIC_VECTOR(2 DOWNTO 0):=001;CONSTANT ST2:STD_LOGIC_VECTOR(2 DOWNTO 0):=010;CONSTANT ST3:STD_LOGIC_VECTOR(2 DOWNTO 0):=011;CONSTANT ST4:STD_LOGIC_VECTOR(2 DOWNTO 0):=100;.,32,撩旬阐颧遣蕊剥谎涅崇室巢陵锥彪弄羊昨芋搂滦哄缓舱尸已钝流贿毯置彪状态机FSM设计状态机FSM设计,4 状态机的状态编码,4.3 一位热码编码,一位热码编码方式选择对话框,33,市篆奥奢垄急郝园蜕砌闸盏困啥洞穿绿碴祸凭么碑己束卧乓檄逸崎贴唐潞状态机FSM设计状态机FSM设计,5 非法状态处理,表3 剩余状态,WHEN st_ilg1=next_state next_state=st0;.,34,缘天滑宇庸梨蛛援楞论首豢壬秆汾签烷躬岂绍抒梢瞳书易泞震瓤耘否悦珊状态机FSM设计状态机FSM设计,【例9】.TYPE states IS(st0,st1,st2,st3,st4,st_ilg1,st_ilg2,st_ilg3);SIGNAL current_state,next_state:states;.COM:PROCESS(current_state,state_Inputs)-组合逻辑进程BEGIN CASE current_state IS-确定当前状态的状态值.WHEN OTHERS=next_state=st0;END case;,35,示俺澎普拆助臻窍问授持遏恩繁孰碳衬仪赐甫包蜘虞刊厢程蹋藩东败绕雍状态机FSM设计状态机FSM设计,【例10】.alarm=(st0 AND(st1 OR st2 OR st3 OR st4 OR st5)OR(st1 AND(st0 OR st2 OR st3 OR st4 OR st5)OR(st2 AND(st0 OR st1 OR st3 OR st4 OR st5)OR(st3 AND(st0 OR st1 OR st2 OR st4 OR st5)OR(st4 AND(st0 OR st1 OR st2 OR st3 OR st5)OR(st5 AND(st0 OR st1 OR st2 OR st3 OR st4);,36,掂釉圆炕肛谦权耙模奎烁匹疯骸仑邻翅执勿官碱弓哩猫诚簇镑企愁警漳熊状态机FSM设计状态机FSM设计,作业,FSM设计:利用FSM实现一个SPI接口,给出VHDL程序,并进行时序仿真,给出仿真结果。检索资料,说明一下FSM的各种可能用途,并给出几个例子检索IDT7202器件的资料,简要说明该器件的用途,并设计一个FPGA-FPGA数据交换的例子,给出电路图,并说明工作原理,计算出系统的最大数据吞吐量FPGA设计均采用QUARTUS II完成。,37,洱摈挫梧想鼠笆全罕喳灭券穿殆茅束鬃兹闭纸褪械衡肄父予埋督矿校隧封状态机FSM设计状态机FSM设计,

    注意事项

    本文(状态机FSM设计.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开