From Nand To Tetris 从与非门到俄罗斯方块

2、P1 W1 U1.1 布尔逻辑

2019-07-18  本文已影响0人  shazizm

如果本次课程对应的 Coursera 的视频打不开,可以点击下面链接
P1W1U1.1 - Boolean Logic

这几节课,主要铺垫了一下计算机世界的基础知识,布尔值、布尔运算、布尔函数、以及如何用逻辑门(也叫与非门)来表示布尔函数。因为课程并不用真实物理世界的东西(比如晶体管、电阻啊等)去实现老师说的“Hack”电脑。最后我们会用课程提供的一些列软件模拟工具(硬件模拟软件)以及硬件描述语言(HDL),去模拟实现物理硬件。

布尔值、布尔运算是计算机运行的基础原理,可以比喻成计算机的“魂”或“神”,而计算机的“形”在历史上有过机械的齿轮、开关电磁阀、电子管、晶体管等来实现基础原理。

“形”万变而“神”不变。所以 开始先从基础原理讲起,本节分六个内容:

一、布尔值 - Boolean Values ( 0 和 1)
二、布尔操作 - Boolean Operations ( 0 和 1 怎么运算)
三、布尔表达式 - Boolean Expressions (多种运算的组合)
四、布尔函数 - Boolean Functions (变量的方式表示 运算)
五、布尔恒等式 - Boolean Identities (在变量的方式下简化运算)
六、布尔代数 - Boolean Algebra (运用恒等式简化和运算来得出结果)





\color{red}{布尔值}:是“真” True 或“假” False 中的一个,计算机里用 1 或 0 来代表。

Boolean Values 布尔值





\color{red}{布尔操作}: 下图有三种布尔值之间(例如x、y)的操作 “与、或、非”

与 (AND) :如图“与”运算法则: x 和 y 都为1时,“x与y”的结果就是1,否则为0。
或 (OR):如图“或”运算法则:x 和 y只要有一个为1时,“x或y”的结果就是1,否则为0。
非 (NOT):如图“非”运算法则:布尔值取反。

Boolean Operations 布尔操作





\color{red}{布尔表达式}:简单说就是上面的布尔操作的一个组合版,可以将布尔表达式拆开来一步一步进行布尔操作的运算,如下图最终结果为0。

Boolean Expressions 布尔表达式





\color{red}{布尔函数}:简单说就是把上面布尔表达式里的布尔值(0、1),设成变量(例如下图:x、y、z),用来表示一种表达式的所有可能的情况(例如下图:将x、y、z的所有组合的可能)和结果(例如下图:f)。最后也可以用一张真值表 Truth table 来表示这个布尔函数

通过每行xyz的布尔值,可以布尔运算出对应每行 “ f ” 的结果
运算出每行所有布尔函数的 “ f ” 结果后, 我们就有了对应 上面布尔函数 的 Truth table 真值表





\color{red}{布尔恒等式}:在未来布尔代数时,用来方便简化运算的几种恒等法则。

Commuatative Laws 交换律、Associative Laws 结合律、Distributive Laws 分配率、De Morgan Laws 德摩根律(对偶率)

布尔代数,在 P1 W1 U1.1 布尔逻辑 这个教程里讲的并不全。在做转换的时候参考了下面网站(有自动简化工具 和 更全的布尔恒等式)。
http://electronics-course.com/boolean-algebra

~(Not)、*(And)、+(Or)





\color{red}{布尔代数}:如下示范了一个例子,在没进行布尔运算前,通过布尔恒等式已经将第一个行复杂的布尔函数简化成了x OR y,然后再去计算就简单了许多。

每行都运用了一些恒等式的规律,最终简化成 x OR y





\color{red}{布尔函数 =转=> 真值表}:我们可以通过带入各种可能的布尔数值,得出f,并最终可以画出整个真值表。

但如何通过真值表 =得出=> 布尔函数呢?





但如何通过真值表 =得出=> 布尔函数呢?下节课继续讲。(因为之后我们都要通过课程已给出的真值表,去推导出我们的布尔函数,然后再用硬件的与非门来表达 布尔函数。)

上一篇下一篇

猜你喜欢

热点阅读