


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章 状态机及其VHDL设计内容提要:有限状态机(Finite State Machine,简称FSM )是一类很重要的时序电路,是许多数字系统的核心部件,也是实时系统设计中的一种数学模型,是一种重要的、易于建立的、应用比较广泛的、以描述控制特性为主的建模方法,它可以应用于从系统分析到设计的所有阶段。有限状态机的优点在于简单易用,状态间的关系清晰直观。建立有限状态机主要有两种方法:状态转移图”和状态转移表”。标准状态机通常可分为Moore和Mealy两种类型。本章主要介绍了基于 VHDL的常见有限状态机的类型、结构、功能及表达方法, 重点是如何有效地设计与实现。学习要求:了解状态机的基本结构
2、、功能和分类,掌握有限状态机的一般设计思路与方 法、状态机编码方案的恰当选取、Moore和Mealy状态机的本质区别及设计实现。关 键词:状态机(State Mach in e) , Moore , Mealy , VHDL 设计(VHDL Desig n)7.1 状态机的基本结构和功能7.2 一般状态机的 VHDL设计7.2.1 状态机的一般组成7.2.2 状态机的编码方案7.3 摩尔状态机的 VHDL设计7.4 米立状态机的 VHDL设计7.1 状态机的基本结构和功能状态机的基本结构如图 7.1所示。除了输人信号、输出信号外,状态机还包含一组寄存器记忆状态机的内部状态。状态机寄存器的下一个
3、状态及输出,不仅同输入信号有关,而且还与寄存器的当前状态有关,状态机可以认为是组合逻辑和寄存器逻辑的特殊组合。它包括两个主要部分:即组合逻辑部分和寄存器。组合逻辑部分又可分为状态译码器和输出译码器, 状态译码器确定状态机的下一个状态,即确定状态机的激励方程, 输出译码器确定状态机的输入输出,即确定状态机的输出方程。寄存器用于存储状态机的内部状态。输出状态状态寄存器图7.1状态机的基本结构状态机的基本操作有两种:1.状态机的内部状态转换。状态机经历一系列状态,下一状态由状态译码器根据当前状态和输入条件决定。2 .产生输出信号序列。输出信号由输出译码器根据当前状态和输入条件确定。用输入信号决定下一
4、状态也称为“转移”。除了转移之外,复杂的状态机还具有重复和历程功能。从一个状态转移到另一状态称为控制定序,而决定下一状态所需的逻辑称为转移函数。在产生输出的过程中, 根据是否使用输入信号可以确定状态机的类型。两种典型的状态机是米立(Mealy )状态机和摩尔(Moore )状态机。摩尔状态机的输出只是当前状态的 函数,而米立状态机的输出一般是当前状态和输入信号的函数。对于这两类状态机, 控制定序都取决于当前状态和输入信号。大多数实用的状态机都是同步的时序电路,由时钟信号触发进行状态的转换。时钟信号同所有的边沿触发的状态寄存器和输出寄存器相连,使状态的改变发生在时钟的上升或下降沿。在数字系统中那
5、些输出取决于过去的输入和当前的输入的部分都可以作为有限状态 机。有限状态机的全部“历史”都反映在当前状态上。当给FSM 个新的输入时,它就会产生一个输出。输出由当前状态和输入共同决定,同时FSM也会转移到下一个新状态,也是随着FSM的当前状态和输入而定。FSM中,其内部状态存放在寄存器中,下一状态的值由状态译码器中的一个组合逻辑一一转移函数产生,状态机的输出由另一个组合逻辑一一输出函数产生。建立有限状态机主要有两种方法:状态转移图(状态图)和状态转移表(状态表)。它们是等价的,相互之间可以转换。状态转移图如图7.2所示,图中每个椭圆表示状态机的一个状态,而箭头表示状态之间的一个转换,引起转换的
6、输入信号及当前输出表示在转换箭头上。摩尔状态机和米立状态机的表示方法不同,摩尔状态机的状态译码输出写在状态圈内, 米立状态机的状态译码输出写在箭头旁,如图7.3所示。图7.2状态转移图图7.3摩尔 和米 立状 态机如果能够写出FSM的状态转移图,就可以使用 VHDL的状态机语句对它进行描述。状态转移表 形式如表7.1所示。表中的行列出了全部可能的输入信号组合和内部状态 以及相应的次状态和输出,因此状态表规定了状态机的转换函数和输出函数。然而,状态表不适合具有大量输入的系统,因为随着输入的增加其状态数和系统的复杂性会显著增加。表7.1状态转移表现态输入次态输出So -S nIo-I mSo-S
7、nQo-Q p状态转移图、状态转移表这两种有限状态机的建立方法是等价的,都描述了同一硬件结构,它们可以相互转换,但各有优缺点,分别适合于不同场合。7.2 一般状态机的 VHDL设计状态机的一般组成用VHDL设计有限状态机方法有多种,但最一般和最常用的状态机设计通常包括说明 部分,主控时序部分,主控组合部分和辅助进程部分。1) 说明部分说明部分中使用 TYPE 语句定义新的数据类型,此数据类型为枚举型,其元素通常都 用状态机的状态名来定义。 状态变量定义为信号, 便于信息传递, 并将状态变量的数据类型 定义为含有既定状态元素的新定义的数据类型。说明部分一般放在结构体的 ARCHITECTURE
8、和 BEGIN 之间。2) 主控时序进程是指负责状态机运转和在时钟驱动正负现状态机转换的进程。 状态机随外部时钟信号以 同步方式工作,当时钟的有效跳变到来时,时序进程将代表次态的信号 next_state 中的内 容送入现态信号 current_state 中,而 next_state 中的内容完全由其他进程根据实际情况而 定,此进程中往往也包括一些清零或置位的控制信号。3) 主控组合进程根据外部输入的控制信号 (包括来自外部的和状态机内容的非主控进程的信号) 或(和) 当前状态值确定下一状态 next_state 的取值内容,以及对外或对内部其他进程输出控制信 号的内容。4) 辅助进程 用于
9、配合状态机工作的组合、时序进程或配合状态机工作的其他时序进程。 在一般状态机的设计过程中,为了能获得可综合的,高效的 VHDL 状态机描述,建议 使用枚举类数据类型来定义状态机的状态, 并使用多进程方式来描述状态机的内部逻辑。 例 如可使用两个进程来描述,个进程描述时序逻辑,包括状态寄存器的工作和寄存器状态 的输出,另一个进程描述组合逻辑,包括进程间状态值的传递逻辑以及状态转换值的输出。 必要时还可以引入第三个进程完成其它的逻辑功能。下例描述的状态机由两个主控进程构成,其中进程 REG 为主控时序进程, COM 为主 控组合进程。 例 7.1LIBRARY IEEE;ENTITY s_mach
10、ine ISPORT (clk, reset: IN STD_LOGIC;State_inputs: IN STD_LOGIC_VECTOR(0 TO 1); comb_outputs: OUT STD_LOGIC_VECTOR(0 TO 1);END ENTITY s_machine;ARCHITECTURE behv OF s_machine ISTYPE states IS (st0,st1,st2,st3);-定义 states 为枚举型数据类型SIGNAL current_state, next_state : states;BEGINREG: PROCESS (reset, clk
11、)- 时序逻辑进程BEGINIF reset=1 THEN - 异步复位 Current_state=st0;ELSIF clk=1 AND clkEVENT THEN current_statecomb_outputs = 00; - 初始状态译码输出 00 IF state_inputs=00 THEN- 根据外部的状态控制输入 00 next_state=st0;- 在下一时钟后,进程 REG 的状态将维持为 st0ELSEnext_state comb_outputs=01;- 对应状态 st1 的译码输出 01IF state_inputs=00 THEN- 根据外部的状态控制输人
12、00 next_state=st1;-在下一时钟后,进程 REG 的状态将维持为 st1ELSEnext_state comb_outputs=10;- 以下依次类推IF state_inputs=11 THENnext_state=st2;ELSEnext_statecomb_outputs=11;IF state_i nputs=11 THENn ext_state=st3;ELSEn ext_state|1-rrert stato0:3slatemachine inq cq 技 u|R&1I 飯仃mntLciLJtiLrstDir二a,0 /UM-13 1图7.5 例7.1状态机的RTL
13、图一般来说,程序的不同进程间是并行运行的,但由于敏感信号设置的不同和电路的延迟,在时序上进程间的动作是有先后的。如对上例中的状态转换行为来说,有进程REG和COM,它们的敏感信号表分别为( reset,clk )和(current_state,state_inputs),在 clk 上升沿到来时,进程 REG将首先运行,完成状态转换的赋值操作。如果外部控制信号state_inputs 不变,只有当来自进程 REG的信号current_state 改变时,进程 COM 才开 始动作,并将根据curren t_state 和state_ in puts 的值来决定下一有效时钟沿到来后,进程REG的
14、状态转换方向。这个状态机的两位组合逻辑输出comb_outputs 是对当前状态的译 码。我们可以通过这个输出值来了解状态机内部的运行情况, 同时还可以利用外部控制信号 state_inputs 任意改变状态机的状态变化模式。注意:在上例中,有两个信号起到了互反馈的作用,完成了两个进程间的信息传递的 功能,这两个信号分别是 current_state 进程 REG 进程 COM) 和 next_state( 进程 COM 进程 REG)。在 VHDL 中可以有两种方式来创建反馈机制:即使用信号的方式和使用变量的方式。 通常倾向于使用信号的方式(如例7.1 )。一般而言,在进程中使用变量传递数据
15、,然后使用信号将数据带出进程。 在设计过程中, 如果希望输出的信号具有寄存器锁存功能, 则需要 为此输出写第 3 个进程,并把 clk 和 reset 信号放入敏感信号表中。但必须注意避免由于寄 存器的引入而创建了不必要的异步反馈路径。根据 VHDL 综合器的规则,对于所有可能的 输入条件, 如果进程中的输出信号没有被明确的赋值时, 此信号将自动被指定, 即在未列出 的条件下保持原值, 这就意味着引入了寄存器。因此,我们在程序的综合过程中, 应密切注 意 VHDL 综合器给出的警告信息,并根据警告信息对程序作必要的修改。一般来说,利用状态机进行设计有如下几个步骤:(1) 分析设计要求,列出状态
16、机的全部可能状态,并对每一个状态进行编码。(2) 根据状态转移关系和输出函数画出状态转移图。(3) 由状态转移图,用 VHDL 语句对状态机描述。7.2.2 状态机的编码方案在状态机的编码方案中,有两种重要的编码方法:二进制编码和一位热码 (One Hot) 编码。在二进制编码的状态机中,状态位(B)与状态(S)的数目之间的关系为 B=log2 S,如两位状态位就有 00 , 01 , 10 , 11 四个不同状态,它们在不同的控制信号下可以进行状态转换, 但如果各触发器又没有准确地同时改变其输出值,那么在状态01 变到 10 时则会出现暂时的 11 或 00 状态输出,这类险象可能使整个系统
17、造成不可预测的结果。这时,采用格雷码 二进制编码是特别有益,在该编码方案中,每次仅一个状态位的值发生变化。一位热码编码就是用 n 个触发器来实现 n 个状态的编码方式,状态机中的每一个状态 都由其中一个触发器的状态来表示。如 4 个状态的状态机需 4 个触发器,同一时间仅一个 状态位处于逻辑 1 电平,四个状态分别为: 0001 、0010 、 0100 、1000 。在实际应用中, 根据状态机的复杂程度、 所使用的器件系列和从非法状态退出所需的条 件来选择最适合的编码方案,使之能确保高效的性能和资源的利用。对复杂的状态机,二进制编码需用的触发器的数目比一位热码编码的少。如100 个状态的状态
18、机按二进制编码仅用 7 个触发器就可以实现,而一位热码编码则要求 100 个触发 器。另一方面, 虽然一位热码编码要求用较多的触发器, 但逻辑上通常相对简单些。在二进 制编码的状态机中,控制从一个状态转换到另一个状态的逻辑与所有7 个状态位以及状态机的输入均有关。 这类逻辑通常要求到状态位输入的函数是多输入变量的。 然而, 在一热恋 位编码的状态机中,到状态位的输入常常是其它状态位的简单函数。站在器件结构的角度,不同结构支持其确定的编码类型。MAX+plus II编译程序对所采用的器件系列自动地选择最合适的编码方法(除非在设计文件中规定了具体的编码方案)。例如,FLEX 7000器件系列是寄存
19、器增强型(Register-intensive ),以这类器件为对象的 状态机最好选用一位热码编码方案来实现。由于一位热码编码的状态机降低了送到每一个状态位的逻辑电路的复杂程度,因而可提高用FLEX 7000器件实现的状态机的性能。MAX5000和MAX 7000器件系列最适合二进制状态机编码方案。这两类器件都能够利用共享 和并联的扩展乘积项有效地实现复杂的逻辑函数。因此,在这两类器件小,可以容纳复杂的组合逻辑函数而不会浪费资源或损失性能。另外,在选择编码方案时,必须考虑状态机可能进入的潜在的非法状态的数目。如果违反了状态位触发器的建立或保持时间,又没有定义所有可能出现的状态,则你的设计会终止
20、在非法状态上。MAX+plus II设计进入方法允许你定义非法状态和规定你的状态机如何从 非法状态中退出。例如,用二进制编码实现一个14个状态的状态机需 4个状态位。这将有16个可能的状态,故该状态机仅有两个可能的状态是非法状态。然而一位热码编码的状态 机通常有更多的潜在的非法状态。14个状态的一位热码编码的状态机需要14个状态。一位热码编码的状态机的非法状态数目由方程式(2n- n)确定,其中n为状态机的状态个数。因此,一位热码编码的14位状态共有16370个可能的非法状态。然而,只要设计中不违反状态位触发器的建立和保持时间,状态机将不会进入非法状态。7.3 摩尔状态机的VHDL设计摩尔有限
21、状态机输出只与当前状态有关,与输入信号的当前值无关,是严格的现态函数。在时钟脉冲的有效边沿作用后的有限个门延后,输出达到稳定值。即使在时钟周期内输入信号发生变化,输出也会保持稳定不变。从时序上看,Moore状态机属于同步输出状态机。Moore有限状态机最重要的特点就是将输入与输出信号隔离开来。例7.2就是一个典型的Moore型状态机实例。例 7.2LIBRARY ieee;7.6Moor e状 态机 的状 态图ENTITY moore ISPORT ( clk, datain, reset : IN std_logic; dataout : OUT std_logic_vector (3 DO
22、WNTO 0); END ENTITY moore;ARCHITECTURE arc OF moore ISTYPE state_type IS (s1, s2, s3, s4);SIGNAL state: state_type;BEGINstate_process: PROCESS (clk, reset)- 时序逻辑进程BEGINIF reset=1 THEN - 异步复位stateIF datain=1 THEN stateIF datain=0 THENstateIF datain=1 THENstate IF datain=0 THENstate dataoutdataoutdata
23、outdataout=1000;END CASE;END PROCESS;END ARCHITECTUR arc;,曲tain tlkresetsstat err a chine -i-CQ3:0d ata n ut 3:0-Rstet&0:3图 7.8 Moore 的 RTL 图上例的VHDL描述中包含了两个进程:state_process 和output_p ,分别为时序逻辑进程和组合逻辑进程。图7.7是例7.2的工作时序图,由图可见,状态机在异步复位信号后state=s1 ,在第 500ns 有效上升时钟沿到来时,state=s1 , data in=1,从而state 由s1转换为s2
24、,输出dataout=0010,即使在500ns后的一个时钟周期内输入信号发生变化,输出也会维持稳定不变。综合后的结果见图7.8所示。NsiTIP严20 El .InsCO Uns bJU.Lnzi吧血IJusl.2us,4us h1.6 usI.Busj|Q曾罪11_r- cstamLrelk1nuiH 11L2 :(4ca r片 statesis1立(能Y d图7.7 Moore的工作时序图7.4 米立状态机的 VHDL设计Mealy状态机的输出是现态和所有输入的函数,随输入变化而随时发生变化。从时序上看,Mealy状态机属于异步输出状态机,它不依赖于时钟,但Mealy状态机和Moore状态机的设计基本上相同。例7.2就是一个典型的 Mealy型状态机实例。状态机的状态图如图7.9所示。图7.9 Moore状态机的状态图例7.3LIBRARY ieee;USE ieee.std_logic_ un sig ned.ALL;EN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 武汉科技大学《信息图形设计》2024-2025学年第一学期期末试卷
- 河南科技职业大学《经济学经典著作导读》2024-2025学年第一学期期末试卷
- 辽宁政法职业学院《训练课》2024-2025学年第一学期期末试卷
- 西安交通大学《软件测试技术》2024-2025学年第一学期期末试卷
- 泉州工艺美术职业学院《生物工程工厂设计与安全生产》2024-2025学年第一学期期末试卷
- 福州外语外贸学院《审计与鉴证服务》2024-2025学年第一学期期末试卷
- 长治职业技术学院《羽毛球副项与实践Ⅰ》2024-2025学年第一学期期末试卷
- 广东酒店管理职业技术学院《教师书写技能》2024-2025学年第一学期期末试卷
- (2025年标准)签订回收协议书
- 广告代理投放业务协议
- 人工智能技术在司法领域的应用与法律挑战
- 风光储储能项目PCS舱、电池舱吊装方案
- 消防维保方案(消防维保服务)(技术标)
- 2023智联招聘行测题库
- 隧道洞渣加工石料组织管理方案
- 二年级下册音乐《每天》教案
- 音乐美学.课件
- 心肺复苏说课比赛课件模板(一等奖)
- 健康体检证明
- 北京大学信息管理系《图书馆学概论》精品课件资料
- 2021年江西外语外贸职业学院教师招聘试题及答案解析
评论
0/150
提交评论