《数字电子技术基础》6.4 时序逻辑电路——设计方法(FSM)有限状态机

前言

《数字电子技术基础》第6.4节学习笔记,本人在编写Verilog时序逻辑代码时,关于这一部分的状态图需要好好学一下。

6.4.1 同步时序逻辑电路的设计方法

一般步骤

一、逻辑抽象,求出状态转换图或状态转换表

  1. 确定输入输出变量、电路状态数。
  2. 定义输入输出逻辑状态以及每个电路状态的含义,并对电路状态进行编号。
  3. 按设计要求列出状态转换表,或画出状态转换图。

二、状态化简

若两个状态在相同的输入下有相同的输出,并转换到同一次态,则称为等价状态;等价状态可以合并。

是否合并需要看状态的个数,如果8个状态时,需要3位二进制编码,此时则不需要进行状态合并;如果9个状态时,则需要4位二进制编码,如果此时进行状态化简,可以将其化简为3位二进制编码,此时通过简单化简就可以实现触发器和门电路的减少。

三、状态分配(编码)

  1. 确定触发器数目。
  2. 给每个状态规定一个代码(通常编码的取法、排列顺序都按照一定的规律)

四、选定触发器类型

求出状态方程,驱动方程,输出方程

五、画出逻辑图

六、检查自启动

将检查自启动提前,在化简状态表时,就将无效态次态设为初态,无论输入是什么。

有限状态机(FSM)设计举例

例:设计一个串行数据检测器(密码锁),设计要求:连续输入3个或者3个以上的1时输出1,其他输入情况狂输出为0。

1、逻辑抽象——画出状态转换图(Mealy型电路)

X表示输入,Y表示输出,没有输入的初始状态为S0,输入1个1后状态为S1,输入2个1后状态为S2,输入3个1后状态为S3。次态可以使用S*表示。状态转换图如下:

2、状态化简及分配

由于有4个状态编码时仅仅需要两位二进制码,此时不化简也没有问题,反而化简也不会出现一位二进制编码就可以实现,也无法省触发器。反而会带来化简麻烦,出现有效和无效的概念。但是为了熟悉步骤这里进行化简如下。

由上图可知S2当输入为0时输出为0,次态为S0;当输入为1时输出为1,次态为S3。

                 S3当输入为0时输出为0,次态为S0;当输入为1时输出为1,次态为S3。

根据当两个状态具有同样的输入时,具有相同的输出和相同的次态时,可以合并

因此可以合并S2和S3,合并后如图所示:

电路状态M=3,因此触发器的位数n=2。假设触发器状态Q1Q0的状态00、01、10分别代表S0、S1、S2。 

3、选定触发器写出方程

状态转换图不方便方程的书写,这里可以使用类卡诺图方式表示:

为方便写出Q1*、Q2*和Y的方程,这里可以分解称相应的卡诺图:

如果选择JK触发器组成电路,这里需要清楚的理解触发器的类型。

Q* = JQ'+JQ

本人关于触发器学习笔记链接,博客后期会更新

如果选择D触发器,则方程为:

4、画出逻辑图

5、检查自启动

当电路进入无效状态Q1Q0为11后,X=1则次态为10;若X=0此次态为00,因此可知电路为自启动的。

6.4.2 时序逻辑电路的自启动设计

当状态为11时,直接输入1则变换到最终态10,不合适。 

这里直接将无效态的下一个状态(次态)设置称初态。 

P36 

  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
一、实验目的: 1、深入了解与掌握同步时序逻辑电路设计过程; 2、了解74LS74、74LS08、74LS32及74LS04芯片的功能; 3、能够根据电路图连接好实物图,并实现其功能。学会设计过程中的检验与完善。 二、实验内容描述: 题目:“1 1 1”序列检测器。 原始条件:使用D触发器( 74 LS 74 )、“与”门 ( 74 LS 08 )、“或”门( 74 LS 32 )、非门 ( 74 LS 04 ),设计“1 1 1”序列检测器。 集成电路引脚图: D触发器( 74 LS 74 ) “与”门 ( 74 LS 08 ) “或........ 三、实验设计过程: 第1步,画出原始状态图和状态表。 根据任务书要求,设计的序列检测器有一个外部输入x和一个外部输出Z。输入和输出的逻辑关系为:当外部输入x第一个为“1”,外部输出Z为“0”;当外部输入x第二个为“1”,外部输出Z为“0”;当外部输入x第三个为“1”,外部输出Z才为“1”。假定有一个外部输入x序列以及外部输出Z为: 输入x: 0 1 0 1 1 1 0 1 1 1 1 0 1 输出Z: 0 0 0 0 0 1 0 0 0 1 1 0 0 要判别序列检测器是否连续接收了“111”,电路必须用不同的状态记载外部输入x的值。假设电路的初始状态为A,x输入第一个“1”,检测器状态由A装换到B,用状态B记载检测器接受了111序列的第一个“1”,这时外部输出Z=0;x输入第二个“1”,检测器状态由B装换到C,用状态C记载检测器接受了111序列的第二个“1”,外部输出Z=0;x输入第三个“1”,检测器状态由C装换到D,外部输出Z=1。然后再根据外部输入及其他情况时的状态转移,写出相应的输出。以上分析了序列检测器工作,由此可画出图7-1所示的原始状态图。根据原始状态图可列出原始状态表,如表7-2所示。 现态 次态/输出 x = 0 x = 1 A A / 0 B / 0 B A / 0 C / 0 C A / 0 D / 1 D A / 0 D / 1 (表 7-2 原始状态表) (图
有限状态机FSM)是一个数学模型,用于描述具有有限数量状态的系统的行为。FSM有三个主要组成部分:状态集合、输入集合和状态转换函数。 首先,有限状态机由一组离散的状态组成。状态是系统在特定时间点的情况的表示,可以是一个特定的变量或属性。例如,一个交通信号灯可以有三种状态:红灯、黄灯和绿灯。 其次,有限状态机还包括输入集合,可以触发状态之间的转换。输入可以是外部条件,例如一个按钮的按下、一个传感器的数据或一个特定的事件。例如,在交通信号灯的情况下,按下按钮可能是一个输入,将状态从红灯转换到绿灯。 最后,有限状态机还包括状态转换函数,它指示在给定状态和输入情况下系统应该如何转换到下一个状态。转换可以是确定性的,也可以是非确定性的。在交通信号灯的情况下,状态转换函数可以定义为:当状态是红灯时,如果接收到按钮按下的输入,则将状态转换为绿灯。 通过将这三个组成部分结合起来,我们可以使用有限状态机来描述和计算系统的行为。FSM广泛应用于计算机科学和工程领域,用于模型验证、软件开发、自动控制等领域。 总之,有限状态机是一种简单但强大的数学模型,用于描述具有有限数量状态的系统的行为。它通过状态集合、输入集合和状态转换函数来建模系统,用于解决各种计算和控制问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐者-桥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值