有限状态机初步-2014.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
有限状态机初步-2014

VHDL有限状态机 FSM初步 状态机 概念: 是一类十分重要的时序电路 许多数字电路的核心部件 结构: 组合逻辑部分(状态译码器和输出译码器) 时序逻辑部分(寄存器) 状态机的结构 状态机-各部分的功能 状态译码器 确定状态机的下一个状态 输出译码器 确定状态机输出 状态寄存器 存储状态机的内部状态 状态机的基本操作 状态的转换: 下一个状态由译码器根据当前状态和输入条件决定。 输出信号的产生: 输出信号由译码器根据当前状态和输入条件决定。 状态机的时序种类 同步时序状态机: 由时钟信号触发状态的转换和信号的输出 异步时序状态机: 状态的转移和输出不与时钟信号同步 注意:可综合的状态机设计要求使用同步状态机! 状态机的基本组成 主控时序进程 主控组合进程 状态说明部分 状态机的类型 状态机的表达方式 状态表 状态图 状态图 状态机的本质是对具有逻辑顺序或时序规律事件的一种描述方法。 状态类型定义语句 TYPE 用户自定义数据类型: 数据类型名: 由设计者自定; 数据类型定义: 数组型数据类型或枚举型数据类型 状态类型定义语句 TYPE TYPE st1 IS ARRAY (0 TO 15) OF STD_LOGIC; TYPE week IS (sun,mon,tue,wed, thu,fri,sat); 状态机的说明部分 使用 TYPE 语句定义一个新的数据类型,一般为枚举型,其元素都用状态机的状态名来定义。说明部分一般放在ARCHITECTURE 和 BEGIN之间。例如: 设计1:交通灯控制器 交通灯控制器,设计要求: 红灯45秒,黄灯5秒,绿灯40秒 A和B路,每路都有红、黄、绿灯 A路和B路灯的状态是: (1)A红,B绿(持续时间40秒) (2)A红,B黄(持续时间5秒) (3)A绿,B红(持续时间40秒) (4)A黄,B红(持续时间5秒) library ieee; use ieee.std_logic_1164.all; entity traffic is port(clk:in std_logic; z:out std_logic_vector(5 downto 0)); --ra,ya,ga,gb,yb,rb end traffic; architecture one of traffic is type state_type is ( s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,10,s11,s12,s13,s14,s15,s16,s17,s18,s19, s20,s21,s22,s23,s24,s25,s26,s27,s28,s29,s30,s31,s32,s33,s34,s35,s36,s37, s38,s39,s40,s41,s42,s43,s44,s45,s46,s47,s48,s49,s50,s51,s52,s53,s54,s55, s56,s57,s58,s59,s60,s61,s62,s63,s64,s65,s66,s67,s68,s69,s70,s71,s72,s73, s74,s75,s76,s77,s78,s79,s80,s81,s82,s83,s84,s85,s86,s87,s88,s89); signal state:state_type; begin process(clk) begin 分 频 器 1Hz PROCESS(Clockin) BEGIN IF RISING_EDGE(Clockin) THEN IF Counter1 THEN counter=0; Temp1=Not Temp1; ELSE Counter=Counter+1; END IF; END IF; IF falling_edge(clockin) THEN IF Counter2 THEN Temp2=NOT Temp2; END IF; END IF; Clk=Tem

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档