Coursera:Nand2Tetris-Note1
Nand2Tetris PartⅠ笔记
目录:
- Boolean Logic 布尔逻辑
- Boolean Functions Synthesis 布尔函数合成
- Logic Gates 逻辑门
- Hardware Description Language硬件描述语言
- Hardware Simulation 硬件模拟
- Multi-Bit Buses 多位总线
- Project 1 (Q&A) 项目Ⅰ
Boolean Logic 布尔逻辑
首先基础的介绍一些布尔逻辑里面的计算/语法
1.(x AND y)
x | y | AND |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
2.(x OR y)
x | y | OR |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
3. NOT(x)
x | NOT |
---|---|
0 | 1 |
1 | 0 |
我想这些都很容易理解 其中的0/1也可以是/否或者正/负。 这具体怎么规定没有所谓 反正象征着有且仅有的两种独立的状态。
其中AND/OR/NOT都为输出结果 左侧为输入的状态。由此我们掌握了最简单的Boolean Logic的基本算式 随之我们也发现这些语法和数学计算的相似之处。
计算部分讲解
优先计算:
- e.g. NOT(0 OR (1 AND 1))=NOT(0 OR 1)=NOT(1)=0
贝尔逻辑也是根据括号里面来确定优先级
真值表与布尔函数对应: - 我们设一个Boolean Function为
f(x,y,z)=(x AND y) OR (Not(x) AND z)
然后我们就能通过枚举不同情况得到一个表格 就像上方的AND/OR/NOT语法一样:
x | y | z | f |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
- 在Boolean Logic的概念里 这个表格和上面的f(x,y,z)所传达出来的信息是完全一样的 这两者本身是等价的。
Commutative Laws 交换律
- (x AND y)=(y AND x)
(x OR y)=(y OR x)
Associative Laws 结合律
- (x AND (y AND z))=((x AND y) AND z)
(x OR (y OR z))=((x OR y) OR z)
Descriptive Laws 分配律
- (x AND (y OR z))=(x AND y) OR (x AND z)
(x OR (y AND z))=(x OR y) AND (x OR z)
De Morgan Laws
这个定律有别于上面可以类比数学的定律 它是由于Boolean Logic本身的性质而产生的
- NOT (x AND y)=NOT(x) OR NOT(y)
NOT (x OR y)=NOT(x) AND NOT(y)
掌握了这四条公式 我们就可以对几乎所有的复合Boolean Function来进行简化/变形 下面是一个例子:
NOT(NOT(x) AND NOT(x OR y))
=NOT(NOT(x) AND (NOT(x) AND NOT(y)))
=NOT((NOT(x) AND NOT(x)) AND NOT(y))
=NOT(NOT(x) AND NOT(y))
=NOT(NOT(x)) OR NOT(NOT(y))
=x OR y
或者呢 运用上面的表格与函数对应知识。当输入00/01/10/11所有的四种组合后 看对应的数值表我们也能得出这个式子到底化简后代表什么 这在逻辑处理上很有意义 可以绕开不必要的梳理。
Boolean Functions Synthesis 布尔函数合成
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Tpye To The Peak I Choose!