第8讲 有限状态机设计 EDAppt课件_第1页
第8讲 有限状态机设计 EDAppt课件_第2页
第8讲 有限状态机设计 EDAppt课件_第3页
第8讲 有限状态机设计 EDAppt课件_第4页
第8讲 有限状态机设计 EDAppt课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8讲有限状态机设计8.1有限状态机的优点及转移图描述8.2有限状态机的VHDL描述8.3有限状态机编码8.4有限状态机剩余状态码的处理8.5有限状态机设计实例8.1 有限状态机的优点及转移图描述有限状态机的优点及转移图描述8.1.1 有限状态机的优点有限状态机的优点有限状态机可以描述和实现大部分有限状态机可以描述和实现大部分时序逻辑系统。时序逻辑系统。用用VHDL可以设计不同表达方式和不同实可以设计不同表达方式和不同实用功能的有限状态机,这些有限状态机用功能的有限状态机,这些有限状态机的的VHDL描述都具有相对固定的语句和程描述都具有相对固定的语句和程序表达方式。序表达方式。 与基于与基于V

2、HDL的其他设计方案或者与的其他设计方案或者与使用使用CPU编制程序的解决方案相比,有编制程序的解决方案相比,有限状态机都有其难以超越的优越性。限状态机都有其难以超越的优越性。 (1) 有限状态机是纯硬件数字系统中的顺序控制电路,具有纯硬件电路的速度和软件控制的灵活性。(2) 由于有限状态机的结构模式相对简单,设计方案相对固定,特别是可以定义符号化枚举类型的状态,这一切都为VHDL综合器尽可能发挥其强大的优化功能提供了有利条件。而且,性能良好的综合器都具备许多可控或自动的专门用于优化有限状态机的功能。(3) 有限状态机容易构成性能良好的同步时序逻辑模块,这对于解决大规模逻辑电路设计中令人深感棘

3、手的竞争冒险现象无疑是一个上佳的选择。为了消除电路中的毛刺现象,在有限状态机设计中有多种设计方案可供选择。(4) 与VHDL的其他描述方式相比,有限状态机的VHDL表述丰富多样,程序层次分明,结构清晰,易读易懂,在排错、修改和模块移植方面也有其独到之处。(5) 在高速运算和控制方面,有限状态机更有其巨大的优势。由于在VHDL中,一个有限状态机可以由多个进程构成,一个结构体中可以包含多个有限状态机,而一个单独的有限状态机(或多个并行运行的有限状态机)以顺序方式所能完成的运算和控制方面的工作与一个CPU的功能类似。因此,一个设计实体的功能便类似于一个含有并行运行的多CPU的高性能系统的功能。应用V

4、HDL设计有限状态机的具体步骤如下:(1) 根据系统要求确定状态数量、状态转移的条件和各状态输出信号的赋值,并画出状态转移图。(2) 按照状态转移图编写有限状态机的VHDL设计程序。(3) 利用EDA工具对有限状态机的功能进行仿真验证。8.1.2 有限状态机的转移图描述有限状态机的转移图描述根据输出与输入、系统状态的关系,有限根据输出与输入、系统状态的关系,有限状态机又可分为状态机又可分为Moore型有限状态机和型有限状态机和Mealy型有限状态机。型有限状态机。 Moore型有限状态机是指输出仅与系统状型有限状态机是指输出仅与系统状态有关,与输入信号无关的状态机。优点是将态有关,与输入信号无

5、关的状态机。优点是将输入和输出分隔开。输入和输出分隔开。Mealy型有限状态机是指型有限状态机是指输出与系统状态和输入均有关系的有限状态机。输出与系统状态和输入均有关系的有限状态机。 通常采用转移图对有限状态机的功能进行通常采用转移图对有限状态机的功能进行描述。描述。 转移图是一种有向图,由圆表示有限状态机的状态,有向曲线表示系统的状态转移过程,有向线段的起点表示初始的状态,终点表示转移后的状态。 对于Mealy型有限状态机在有向曲线段上的字符表示系统的输入和输出,用“/”分隔。 对于Moore型有限状态机,通常在状态后标出输出值,用“/”分隔,输入信号仍然在有向线段上标注。图8.1所示就是一

