AND、OR、NOT 这三种基本逻辑门,在布尔代数原理之上构成所有数字电路的构建块。
布尔代数:数字电路设计的基石
布尔代数定义了电路如何操作 TRUE 与 FALSE。本文涵盖 AND/OR/NOT 三个原语,以及恒等律、吸收律和德摩根定理。
TL;DR: 布尔代数是用 AND、OR 和 NOT 操作 TRUE/FALSE 值的形式系统。它的定律——恒等律、吸收律、分配律、互补律和德摩根定理——让你可以把一个布尔表达式变换成等价的更简形式,而这种简化在硅片上直接对应更少的门和更小的传输延迟。
19 世纪中叶,乔治·布尔(George Boole)将”思想的代数”形式化,如今它已是每一颗数字芯片的运行数学。无论是微处理器、存储单元还是图形流水线,最终都会归约到他所定义的 AND、OR、NOT 三个操作。
对于工程师或计算机科学家,掌握布尔定律绝非纸上谈兵。化简一个布尔表达式意味着删除门、消除连线、从传输延迟中抠出皮秒。如果你能把数学化简下来,你就能把硅片化简下来。
三个原语操作:AND、OR、NOT
无论数字逻辑多复杂,都建立在三个原语操作之上。理解它们就等于掌握数字设计的字母表。在 digisim.io 中,它们由分立元件表示,你可以把它们任意连接,搭出任意复杂的逻辑。

1. AND 操作
只有当所有输入都为 TRUE 时,输出才是 TRUE (1)。把它当成一种严格要求:在重型机械的安全系统里,可能要求”启动按钮”被按下且”安全防护”已合上,电机才能运转。在电路上,AND 门相当于串联连接——必须每个开关都闭合,电流才能流通。
- 布尔表达式:
- 元件名称: AND
2. OR 操作
只要至少有一个输入为 TRUE,输出就为 TRUE (1)。在家庭安防系统中,只要”前门被打开”或”后窗被砸破”,报警器就应触发。在电路上,OR 门相当于并联连接——任意一个开关闭合,电流就能流通。
- 布尔表达式:
- 元件名称: OR
3. NOT 操作(反相器)
输出是单一输入的逻辑取反。输入为 HIGH 则输出为 LOW,反之亦然。在电路上,NOT 门(或反相器)翻转信号电平,把高有效信号转换为低有效信号,或反之。
- 布尔表达式: (或 )
- 元件名称: NOT
在初学这些门时,一个干净、独立的环境——可以让你拨动输入并看着真值表逐步活起来——非常有价值。
技术规格:真值表
真值表是数字逻辑最基本的”计分卡”。它把每一种可能的输入组合映射到对应的输出。
AND 门真值表
| 输入 A | 输入 B | 输出 Y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
OR 门真值表
| 输入 A | 输入 B | 输出 Y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
NOT 门真值表
| 输入 A | 输出 Y |
|---|---|
| 0 | 1 |
| 1 | 0 |
布尔代数有哪些定律?
定义好基本操作后,我们就可以探究让我们能够变换、化简逻辑表达式的定律了。这些不是抽象规则——而是一种电路变换。每条定律都对应一种具体的硬件优化:删除一个门、消除一根连线,或减小传输延迟。

恒等律与零律
这些定律定义了变量与常数 0、1 之间的关系。你可以在 digisim.io 中用 CONSTANT 与 CONSTANT_ZERO 元件验证它们。
- 恒等律(Identity Law): 变量与对应运算的”恒等元素”组合,保持不变。
- 与 0 OR: —— 把 OR 门一个输入接地,对输出毫无影响。
- 与 1 AND: —— 把 AND 门一个输入接 VCC,对输出毫无影响。
- 零律(Null/Annihilation Law): 变量与”支配元素”组合,结果就是该支配元素。
- 与 1 OR: —— 如果 OR 门有一个输入恒为 HIGH,无论 A 是什么,输出都为 HIGH。
- 与 0 AND: —— 如果 AND 门有一个输入恒为 LOW,无论 A 是什么,输出都为 LOW。
互补律与幂等律
这些定律刻画变量与自身或自身取反之间的关系。
- 幂等律(Idempotent Law): 变量与自身组合不产生改变。
- —— 把同一信号接到 OR 门两个输入,等价于一根直连。
- —— 把同一信号接到 AND 门两个输入,等价于一根直连。
- 互补律(Complement Law): 变量与自身取反组合,结果是常数。
- —— 信号要么 HIGH 要么 LOW,所以两个 OR 输入中必有一个为 1。
- —— 信号不可能同时既 HIGH 又 LOW,所以 AND 输出必为 0。
交换律、结合律与分配律
对于任何熟悉传统代数的人,这些定律大多都很熟悉。
- 交换律(Commutative): 以及 —— AND 或 OR 门输入的顺序不影响结果。
- 结合律(Associative): 以及 —— 多个门可以任意分组级联,结果不变。
- 分配律(标准形式): —— 与普通代数完全一致,你可以随意因式分解或展开表达式。
但布尔代数还有一条实数代数中并不成立的分配律:
这一条乍看反直觉。在普通数学中,,而 ,二者并不相等。但在布尔逻辑的二进制世界里,这个等式成立。
直觉上的关键:如果 ,两边都立即等于 1。如果 ,两边都化为 。不要像处理二次式那样去”FOIL”展开右边——布尔代数没有平方项的概念,因为 。这第二条分配律是在”积之和”(SOP)与”和之积”(POS)之间转换的核心,而它们正是任何布尔函数的两种规范表示形式。
重武器:吸收律与德摩根定理
下面这些定律可以删除整项、并对表达式做激进的重构。它们是真实电路化简的主力。
吸收律:消除冗余
吸收律允许你删除整组门而不改变行为。
第一个形式的直觉: 在 为真,或 与 都为真时为真。但如果 已经为真,那么无论 是什么整个表达式都为真。 这一项完全冗余。在硬件上,这意味着删掉一个 AND 门和一个 OR 门,代之以一根直连。
还有一个鲜为人知的变体,有时被称为共识定理(Consensus Theorem):
第三项 () 是冗余的,因为前两项在所有情形下已经覆盖了它。靠肉眼分析很难一眼看出,但卡诺图(Karnaugh map)能让它一目了然。
德摩根定理:分配取反
奥古斯都·德摩根(Augustus De Morgan)的定理告诉我们如何把一个 NOT 操作分配到 AND 与 OR 上,从而对取反表达式进行重构。
- 第一定律: —— NAND 门等价于输入取反的 OR 门。
- 第二定律: —— NOR 门等价于输入取反的 AND 门。
在电路意义上,这种对偶性是现代芯片设计的根本。在 CMOS 工艺中,NAND 与 NOR 门在物理上比标准的 AND 与 OR 更小、更快,所以设计者经常用德摩根定理把逻辑转换为纯 NAND 或纯 NOR 实现。如需更深入的内容,请参阅我们专门的 德摩根定律实战 文章。

