现在我们想计算这个算式:25+37+12-9+8。在没有状态存储的情况下,我们只能用4个计算电路串联得到最终结果,这显然是不现实的。
目前我们画了很多计算电路,这些电路都有一个特点,当输入信号发生变化,输出信号会立刻变化,无法对状态进行存储。这在某些情况下会给我们的计算带来麻烦,
接下来的一系列电路,我们要给大家描述的是,如何储存电信号。
1.6.1 SR锁存器
SR锁存器(set-reset-Latch)是静态存储单元中最基本、也是电路结构中最简单的一种电路。
SR锁存器可以有两种构成方式。方式一,由两个或非门构成。方式二,由两个与非门构成。两种方式构成的SR锁存器功能相同。此处,我们以与非门构成的SR锁存器为例进行介绍。
由两个与非门组成的SR锁存器的工作原理:
从结果来看,R’变0的过程将Q重置为0,这个过程我们称之为复位(Reset)。
总结:
- 当S’为0,R’为0,电路无意义
- 当S’为0,R’为1, Q=1、Q`=0;(置位)
- 当S’为1,R’为0, Q=0、Q`=1;(复位)
- 当S’为1,R’为1, Q和Q`状态不变;
S‘输入 | R’输入 | Q输出 | Q`输出 |
---|---|---|---|
0 | 0 | 1(无意义) | 1(无意义) |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 1 | 维持不变 | 维持不变 |
1.6.2 带en输入的D锁存器
上面的SR锁存器尽管可以锁住输出状态,但是我们没法控制设置输出的时机。所以我们给这个电路加上一些其他组件。
-
电路结构:锁存器的基础上,增加一个触发信号输入端。
-
工作原理
(1)En = 0时,输出保持不变
En=0,与非门特性,G3输出S1=1,G4输出R’=1,因为S’、R’低电平有效,此处都为1,处于高电平,既不置0也不置1,输出保持不变。(2)En=1,正常SR锁存器的功能
当en=1时,与非门G3输出就是S’,与非门G4的输出就是R’,正好是之前讲过的SR锁存器的输入。3)真值特性表
1.6.3 带En输入的D锁存器
当en为1时,如果我们想将Q设为1,此时S应为1,R应为0;反之,如果我们想将Q设置为0,S应为0,R应为1。由此可得到,SR恰好为反相输入时,可以顺利的设置Q,所以我们对电路稍加改造,将S改名为D,并将其反相输入到R,如图示:
我们就得到了一个带en输入的D锁存器,其特性为:当en为高电平,Q和D的输入保持一致;当en为低电平,Q保持之前状态不变,从而起到存储作用。
1.工作原理:
(1)En=0
(2)En=1,D=0
(3)En=1,D=1
总结:当en为1时,输出Q*的值与D输入的值相同。
问题:当en为1时,D的输入直接影响Q*的输出,为了提高触发器的可靠性,增强抗干扰能力,希望触发器的次态仅仅取决于en的下降沿(或上升沿)到来时的输入信号状态。D触发器可以解决以上问题。
1.6.4 边沿触发的D触发器
D锁存器尽管可以起到保存数据的作用,但是当en信号为1时,D输入和Q输出相当于是联通的,此时如果D信号有波动,Q会跟随波动。
我们希望能得到更稳定的输出Q,不希望en高电平时Q随D波动,而是希望Q只在en信号由0变成1的一瞬间随D输入变化,其他时间都保持不变。
看下面的电路图:
其中输入C为时钟输入,添加路径为“组件——输入输出”里面的时钟输入。关于时钟的作用,我们在之后计算机组成原理里面再为大家详细介绍,现在我们可以仅仅把时钟输入当作一个普通输入来用。
- 工作原理
(1)C=0
(2)C=1
(3)C从1->0
(4)C从0->1
开启仿真后,经过实验我们得知,C信号不论是高电平还是低电平,Q都不会随D变化;==只有当C信号由0变1的一瞬间,D的值能够传递到Q。这个电路我们称为上升沿触发的D触发器==。
其实对电路稍作改变,我们还能得到下降沿触发的D触发器,但之后我们如果不做特殊说明,凡是用到D触发器,都是指上升沿触发器。
今后我们如果使用D触发器,不会再绘制该电路,而是直接使用“组件——触发器”中的D触发器。有一点需要注意,Digital软件中的D触发器,Q输入和标准触D发器是反相的,所以我们将Q`当作Q来用,如图示: