所有的组合逻辑电路都只能实现计算功能——但计算机(以及大多数控制器)不能只会计算,还要能够存储数据。思考,如何用逻辑门实现存储数据的功能?

一、RS锁存器

我们将能够存储一个状态的电路叫做锁存器。设想一个电路,初始输入为0,输出为0;然后输入为1,输出变为1(状态发生了变化)。对于迄今为止所有的电路,我们都能保证当输入回到0时,输出也会同时归0;但这个电路不同,它保持在了1,也就是状态没有发生变化,而是被存储了下来。此时,这种电路便可以被叫做锁存器。

为了让电路拥有自己的”状态“,必须要有某种”反馈“机制,将输出输入形成一个闭环。所以,锁存器的原型如下图:(它是如何设计出来的不重要;但接下来的所有元件都以它为基础)

它有两种状态,可以看到,两种状态都是稳定的,第一种输出

;第二种则是
。可以顺着线路,看看循环是如何构成的。我们把这两种状态分别用
表示,即
状态和
状态。对于所有的锁存器,都有
两个输出,且它们必定相反。

但是,这种电路没有输入,一旦回路构成,它的输出就确定下来了。但我们在最开头所设想的锁存器是能根据输入改变自己的状态的。为了给输入留出空间,我们要把非门换成与非门或者或非门。(这也是一步拍脑袋的改进。锁存器的设计中,很少有能明确讲出所以然的操作,but it works, and that's all that matters.)

我们逐个分析,看它们的输出是如何变化的。

1、或非门锁存器

首先,初始状态是

,此时电路处于双稳态——
都是稳定状态;接下来,分别令

可以看到,

变化一次,则无论之前的状态是什么,最终的状态都是
;相对的,
变化一次,恢复
时,都会停在
的状态上。所以,我们说
为置1端口 (Set),
为置0端口 (Reset)。

但是,如果让

会如何?

注意到,

——但在之前定义过,
必定相反。所以虽然它也是一个稳定状态,但是未定义的状态。因此,我们人为规定
,即两者不能同时为1。

最后,如何确定或非门锁存器的

两个端口?要先确定
,然后输出
的或非门的输入便是
,另一个则是

2、与非门锁存器

首先,初始状态是

,此时电路处于双稳态——
都是稳定状态;接下来,分别令

此时,

端口仍是置1端口,
仍是置0端口;变化了的是,端口的“静息状态”从低电平变成了高电平,每次重置状态时,端口是短暂地变成低电平,而不是变成高电平。所以这个电路的输入是低电平有效。最后,
时,同样会出现
的情况,是不合法状态。所以,与非门锁存器的约束条件是

总结:对于两类锁存器,都有如下特点:

  • 有两个输入,一个将状态置1,一个将状态置0,分别叫做S和R;
  • 有两个输出,两个输出必定相反,并将其中一个输出定义为电路状态,叫做Q。

但是,与非门和或非门又有几个不同:

  • 两者S和R的位置相反;
  • 前者输入低电平有效,后者输入高电平有效。

基于对一致性的追求,我们希望能使得两个锁存器有一样的封装形式。第一个无需担心,因为当它被封装后,端口的顺序就不需关心了;对于第二个不同,我们的解决方法非常简单:将S和R取反即可。由于它有Set和Reset两个端口,这种锁存器叫做RS锁存器。(在我的教材上,它叫做SR锁存器;但貌似MC社区中更倾向叫它RS锁存器。)下面是封装好的RS锁存器的样子:

二、锁存器的分析

由于我们已经实现了第一个锁存器——RS锁存器,可以以它为例,介绍各种表示锁存器功能的方法。首先,我们知道锁存器的研究重点在于状态是如何随输入和现态变化的。为此,我们要区分“现态”和“次态”——前者是作为输入出现的,后者则作为输出。现态用

表示,次态用
表示。在每一个时刻,存储电路都经历了如下三步:获得输入和现态—>据此得出次态—>次态成为新的现态。先从最直观的状态转换图开始,并借此熟悉现态和次态之间的区别。

1、状态转换图

从这张图中,我们要剥离出一些更有用的信息。首先,电路只有两种状态:

。其次,当
从0变成1的“一瞬间”,状态从0状态变成了1状态;相对地,当
从0变成1的“一瞬间”,状态从1变成了0。(这个“瞬间”的变化非常重要——一旦状态转变完成,即使
一直维持在1,状态也只会保持为1,和
何时变回0无关。)除了这两种情况,无论输入如何,状态都没有变化。因此,我们可以画出如图所示的状态转换图:

这张图表达了所有可能的输入组合和现态会导致的次态变化。比如,如果现态Q=1,S=0,R=1,那么次态就是Q*=0。最简单的理解方式是将

看成两个毫无关系的数据;在某一给定时刻,两者的确没有关系,因为只有在下一时刻,
才会成为新的

状态转换图是从计算理论的有限状态机中借来的表达方式。其实所有的时序电路都是有限状态机——在以后的章节中会详细探讨这一点。

2、真值表(特性表)和卡诺图

所有电路的表达方式都需要在“直观”和“高效”之间做出取舍。状态转换图非常直观,但它信息密度太低,不方便后续处理。在逻辑电路中,将文字需求做初步抽象的是真值表;对于存储电路,也可以用真值表。

在状态转换图上,只要确定了输入和现态,就可以确定唯一的次态。因此,不难列出一张真值表(无效输出被作为了无关项):

和真值表等价的另一种表示方法是曾经简短介绍过的卡诺图。此处我们也可以将真值表转化为卡诺图:

3、特性方程

最后一步抽象是将真值表或卡诺图表示为方程,就好像我们之前所做的那样,甚至方法也毫无改变。因此,我们可以得出RS锁存器的函数表达:

三、RS锁存器的应用与局限

RS锁存器最重要的用处,是将瞬时的脉冲稳定为连续的高/低电平信号。比如一个按钮,按下时输出高电平,松开便只能输出低电平,如果将其接入带一个灯泡的电路中,那只有按下按钮时灯泡才亮。但运用了锁存器后,不管按下的时间多么短暂,只要按过一次,灯泡就会保持点亮的状态。实际运用中,会用它来做开关消抖——开关拨动的一瞬间,由于簧片颤动,会输出一些不规则的高低电平信号,此时锁存器便可以将其稳定成一个从低到高的变化。

我们说过,锁存器的意义在于存储数据;但是,普通RS锁存器很少用作存储电路,因为它有如下局限:

  • S端口和R端口不能同时有效,但实际应用中不能保证这种情况不出现,此时可能会出错;
  • 在计算机中,有许多内存单元协同组成一个寄存器,存储同一个数据。但每一位数据可能是先后到来的(比如加法器,计算出最高一位会花费比低位更多的时间),如果内存单元被写入的时间无法统一,就会造成混乱。RS锁存器并没有提供控制写入的端口——只要输入变化,状态就会改变。

对于以上问题,将会在下一章中做出改进。

双稳态电路的两个稳定状态是什么_数字电路学习笔记(九):初识锁存器相关推荐

  1. 双稳态电路的两个稳定状态是什么_一文解析双稳态开关工作原理

    点击蓝色字免费订阅,每天收到这样的好信息 稳态电路一般有一个输出端和两个输入端("+"."-"端各一个),当输入端的"+"端有触发信号时,输 ...

  2. 双稳态电路的两个稳定状态是什么_利用SR锁存器实现SPDT开关消抖电路

    SR锁存器常常被用来实现SPDT开关消抖,但在纳秒时域中它是如何实现的呢?Max Maxfield编辑一直试图找出应该在消抖软件中使用多长的等待状态才能可靠地消除一般的开关抖动(甚至最严重的抖动).本 ...

  3. 锁存器的工作原理_数字电路学习笔记(十):更多锁存器和触发器

    上一章中提到了普通RS锁存器的两大缺点: 1. S端口和R端口不能同时有效,但实际应用中不能保证这种情况不出现,此时可能会出错: 2. 在计算机中,有许多内存单元协同组成一个寄存器,存储同一个数据.但 ...

  4. jk触发器改为四进制_数字电路学习笔记(十):更多锁存器和触发器

    上一章中提到了普通RS锁存器的两大缺点: 1. S端口和R端口不能同时有效,但实际应用中不能保证这种情况不出现,此时可能会出错: 2. 在计算机中,有许多内存单元协同组成一个寄存器,存储同一个数据.但 ...

  5. 双稳态电路的两个稳定状态是什么_干货|常见的脉冲电路到底有何用途和特点?终于了解了!|脉冲|晶体管|双稳|单稳|振荡器...

    在电子电路中,电源.放大.振荡和调制电路被称为模拟电子电路,因为它们加工和处理的是连续变化的模拟信号.电子电路中另一大类电路的数字电子电路.它加工和处理的对象是不连续变化的数字信号.数字电子电路又可分 ...

  6. 双稳态电路的两个稳定状态是什么_电子电度表磁保持继电器里面是什么样呢?...

    展开全部 磁保2113持继电器实质上就是一种自动开关,可以自动接通5261或断开电路,其平4102时依靠永久磁铁的磁性可1653以保持稳定状态,若需转换其状态只需使用脉冲信号对其进行激励即可.今天鼎悦 ...

  7. 双稳态电路的两个稳定状态是什么_振荡器基础4——什么是多谐振荡器(又称:弛张振荡器)?...

    一.多谐振荡器 与前文所述的LC振荡器不同,多谐振荡器(Multivibrator)产生的振荡波形不限于正弦波,还能是方波.锯齿波.三角波.脉冲波等等波形-- 多谐振荡器的应用非常广泛,譬如,驾车时打 ...

  8. 双稳态电路的两个稳定状态是什么_从双稳态到双“更”稳态 ——叶芳伟课题组在拓扑光子学研究方向上取得新进展...

    你拿起一个计算器,输入"2+6",计算器会输出"8":过了一会儿,你又在这个计算器上输入"2+6",它依然会输出"8". ...

  9. 双稳态电路的两个稳定状态是什么_晶振电路中选择电容的方式有哪些?

    导读:在电子学上,通常将含有晶体管元件的电路称作"有源电路"(如有源音箱.有源滤波器等),而仅由阻容元件组成的电路称作"无源电路". EDA365电子论坛 1 ...

  10. 数字逻辑基础与verilog设计_数字电路学习笔记(五):逻辑设计基础

    马上就要正式进入电路设计了,再来看最后一个知识点:逻辑设计吧. 之前我们花了两章,探讨了逻辑运算是什么,怎么算:但还有最后一个大问题,巧妇难为无米之炊,我们得先有一个逻辑式,才能对它化简,并基于结果做 ...

最新文章

  1. Java入门系列-16-继承
  2. 本地操作HDFS报错:java.net.ConnectException: Call From KevinWong/192.168.16.1 to hadoop000:9000
  3. hahahahahah
  4. html页面根据分辨率缩放,html2Canvas根据不同分辨率,生成pdf内容自适应
  5. 增量同步_使用Kettle工具进行增量数据同步
  6. php读取云平台数据库,读取Read · ThinkPHP5+数据库和模型 · 看云
  7. 自定义日历控android,Android 一个日历控件的实现小记
  8. Node.js笔记-使用socket.io构建websocket聊天室
  9. android自定义键盘遮挡,Android软键盘遮挡的四种完美解决方案
  10. 一篇很好的面试文章 程序员面试IT公司的33个小贴士
  11. 2019白金之星 第一次初赛 第一题 Polynomial
  12. 项目组最重要的三个角色
  13. 计算机应用总线带宽,带宽
  14. C++ 算术平均数及几何平均数
  15. “尝鲜”元宇宙,周杰伦最佳拍档方文山将于7月25日官宣《华流元宇宙》
  16. 程序员常用笔记与思维导图工具
  17. 个推里群推php教程,GitHub - lyx2297999137/yii2-igetui: yii2个推
  18. 怎样用ps做出3D分割效果海报图
  19. mouseenter/mouseleave多次触发fadeIn/fadeOut问题
  20. Notability work with acrobat pro dc

热门文章

  1. 新能源车牌识别系统的设计与实现
  2. 数据分析项目-大选献金数据分析
  3. python sklearn PR曲线 AUPR值
  4. 响应式Web设计:HTML5和CSS3实战
  5. NX二次开发(C#)-UIStyler-ListBox(列表框)的应用
  6. php saas,saas系统是什么
  7. 结巴分词--关键词抽取
  8. 基于Java实现(APP)智能停车场管理系统【100010044】
  9. P1616 疯狂的采药+P1833 樱花+P1077 [NOIP2012 普及组] 摆花+P1064 [NOIP2006 提高组] 金明的预算方案
  10. html字母输出空格,如何在网页中插入html中文空格与英文空格