在 digisim.io 上仿真:从理论到可见证据
读懂这些定律是一回事,亲眼看到它们生效又是另一回事。让我们在 digisim.io 画布上证明吸收律 。
一步步验证
- 打开仿真器: 在 digisim.io/circuits/new 新建项目。
- 放置输入: 拖两个 INPUT_SWITCH 到画布上。用 TEXT 工具标注为 ‘A’ 和 ‘B’。
- 搭建复杂版本:
- 放置一个 AND 门。把 ‘A’ 和 ‘B’ 接到它的输入。
- 放置一个 OR 门。把 AND 门的输出接到它的一个输入,把 ‘A’ 直接接到另一个输入。
- 把 OR 门的输出接到一个 OUTPUT_LIGHT。
- 搭建化简版本:
- 直接把 ‘A’ 接到第二个 OUTPUT_LIGHT 上。
- SimCast 时刻: 用 SimCast 功能录下你的操作。把 ‘A’ 和 ‘B’ 切换四种组合。你会看到两盏灯始终一致。无论 ‘B’ 怎么动,第一盏灯只关心 ‘A’。
示波器验证:观察传输
为了真正理解未化简电路的”代价”,在画布上放一个 OSCILLOSCOPE_8CH。把通道 1 接到输入 ‘A’,通道 2 接到你那个复杂 OR 门的输出。
切换 ‘A’ 时,你会在示波器波形上看到一段微小的延迟。这就是传输延迟()。每个门都为信号传播添加一点时间。把 化简为单一的 ,就消除了两个门(AND 和 OR)的延迟,使总 从 直降到零。在高速设计中,这些节省直接转化为更高的可达时钟频率。

Security Alarm 模板展示了多个门(AND、OR、NOT)在真实场景中如何协作——是练习这些化简定律的实用沙盒。
真实世界应用:化简的力量
这并不只是课堂练习里省下几个门的事。在现实系统中,化简直接转化为更便宜、更快、更省电的硬件。
例 1:高速存储地址译码
在经典的 Intel 8086 架构中,CPU 用地址线选择要与哪片存储芯片通信。让某片芯片被使能的逻辑叫做地址译码器。如果译码器逻辑没有优化,“使能”信号到达 RAM 芯片的时间就会变长,逼迫 CPU 插入”等待状态”——本质上是因为逻辑太慢而干等。通过对译码电路应用布尔定律,工程师能够削减出足够的延迟,从而让整套系统跑在更高的时钟频率上。
例 2:ALU 状态标志
算术逻辑单元(ALU)是 CPU 的计算核心。每次运算后,它会在 FLAGS_REGISTER 中设置状态标志(如零、负、溢出)。其中”溢出”(Overflow)标志的逻辑出了名地复杂,牵扯到最高有效位的进位入与进位出。
如果你不做化简就用原始逻辑去搭它,你会得到一团巨大的门级网络。借助德摩根定律和分配律,设计者可以把这套逻辑压缩成几个高速 NAND 门,确保运算一结束标志就立刻就绪。
课程相关主题
在 digisim.io 上继续探索数字逻辑时,以下相关主题会加深你的理解:
速查表:所有定律一览
| 定律 | OR 形式 | AND 形式 |
|---|---|---|
| 恒等律 | ||
| 零律 | ||
| 幂等律 | ||
| 互补律 | ||
| 交换律 | ||
| 结合律 | ||
| 分配律 | ||
| 吸收律 | ||
| 德摩根 | ||
| 双重否定 |
你来动手:把知识落地
布尔代数是连接抽象想法和可工作硅片的语言。这些定律就是你雕刻逻辑、剔除冗余、打造既高效又正确的设计所需的数学工具。
来一个挑战:取表达式 。
- 用分配律把公因子提出来: 。
- 应用互补律 () 和恒等律 (),得到 。
- 再次因式分解: 。(最后一步用到吸收律变体 。)
- 打开 digisim.io,把原始的 3-min项电路与化简后的 2 门版本都搭出来。
- 用 OSCILLOSCOPE 比较二者的传输延迟。