6、个简单的Mealy型有限状态机的转移图。该有限状态机只有一位输入、一位输出,两个状态A1和A2,左侧绘制的指向A1的箭头表示系统的初始状态为A1;在A1的上方,绘制一个起点和终点都在A1上的有向曲线,以及曲线上的标注“1/0表示,当状态为A1,输入信号为1时,有限状态机的状态不变,输出为0;由A1指向A2的标注为“0/1的箭头表示,当系统状态为A1,输入为0时,系统状态变为A2,且输出为1。同理,由转移图可知,当系统处于A2状态时,输入为1时状态不变,输出为1;当输入为0时,状态变为A1,输出为0。对于比较复杂的有限状态机,在有向箭头的标识上还可以添加字符说明。图8.2所示为一个Moore型有

7、限状态机的转移图。图8.2所示的Moore型有限状态机只有一位输入、一位输出,两个状态A1和A2,左侧绘制的指向A1的箭头表示系统的初始状态为A1;标注“A1/1表示处于状态A1时,输出为1;同理“A2/0表示处于状态A2时,系统输出为0;在状态A1上方绘制的起点和终点均在A1上的有向曲线,以及曲线上的标注“1表示,当状态为A1,输入信号为1时,有限状态机的状态不变;由A1指向A2的标注为“0的箭头表示,当状态为A1,输入为0时,有限状态机的状态变为A2。当有限状态机处于A2状态时,如果输入为1,有限状态机的状态就会变为A1。 对于这种输出在0,1二值区间的Moore型有限状态机,一般称之为有

8、限状态自动机,对于有限状态自动机还有另一种转移图的表示方法,即用双圆环表示输出为1的状态,并称之为接受状态。使用这种转移图画法后,图8.2所示的有限状态机可绘制为如图8.3所示的转移图。图8.3所示的有限状态自动机的转移图中状态A1为接受状态,用双圆环表示。 8.2 有限状态机的有限状态机的VHDL描述描述用用VHDL设计的有限状态机有多种形式:设计的有限状态机有多种形式:从有限状态机的信号输出方式上分:从有限状态机的信号输出方式上分:Mealy型型和和Moore型;型;从结构上分:单进程有限状态机和多进程有限从结构上分:单进程有限状态机和多进程有限状态机;状态机;从状态表达方式上分:符号化有

9、限状态机和确从状态表达方式上分:符号化有限状态机和确定状态编码的有限状态机;定状态编码的有限状态机;从编码方式上分:顺序编码有限状态机、一位从编码方式上分:顺序编码有限状态机、一位热码编码有限状态机或其他编码方式的有限状热码编码有限状态机或其他编码方式的有限状态机。态机。无论有限状态机属于何种类型,其结构均无论有限状态机属于何种类型,其结构均可分为状态说明、主控时序进程、主控组合进可分为状态说明、主控时序进程、主控组合进程和辅助进程几个部分。程和辅助进程几个部分。8.2.1 状态说明状态说明状态说明用于说明有限状态机可能的所有状态说明用于说明有限状态机可能的所有状态。根据有限状态机状态的编码方

10、式的不同,状态。根据有限状态机状态的编码方式的不同,有两种状态说明结构:一种是自动状态编码,有两种状态说明结构:一种是自动状态编码,这种编码方式不指定编码的具体顺序和方式,这种编码方式不指定编码的具体顺序和方式,只是说明编码的个数以及名称,由综合器自动只是说明编码的个数以及名称,由综合器自动进行二进制编码,这种方式的进行二进制编码,这种方式的VHDL描述比较描述比较简洁;另一种是指定状态编码,由设计者分别简洁;另一种是指定状态编码,由设计者分别指定各个状态的二进制编码,采用这种编码方指定各个状态的二进制编码,采用这种编码方式后,可根据需要设置各个状态的编码,但状式后,可根据需要设置各个状态的编

