状态机说课材料.ppt
《状态机说课材料.ppt》由会员分享,可在线阅读,更多相关《状态机说课材料.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、状态机2022/11/2022.2.摩尔(摩尔(MooreMoore)机)机摩尔(Moore)机的结构如图11-3所示。由图11-3可见,摩尔(Moore)机的下一状态取决于当前状态和当前输入,但其输出仅取决于当前状态。8.3 有限状态机常用的描述、开发方法有限状态机常用的描述、开发方法n n状态转移图(状态转移图(State Transition GraphState Transition Graph,STGSTG)是)是一种有向图,图中带有标记的节点或顶点与时序一种有向图,图中带有标记的节点或顶点与时序状态机的状态一一对应。当系统处于弧线起点的状态机的状态一一对应。当系统处于弧线起点的状态
2、时,用有向边或弧线表示在输入信号的作用状态时,用有向边或弧线表示在输入信号的作用下可能发生的状态转移。米利机下可能发生的状态转移。米利机STGSTG的顶点用状态的顶点用状态进行标记,状态转移图的有向边有下面两种标记进行标记,状态转移图的有向边有下面两种标记方法:方法:n n(1 1)用能够导致状态向指定的下一状态转移的输)用能够导致状态向指定的下一状态转移的输入信号来标记。入信号来标记。n n(2 2)在当前状态下,用由输入信号确定的输出来)在当前状态下,用由输入信号确定的输出来进行标记。进行标记。n n有限状态机可以借助时序图、状态表、状态图以及有限状态机可以借助时序图、状态表、状态图以及A
3、SMASM图进行系统的描述与设计。时序图可用于说明系图进行系统的描述与设计。时序图可用于说明系统中及系统与周围环境的接口中信号的有效输入与统中及系统与周围环境的接口中信号的有效输入与状态转移之间的关系。例如,静态随机访问内存的状态转移之间的关系。例如,静态随机访问内存的写周期可以用一个时序图加以说明,该时序图表明写周期可以用一个时序图加以说明,该时序图表明存储单元的地址必须在写使能信号有效之前就已经存储单元的地址必须在写使能信号有效之前就已经被确定。在面向综合的设计方法中,设计的时序指被确定。在面向综合的设计方法中,设计的时序指标构成了对必须由设计工具实现的电路的限制。标构成了对必须由设计工具
4、实现的电路的限制。n n状态表或状态转移表以表格的形式表示在当前状态状态表或状态转移表以表格的形式表示在当前状态和输入的各种组合下状态机的下一状态和输出。和输入的各种组合下状态机的下一状态和输出。摩尔机的状态转移图与米利机相类似,但它的输出摩尔机的状态转移图与米利机相类似,但它的输出是由各状态的顶点来表示的,而不是在弧线上表示。算是由各状态的顶点来表示的,而不是在弧线上表示。算法状态机(法状态机(ASMASM)图是时序状态机功能的一种抽象,是)图是时序状态机功能的一种抽象,是模拟其行为特性的关键工具。它类似于软件流程图,但模拟其行为特性的关键工具。它类似于软件流程图,但显示的是计算动作(如寄存
5、器操作)的时间顺序,以及显示的是计算动作(如寄存器操作)的时间顺序,以及在状态机输入影响下发生的时序步骤。在状态机输入影响下发生的时序步骤。ASMASM图描述的是图描述的是状态机的行为动作,而不是存储组件所存储的内容。有状态机的行为动作,而不是存储组件所存储的内容。有时候用机器工作期间的行为动作来描述状态机的状态,时候用机器工作期间的行为动作来描述状态机的状态,比起用状态机产生的数据进行描述更为方便也更重要。比起用状态机产生的数据进行描述更为方便也更重要。例如,我们可以用例如,我们可以用1616位的计数器内容来描述计数器本身,位的计数器内容来描述计数器本身,我们也可以将它视为一个数据信道单元来
6、描述它的动作我们也可以将它视为一个数据信道单元来描述它的动作(如计数、等待等)。在描述时序状态机的行为方面,(如计数、等待等)。在描述时序状态机的行为方面,以及设计状态机来控制数据信道方面,以及设计状态机来控制数据信道方面,ASMASM图是非常有图是非常有帮助的。帮助的。n nASMDASMD图是图是ASMASM图的扩展。状态机的一个重要应用就是控制时图的扩展。状态机的一个重要应用就是控制时序状态机数据信道上的寄存器操作,而该时序状态机已被划序状态机数据信道上的寄存器操作,而该时序状态机已被划分为控制器和数据信道。控制器可以用分为控制器和数据信道。控制器可以用ASMASM图来描述,我们图来描述
7、,我们修改修改ASMASM图的目的是把它连接到状态机所控制的数据信道上。图的目的是把它连接到状态机所控制的数据信道上。当控制器的状态沿着通道发生转移时,通过标注每个数据信当控制器的状态沿着通道发生转移时,通过标注每个数据信道来指出那些在相关数据信道单元中所发生的寄存器操作。道来指出那些在相关数据信道单元中所发生的寄存器操作。以这种方式连接到数据信道的以这种方式连接到数据信道的ASMASM图被称为算法状态机和数图被称为算法状态机和数据信道(据信道(ASMDASMD)图。在把时序状态机数据信道的设计从控制)图。在把时序状态机数据信道的设计从控制器的设计中分离出来,并在两个单元之间保持清晰联系的情器
8、的设计中分离出来,并在两个单元之间保持清晰联系的情况下,况下,ASMDASMD图有助于阐明这样的时序状态机设计方法。与状图有助于阐明这样的时序状态机设计方法。与状态转移并行发生的寄存器操作是在图的通道上标注的,而不态转移并行发生的寄存器操作是在图的通道上标注的,而不是在通道上的条件框或状态框中标注的,因为这些寄存器不是在通道上的条件框或状态框中标注的,因为这些寄存器不是控制器的一部分。由控制器产生的输出是那些控制数据信是控制器的一部分。由控制器产生的输出是那些控制数据信道寄存器的信号,以及引发道寄存器的信号,以及引发 ASMASM图上标注的寄存器操作的信图上标注的寄存器操作的信号。号。8.4基
9、于状态转移图(基于状态转移图(STG)的设计)的设计1.设计要点设计要点n n对于一个同步时序状态机的给定对于一个同步时序状态机的给定STGSTG,设计的任务就是确定下,设计的任务就是确定下一状态和输出逻辑。如果用一个二进制代码来表示时序状态一状态和输出逻辑。如果用一个二进制代码来表示时序状态机的状态,那么其值可以存储在触发器中。在时钟的各个有机的状态,那么其值可以存储在触发器中。在时钟的各个有效沿处,状态保持触发器的输入变成下一个时钟周期的状态。效沿处,状态保持触发器的输入变成下一个时钟周期的状态。同步时序状态机的设计就是要根据机器的状态和外部输入来同步时序状态机的设计就是要根据机器的状态和
10、外部输入来确定能形成触发器输入的逻辑,该逻辑为组合逻辑,并且应确定能形成触发器输入的逻辑,该逻辑为组合逻辑,并且应该是最简逻辑。对于有效的该是最简逻辑。对于有效的STGSTG而言,其每个顶点必须表示一而言,其每个顶点必须表示一个唯一的状态;每个弧线则表示在指定输入信号的作用下,个唯一的状态;每个弧线则表示在指定输入信号的作用下,从给定状态到下一个状态的转移,并且从一个节点出发的各从给定状态到下一个状态的转移,并且从一个节点出发的各弧线必须对应一个唯一的输入。通常,与从一个节点出发的弧线必须对应一个唯一的输入。通常,与从一个节点出发的一组弧线有关的布尔条件必须满足和为一组弧线有关的布尔条件必须满
11、足和为1 1(即状态转移图必须(即状态转移图必须考虑到从一个节点出发的所有可能的状态转移),并且在给考虑到从一个节点出发的所有可能的状态转移),并且在给定状态下与输入变量判定有关的每个分支条件必须对应于一定状态下与输入变量判定有关的每个分支条件必须对应于一条唯一的弧线(实时序状态机仅可以由一个节点经过一条弧条唯一的弧线(实时序状态机仅可以由一个节点经过一条弧线转移到下一个状态)。根据时钟到来之前的状态值和当前线转移到下一个状态)。根据时钟到来之前的状态值和当前输入值,由同步时序状态机的输入值,由同步时序状态机的STGSTG所表示的状态转移将在时钟所表示的状态转移将在时钟信号的有效沿处发生。信号
12、的有效沿处发生。有限状态机的系统设计方法通常包有限状态机的系统设计方法通常包括以下几个步骤括以下几个步骤 n n(1)构建状态机的STG。n n(2)消去等价状态。n n(3)选取状态码(如二进制代码)。n n(4)编写状态表。n n(5)推出描述保持状态位的D触发器的输入布尔方程。n n(6)利用卡诺图优化布尔方程。【例例1】设设计计一一个个串串行行数数据据检检测测器器,在在连连续续输输入入4个个或或4个以上的个以上的1时输出时输出1,否则输出否则输出0。解解:(串行数据输入方向为:串行数据输入方向为:从左至右。从左至右。)逻辑抽象逻辑抽象 输入输入X(串行数据串行数据)Sn电路现态电路现态
13、 输出输出Z(检测结果检测结果)Sn+1电路次态电路次态定义:定义:S0没有输入没有输入1;0 S1输入输入1个个1;1 S2连续输入连续输入2个个1;11 S3连续输入连续输入3个个1;111 S4连续输入连续输入4个或个或4个以上个个以上个1;1111状态转移表:状态转移表:状态简化状态简化:简化简化两个状态如果两个状态如果“等价等价”,则这,则这两个状态可以合并为一个状态。两个状态可以合并为一个状态。两个状态等价的条件是:两个状态等价的条件是:(1)在所有输入条件下,两在所有输入条件下,两个状态对应输出完全相同;个状态对应输出完全相同;(2)在所有输入条件下,两在所有输入条件下,两个状态
14、转移效果完全相同。个状态转移效果完全相同。状态分配状态分配M=4(状态状态)选选n=2,定定义义:S000、S101、S211、S310选定选定FF 由状态转换表有由状态转换表有:选定选定FF 由状态转换表有由状态转换表有:选选JK触发器触发器由驱动方程和输出方程画逻辑电路图由驱动方程和输出方程画逻辑电路图检查自启动检查自启动 该电路没有无效状态,不用检查自启动。该电路没有无效状态,不用检查自启动。程序程序module stat(x,z,clk,rst);input x,clk,rst;output z;reg 1:0 state;/wire z;parameter idle=b00,a=b0
15、1,b=b10,c=b11,d=b100;assign z=(state=d&x=1)?1:0;always(posedge clk or negedge rst)if(!rst)begin state=idle;end else case(state)idle:if(x=1)begin state=a;end else begin state=idle;end a:if(x=1)begin state=b;end else begin state=idle;end b:if(x=1)begin state=c;end else begin state=idle;end c:if(x=1)be
16、gin state=d;end else begin state=idle;end default:state=idle;endcase endmodule总结:时序逻辑电路设计总结:时序逻辑电路设计主要有主要有4个过程:个过程:1.确定原始状态转移图和原始状态表。确定原始状态转移图和原始状态表。2.状态简化;状态简化;3.状态编码;状态编码;4.存储电路类型的选择。存储电路类型的选择。【例例6-6】设计模设计模6 6同步计数器同步计数器6.3.2 采用采用SSI设计同步计数器设计同步计数器 定义:定义:S0=000 S1=001 S2=011 S3=111 S4=110 S5=100CPCP
17、 QQ3 3n nQQ2 2n nQQ1 1n nQQ3 3n+1n+1QQ2 2n+1n+1QQ1 1n+1n+1Z Z0 00 00 00 00 00 01 10 01 10 00 01 10 01 11 10 02 20 01 11 11 11 11 10 03 31 11 11 11 11 10 00 04 41 11 10 01 10 00 00 05 51 10 00 00 00 00 01 10137642.建模实例建模实例n n利用利用STGSTG构建一个构建一个BCDBCD码到余码到余3 3码的转换器码的转换器n n一个串行发送的一个串行发送的BCDBCD码码BinBin被转
18、换成为一个余被转换成为一个余3 3码串行比特码串行比特流流BoutBout是这样得到的:给是这样得到的:给BCDBCD码对应的十进制数加上码对应的十进制数加上310310,并将其转换为等价的二进制数就得到了该十进制数的余,并将其转换为等价的二进制数就得到了该十进制数的余3 3码,表码,表11-111-1给出了十进制数及其相应的给出了十进制数及其相应的4 4位位BCDBCD码和余码和余3 3码。码。余余3 3码是自补码,即余码是自补码,即余3 3码的码的9 9补,在硬件上可以通过对码补,在硬件上可以通过对码字逐位取反得到(即取码字的二进制反码)。例如字逐位取反得到(即取码字的二进制反码)。例如6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 状态机 材料
限制150内