本文最后更新于76 天前,如有错误请发送邮件到guzhougongzuoshi@aliyun.com
从底层软硬件构建一个通用计算机
硬件计算机工程师无法赤手空拳做任何事,要用计算机去设计计算机,要用硬件模拟器去测试和调试要构建的硬件
一、布尔函数和门逻辑
布尔逻辑
1. 0和1的基本操作
计算机内部的操作基于0和1的二进制表示。这种表示非常简单且足够强大,可以实现各种复杂的计算。课程中介绍了三种最基本的布尔操作:
- 与(AND)操作:只有当两个输入都为1时,输出才为1。其真值表如下:
x | y | x AND y |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
- 或(OR)操作:只要任意一个输入为1,输出就为1,只有当两个输入都为0时,输出才为0。真值表如下:
x | y | x OR y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
- 非(NOT)操作:这是一个一元操作符,它将输入值取反,即0变为1,1变为0。其操作结果如下:
x | NOT x |
0 | 1 |
1 | 0 |
2. 组合布尔表达式
在了解了基本的布尔操作后,可以将这些操作组合起来形成更复杂的布尔表达式。课程举了一个例子:
- 计算
NOT 0 ( OR ( 1 AND 1 ))
:- 先计算括号中的部分:
1 AND 1
,结果是1。 - 将结果代入表达式:
NOT ( 0 OR 1 )
。 - 然后计算
0 OR 1
,结果是1。 - 最后计算
NOT 1
,结果是0。
- 先计算括号中的部分:
这个例子展示了如何根据运算优先级逐步评估复杂的布尔表达式。
3. 真值表与布尔函数
布尔函数可以通过两种方式表示:
- 布尔表达式:如
x AND y OR NOT x AND z
。 - 真值表:列出所有可能的输入组合及其对应的输出。例如,假设函数
f(x, y, z) = (x AND y) OR (NOT x AND z)
,其真值表如下:
x | y | z | f(x, y, z) |
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 |
真值表列出了所有可能的输入组合,并为每个组合计算出输出值。通过这种方式可以完全描述布尔函数。
4. 布尔代数的基本定律
布尔代数具有一组基本定律,它们类似于传统代数的定律。以下是几条常用的布尔代数定律:
- 交换律(Commutative Law):
x AND y = y AND x
x OR y = y OR x
- 结合律(Associative Law):
x AND (y AND z) = (x AND y) AND z
x OR (y OR z) = (x OR y) OR z
- 分配律(Distributive Law):
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’s Law):
NOT (x AND y) = (NOT x) OR (NOT y)
NOT (x OR y) = (NOT x) AND (NOT y)
5. 布尔代数中的表达式简化
通过使用布尔代数的定律,可以简化布尔表达式。例如,给定表达式 NOT (NOT x AND (NOT x OR y))
,可以通过以下步骤进行简化:
- 使用德摩根定律:
NOT (NOT x OR y) = NOT x AND NOT y
。 - 根据结合律简化:
NOT x AND NOT x AND NOT y = NOT x AND NOT y
。 - 最后使用双重否定律:将
NOT NOT x
简化为x
,得到最终结果x OR y
。
6. 真值表与简化验证
课程还提到了一种验证布尔表达式简化结果的方法,即通过构建真值表。在通过布尔代数定律进行简化后,可以构建真值表,比较简化前后的表达式是否在所有输入条件下都得到了相同的结果。如果真值表一致,则证明简化是正确的。