11、码,但状态说明的描述过程比较繁琐。态说明的描述过程比较繁琐。采用自动状态编码方式的状态说明部分的核心是用TYPE语句定义的新的描述状态的枚举数据类型,其元素都用状态机的状态名来定义。用来存储状态编码的状态变量应定义为信号,便于信息传递;并将状态变量的数据类型定义为含有既定状态元素的新定义的数据类型。说明部分一般放在结构体的ARCHITECTURE和BEGIN之间。例8.1ARCHITECTURE ISTYPE FSM_ST IS(A1,A2);SIGNAL cur_st,next_st:FSM_ST; 采用指定状态编码方法的状态说明部分就比较繁琐,需要使用关键词“CONSTANT一一列出指定的

12、状态的二进制编码,用来存储状态编码的状态变量也应定义为信号,且类型必须与状态编码的类型相同。例8.2ARCHITECTURE ISCONSTANT A1:STD_LOGIC:= 1 ;CONSTANT A2:STD_LOGIC:= 0 ;SIGNAL cur_st,next_st:STD_LOGIC;8.2.2 主控时序进程主控时序进程主控时序进程是负责有限状态机状态转化主控时序进程是负责有限状态机状态转化的进程。有限状态机是随外部时钟信号以同步的进程。有限状态机是随外部时钟信号以同步时序方式工作的,即保证在时钟发生有效跳变时序方式工作的,即保证在时钟发生有效跳变时,有限状态机的状态才发生变化

13、。时,有限状态机的状态才发生变化。 一般地,主控时序进程负责系统的初始和一般地,主控时序进程负责系统的初始和复位的状态设置,不负责下一状态的具体状态复位的状态设置,不负责下一状态的具体状态取值。取值。例8.3PROCESS (reset,clk)BEGIN IF (reset = 1 ) THEN cur_st = st1; ELSIF (clk= 1 AND clkevent ) THEN cur_st IF (inputs=1)THEN output=0;next_st=A1; ELSE output=1;next_st IF ( inputs=1)THEN output=1; next_

14、st=A2; ELSE output=0; next_st next_st= st0;其中next_st是编码变量,st0是初始状态编码。这种方式适用于采用符号编码的有限状态机。 8.5 有限状态机设计实例有限状态机设计实例本节将通过控制本节将通过控制ADC0809进行进行AD采采样的有限状态机的实例设计完整地介绍样的有限状态机的实例设计完整地介绍有限状态机的设计过程。有限状态机的设计过程。ADC0809是是CMOS的的8位位A/D转换器,转换器,片内有片内有8路模拟开关,可控制路模拟开关,可控制8个模拟量个模拟量中的一个进入转换器中。中的一个进入转换器中。ADC0809的精的精度为度为8位,

15、转换时间约位,转换时间约100 s,含锁存控,含锁存控制的制的8路多路开关,输出由三态缓冲器控路多路开关,输出由三态缓冲器控制,单制,单5 V电源供电。电源供电。ADC0809的转换过程时序如图的转换过程时序如图8.4所所示。示。图8.4 ADC0809的转换过程时序START是转换启动信号,高电平有效ALE是3位通道选择地址(ADDC、ADDB、ADDA)信号的锁存信号,当模拟量送至某一输入端(如IN1或IN2等)后,由3位地址信号选择,而地址信号由ALE锁存EOC是转换情况状态信号,当启动转换约100 s后,EOC产生一个负脉冲,以示转换结束;在EOC的上升沿后,若使输出使能信号OE为高电平,则控制打开三态缓冲器,把转换好的8位数据结果输送至数据总线。根据ADC0809的转换时序,控制ADC0809的状态机中共设置了7个状态,计为“st0st6”,这7个状态在时序图中的位置如图8.5所示。图8.5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论