计算机组成 - 布尔代数

这是我在授课的时候总结的,所以显得会比较稚嫩,内容也不太全,但是没时间再花心思整理这个内容了,只能说做题遇见不会的在说吧。

里面的知识还是很有意思的,因为当学完以后就会发现,布尔代数其实跟计组没啥关系,准确的说,布尔代数是数字电路的基础,而我们计组一旦进入到了使用 verilog 的阶段,那么就是大量的行为建模而不是结构建模了。后面搭建各种 CPU,用的都不是布尔代数的思想,也不需要其作为基础。

另外复习突然发现,忘了与或式是啥了,就是这个

F=AB+AˉBˉF = AB + \bar{A}\bar{B}

那么或与式就是这个

F=(A+B)(Aˉ+C)F = (A+B)(\bar{A} + C)

一、反演定律

如果将一个式子的互换(注意不改变计算顺序,也就是转换成的时候需要加括号),1 和 0 转换,文字相互转换,那么就可以得到这个公式的反,举个例子

F=AˉBˉ+CD{F} = \bar A \bar B + CD

那么他的反演式,就是

Fˉ=(A+B)(Cˉ+Dˉ)\bar{F} = (A + B)(\bar C + \bar D)

我们注意到反演直接就给等号左侧取反了,这就是对的,也就是说,原来能够使 FF 得 1 的输入向量,现在能使 Fˉ\bar F 得 0 ,,原来能够使 FF 得 0 的输入向量,现在能使 Fˉ\bar F 得 1。可以说是一个很神奇的公式了,神奇到我之前都没有发现他的威力。

那么为什么会有这种结果呢?可以粗浅的理解一下,如果把 FF 展开成一个极小项范式,这个范式按照上面的操作来一遍,就可以得到 Fˉ\bar F极大项范式,这个可以从真值表中直接得出,反之亦然。对于没有化成标准范式的式子,其实都是可以推广的。


二、对偶定理

这个其实就是不交换原变量和反变量,其他跟反演定律一致,举个例子

F=AˉBˉ+CD{F} = \bar A \bar B + CD

他的对偶式就是

F=(Aˉ+Bˉ)(C+D)F^* = (\bar A +\bar B)( C + D)

但是 FF^*FF 之间就没有这么明显的关系了,这是因为这个式子探究的不是函数间的关系,而是恒等式(等号两侧是平等的)之间的关系,正确的用法是

F=A(B+C)=AB+ACF= A(B+C)=AB + AC

然后由对偶定理,我们可以得到另一组恒等式,有

F=A+BC=(A+B)(A+C)F^* = A + BC = (A + B)(A + C)


三、一个重要公式

AB+AˉC+BCDEF...=AB+AˉCAB + \bar AC + BCDEF... = AB + \bar AC

如果有两项中的因子互为反变量 A,AˉA,\bar A, 而且这两项中的其他因子 B,CB,C 在后面中的某一项中同时出现 $BCDEF... $​,那么这一项可以消去。​

证明方式如下:

AB+AˉC+BCDEF...=AB+AˉC+(A+Aˉ)BCDEF...=AB+ABCDEF...+AˉC+AˉBCDEF...=AB+AˉCAB + \bar AC + BCDEF... = AB + \bar AC + (A + \bar A)BCDEF... = AB + ABCDEF... + \bar AC + \bar ABCDEF...=AB + \bar AC


四、公式化简和卡诺图

公式化简的最基本的方法就是合并补项联立,其中以补项联立最为反人类思维方式。但是这两种都可以很好用卡诺图解决。

对于 SR 寄存器的状态转移公式,有如下式

Qn+1=SˉRˉQn+SRˉQˉn+SRˉQnQ^{n+1} = \bar S\bar RQ^n + S\bar R\bar Q^n + S \bar R Q^n

SR=0S\cdot R = 0

可列出卡诺图如下:

00 01 11 10
0 0 0 x 1
1 1 0 x 1

可以看出根据卡诺图很容易就可以写出表达式

Qn+1=S+RˉQnQ^{n+1} = S + \bar R Q^n

其中 x 是因为对于 S,R 均为 1 的情况,不会出现,所以是 x。

那么我们在看一遍正经的化简过程:

Qn+1=SˉRˉQn+SRˉQˉn+SRˉQn+SR(Qn+Qˉn)+SRˉQn=S+RˉQnQ^{n+1} = \bar S\bar RQ^n + S\bar R\bar Q^n + S \bar R Q^n + SR(Q^n + \bar Q^n) + S\bar RQ^n=S +\bar R Q^n

可以看到,增添的三项其中两项对应的是 x,另一项是画圆圈的时候重叠的项,所以可以看出,补项联立被处理的很好。


五、门的实际作用

这里讨论的是一类电路设计的特殊情况,即与门或门的作用。

对于与门而言,有一种可以控制数据流通的作用,当我们将与门的两个输入中的一个看做使能端的时候,就会发现,与门的输出就跟另一个输入(我们叫它输入)有了密切联系,当使能端为 1 的时候,输出就等于输入,当使能端为 0 的时候,输出就是 0。是一个很好的控制门。

对于或门而言,有一种综合多输入的作用,当其他输入为 0 的时候,那么输出就只跟唯一那个输入有关了,也是很好的性质。

什么叫做高阻态,其实高阻态可以理解为断路(电路如果断了,就是很高的电阻)