- 1、本文档共60页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA技术与应用讲义_第8章_有限状态机设计
第8章 有限状态机设计EDA技术与应用 课程讲义 下一章 本章内容 什么是有限状态机? FSM的应用 使用FSM设计电路有何好处? VHDL代码FSM的组成、分类 单进程状态机 多进程状态机 Moore状态机 Mealy状态机 状态编码的选择 状态机应用实例:SDRAM控制器 什么是有限状态机? 将对象(电路)的工作过程表达为: 各种不同状态 在 事件控制下 的变迁过程 这种描述方法称为有限状态机(FSM) 有限状态机:实例 上图是一个接受者 FSM 模型,用来分析单词“nice”。该分析器只接受字符输入,包含6种状态,状态切换由输入的字符驱动 有限状态机:要素 FSM包含 一组状态集(states)、 一个起始状态(start state)、 一组输入符号集(input alphabet)、 一组输出符号集(output alphabet ) 一个映射输入符号和当前状态到下一状态的转换函数(transition function) 有限状态机:表达 一般结构 状态机的形式化表达 状态转移图 状态转移表 状态机的一般结构 8状态的Mealy状态机 16状态的Moore状态机 PPP协议状态转移表 IEEE802协议状态机 FSM的应用 通信协议描述 例如:ITU建议,IEEE标准,RFC建议 应用客体的过程描述 VC等软件设计中也常使用FSM 硬件电路的HDL语言表达 本章所介绍的内容 使用FSM设计电路有何好处? 可以将复杂的过程简单化 可以完成复杂的过程表达 表达严谨,无二义性 状态机实现代码很规范,实现容易 容易构成同步时序模块 适合与高速电路设计 VHDL代码FSM的组成、分类 组成 说明部分 主控时序进程 主控组合进程 辅助进程 举 例 分类 Mealy状态机 Moore状态机 单进程状态机 多进程状态机 符号化状态机 确定状态编码状态机 顺序编码 一位热 其他编码状态机 说明部分 说明状态的数目和取值,例如: ARCHITECTURE ...IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; 主控时序进程 负责状态机运转,在时钟驱动下完成状态转换 必须由 clk 信号驱动 将次态的状态量 送入 现态的状态量 current_state = next_state 主控组合进程 根据外部输入的控制信号 (包括来自状态机外部的信号和来自状态机内部其它非主控的组合或时序进程的信号), 或(和)当前状态的状态值 确定下一状态(next_state)的取向, 即next_state的取值内容, 以及确定对外输出 或 对内部其它 组合 或 时序进程 输出控制信号的内容。 辅助进程 配合状态机工作的组合或者时序进程 状态机的结构举例(一) LIBARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY s_machine IS PORT ( clk, reset : IN STD_LOGIC; state_inputs: IN STD_LOGIC_VECTOR(0 DOWNTO 1); comb_outputs:OUT INTEGER RANGE 0 TO 15 ); END ENTITY s_machine; ARCHITECTURE BEHAV OF s_machine IS TYPE FSM_ST IS ( s0, s1, s2, s3 ); SIGNAL current_state, next_state: FSM_ST; BEGIN 状态机的结构举例(续一) REG: PROCESS ( reset, clk ) IF reset = 1 THEN current_state = s0; ELSIF clk = 1 AND clkEVENT THEN current = next_state; END IF; END PROCESS; 状态机的结构举例(续二) COM: PROCESS ( current_state, state_inputs ) BEGIN CASE current_state IS WHEN s0 = comb_outputs = 5; IF state_inputs = 00 THEN next_state = s0; ELSE next_state = s1; END IF;
文档评论(0)