第八章 有限状态机的VHDL设计
第八章 有限状态机的VHDL设计
主要内容 ·有限状态机的基本概念 ·一般有限状态机的设计 摩尔状态机设计 ·米立状态机设计
主要内容 • 有限状态机的基本概念 • 一般有限状态机的设计 • 摩尔状态机设计 • 米立状态机设计
8.1有限状态机的基本概念 8,1,1有限状态机的基本结构和功能 有限状态机(Finite State Machine,简称FSM)是数字逻辑电路 以及数字系统的重要组成部分,尤其应用于数字系统核心部件的设计, 以实现高效率高可靠性的逻辑控制。 当前状态 CIk 时序逻辑 下一个状态 组合逻辑 输出 Reset 热爽 图8.1有限状态机的基本结构图 有限状态机实现了以下两个基本功能: ·根据当前状态和输入条件决定状态机的内部状态转换。 ·根据当前状态和输入条件确定产生输出信号序列
8.1有限状态机的基本概念 8.1.1 有限状态机的基本结构和功能 有限状态机(Finite State Machine,简称FSM)是数字逻辑电路 以及数字系统的重要组成部分,尤其应用于数字系统核心部件的设计, 以实现高效率高可靠性的逻辑控制。 有限状态机实现了以下两个基本功能: • 根据当前状态和输入条件决定状态机的内部状态转换。 • 根据当前状态和输入条件确定产生输出信号序列。 时序逻辑 组合逻辑 Reset Clk 当前状态 下一个状态 输出 状态 输入 图8.1 有限状态机的基本结构图
8.1有限状态机的基本概念(续) 8,1,2状态机的状态编码 有限状态机设计是基于状态描述的,因此首先必须对系统中的每 一个工作状态有一个合理的表达。对于设计者而言,为了表达简捷方 便通常使用符号化状态机。 ·二进制编码方案:是用N位二进制数,表示M个工作状态,当然必须 满足2N大于等于M。 ·一位热码编码方案:用N位二进制数表示N个状态,每一位编码对应 个触发器,状态机中的每个状态都由其中一个触发器的状态来表示。 8,1.3有限状态机的技术优势 ·设计方案相对固定,结构模式简单,可定义符号化枚举类型的状态。 ·状态机的VHDL描述层次分明,结构清晰,易读易懂。 ·基于有限状态机技术设计的控制器其工作速度大大优于CPU。 ·基于有限状态机技术设计的控制器其可靠性也优于CPU
8.1有限状态机的基本概念(续) 8.1.2状态机的状态编码 有限状态机设计是基于状态描述的,因此首先必须对系统中的每 一个工作状态有一个合理的表达。对于设计者而言,为了表达简捷方 便通常使用符号化状态机。 • 二进制编码方案:是用N位二进制数,表示M个工作状态,当然必须 满足2 N大于等于M。 • 一位热码编码方案:用N位二进制数表示N个状态,每一位编码对应 一个触发器,状态机中的每个状态都由其中一个触发器的状态来表示。 8.1.3有限状态机的技术优势 • 设计方案相对固定,结构模式简单,可定义符号化枚举类型的状态。 • 状态机的VHDL描述层次分明,结构清晰,易读易懂。 • 基于有限状态机技术设计的控制器其工作速度大大优于CPU。 • 基于有限状态机技术设计的控制器其可靠性也优于CPU
8.2一般有限状态机的设计 8,2,1一般有限状态机的VDL组成 。说明部分:主要是设计者使用YPE语句定义新的数据类型,如: TYPE states IS (sto,st1,st2,st3,st4,st5); SIGNAL present_state,next_state:states; ·主控时序逻辑部分:任务是负责状态机运转和在外部时钟驱动下实现 内部状态转换的进程。时序进程的实质是一组触发器,因此,该进程 中往往也包括=些清零或置位的输入控制信号,如Reset信号。 ·主控组合逻辑部分:任务是根据状态机外部输入的状态控制信号(包 括来自外部的和状态机内部的非进程的信号)和当前的状态值 current_state来确定下一状态next_statel的取值内容,以及对外部或 对内部其他进程输出控制信号的内容。 ·辅助逻辑部分:辅助逻辑部分主要是用于配合状态机的主控组合逻辑 和主控时序逻辑进行工作,以完善和提高系统的性能
8.2 一般有限状态机的设计 8.2.1 一般有限状态机的VHDL组成 • 说明部分:主要是设计者使用TYPE语句定义新的数据类型,如: TYPE states IS (st0, st1, st2, st3, st4, st5); SIGNAL present_state, next_state: states; • 主控时序逻辑部分:任务是负责状态机运转和在外部时钟驱动下实现 内部状态转换的进程。时序进程的实质是一组触发器,因此,该进程 中往往也包括一些清零或置位的输入控制信号,如Reset信号。 • 主控组合逻辑部分:任务是根据状态机外部输入的状态控制信号(包 括来自外部的和状态机内部的非进程的信号)和当前的状态值 current_state来确定下一状态next_state的取值内容,以及对外部或 对内部其他进程输出控制信号的内容。 • 辅助逻辑部分:辅助逻辑部分主要是用于配合状态机的主控组合逻辑 和主控时序逻辑进行工作,以完善和提高系统的性能