1.前置知识
明确AND,OR,XOR,NOR,NOT运算的规则
参见:E25.【C语言】练习:修改二进制序列的指定位
这里再补充一个布尔运算符:NOR,即先进行OR运算,再进行NOT运算
如下图为其数字电路的符号
注意到在OR符号的基础上,在尾部加了一个(其实由简化而来)
附:NOR的真值表
2.R-S触发器(Reset-Set)
下面采用布尔表达式推导表格
以S = 0,R = 1为例,设B点的状态为m
解:
可得到以下布尔表达式:
1 NOR m = A
C NOR 0 = m
A = C
将上述三式合并
(1 NOR m) NOR 0 = m
m的状态有且仅有两种,可以代入验证
①m = 1
(1 NOR 1) NOR 0 = 0 NOR 0 = 1 等式成立
②m = 0
(1 NOR 0) NOR 0 = 0 NOR 0 = 1 != 0 等式不成立
因此 m = 1,Q = 0
3.边沿触发的D型触发器
边沿触发的D型触发器由两个R-S触发器+时钟组成
当数据端和时钟的状态均为0时(即处于非工作状态),且Q的输出也为0,推导D点的工作状态
解:
设D点的状态为m,可得到以下布尔表达式:
0 NOR G = E
m NOR 1 = F
F = G
D = E
将上述四式合并,可得以下两式
1.(m NOR 1) AND 0 = 0
2.[(m NOR 1) NOR 0] AND 0 = 0
由1式可推出:
由于 0 AND 0 = 0 和 1 AND 0 = 0 均成立
因此 m NOR 1= 0 或 m NOR 1 = 0
得不出任何结果
由2式可推出:
[(m NOR 1) NOR 0] AND 0 = 0
由于 0 AND 0 = 0 和 1 AND 0 = 0 均成立
因此可得:
3.(m NOR 1) NOR 0 = 0
4.(m NOR 1) NOR 0 = 1
由3式可得:
m NOR 1 = 1
查NOR真值表不存在,因此舍去
由4式可得:
m NOR 0 = 0
查NOR真值表有唯一解,m = 1