概要: 布尔代数是使用 AND、OR、NOT 等运算处理二值逻辑变量的形式系统。恒等律、吸收律、分配律、互补律和德摩根定律可以在保持函数不变的前提下改变表达形式。更简的表达式可作为实现候选,但单元数量、延迟、功耗、冒险和面积必须在映射到目标技术后评估。
George Boole 在 19 世纪中叶建立的代数,后来成为数字逻辑设计的理论基础之一。在布尔抽象层,处理器、存储器和图形硬件中的组合函数可用 AND、OR、NOT,或其他函数完备基来表示;模拟行为、时序、状态和物理实现还需要其他模型。
对于工程师或计算机科学工作者,布尔变换是一项实用设计技能。它可以揭示冗余条件、公共子表达式和替代极性,但字面量最少的表达式不一定对应布局后最优的电路;综合库、扇入、重汇聚路径、布线、负载、时序约束、可测试性和功耗目标都会影响最终结果。
三种基本运算:AND、OR、NOT
AND、OR 和 NOT 构成函数完备集:任意有限布尔函数都可以用它们表示。因此,它们是很有价值的教学基础;实际物理单元库还会提供 NAND、NOR、XOR、多路复用器、复合门、查找表和时序单元。DigiSim 以分立元件表示这些运算,可将其连接成更大的教学电路。

1. AND 操作
只有当所有输入都为 TRUE 时,输出才是 TRUE(1)。作为逻辑示例,一条命令可以要求 start_request 与 guard_closed 同时有效。真实机械安全功能必须采用基于风险评估、具备容错能力且符合适用标准的安全额定硬件;一个双输入门并不构成安全设计。在理想触点模型中,串联常开触点表现为 AND,因为所有触点都必须闭合,电流才能流通。
- 布尔表达式:
- 元件名称: AND
2. OR 操作
只要至少有一个输入为 TRUE,输出就为 TRUE(1)。例如,当 door_open OR window_open 为真时,可以置位逻辑报警请求。在理想触点模型中,并联常开支路表现为 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)之间转换的核心,而它们正是任何布尔函数的两种规范表示形式。
进阶恒等式:吸收律与德摩根定理
以下定律可以删除整项并重构表达式,是实际电路化简中的常用工具。
吸收律:消除冗余
吸收律可在不改变稳定真值表的前提下移除冗余布尔项。
第一个形式的直觉: 在 为真,或 与 同时为真时为真。只要 已经为真,结果就不再依赖 。在独立的门级实现中,该表达式可以化简为来自 的连接;实现工具仍须处理扇出、缓冲、时序以及中间项的其他使用者。
还有一个较少提及的变体,称为共识定理(Consensus Theorem):
对于稳态布尔函数,第三项()是冗余项,因为前两项已经覆盖对应的全部 1。不过,在异步或对冒险敏感的实现中,可以保留或加入该共识项以抑制静态冒险。因此,“逻辑冗余”并不总是等于“物理上无用”。
德摩根定理:分配取反
奥古斯都·德摩根(Augustus De Morgan)的定理给出了如何把 NOT 运算分配到 AND 与 OR 上,从而对取反表达式进行重构。
- 第一定律: —— NAND 门等价于输入取反的 OR 门。
- 第二定律: —— NOR 门等价于输入取反的 AND 门。
在电路意义上,这种对偶性是极性感知逻辑变换的核心。静态 CMOS 库通常以反相 NAND 或 NOR 级再接反相器来实现 AND 或 OR;相对面积和延迟取决于扇入、晶体管尺寸、驱动能力、负载及经过表征的单元库。在相同扇入下,CMOS NAND 往往比 NOR 更有利,因为 NOR 的上拉网络串联了 p 沟道器件;但技术映射后,二者都不保证始终最小或最快。有关详细说明,参见专题文章 德摩根定律实战。

在 DigiSim 中验证布尔恒等式
A、B 的四种输入组合可以穷举验证二变量吸收恒等式 。这项实验验证的是仿真模型中的真值表,并不是对物理时序或硅实现的证明。
分步验证
- **打开仿真器:**在 DigiSim.io/logic/new 新建项目。
- **放置输入:**将两个 INPUT_SWITCH 拖到画布,并使用 TEXT 工具分别标注为
A和B。 - 搭建未化简版本:
- 放置一个 AND 门,将
A和B接到其输入端。 - 放置一个 OR 门,将 AND 门的输出接到一个输入端,并将
A直接接到另一个输入端。 - 将 OR 门的输出接到一个 OUTPUT_LIGHT。
- 搭建化简版本:
- 将
A直接接到第二个 OUTPUT_LIGHT。
- **比较全部表行:**遍历 A、B 的四种组合并记录两个输出。每一行的输出都必须相同;表达式化简为 A 后,B 不得再影响结果。
示波器验证:观察传播过程
若要检查当前仿真模型所表示的时序,可在画布上放置 OSCILLOSCOPE_8CH,将通道 1 接到输入 A,通道 2 接到复杂 OR 网络的输出。
如果所选元件建模了传播延迟,可以比较逻辑门网络与直接路径的响应。把 化简为 会移除该路径上的两级逻辑,但不会使物理延迟变为零:互连、缓冲器、源电阻、负载、转换时间以及所需输出单元仍然存在。时钟频率必须依据映射后设计的时序分析确定,不能把若干通用门延迟直接相加后得出。

Security Alarm 模板展示了多个门(AND、OR、NOT)在实际场景中的协作方式,可用于练习这些化简定律。
实际应用:化简的作用
布尔化简为实现工具提供了更多候选形式。根据目标技术和约束,变换后的表达式可能减少逻辑、共享公共项、改善时序或降低开关活动,也可能需要在不同目标之间作出权衡。
例 1:高速存储地址译码
地址译码器组合地址信号与控制信号,以选择一个存储器或外设目标。译码延迟占用接口时序预算;根据处理器和存储器协议,延迟过大可能需要延长周期、加入等待状态或改用其他实现。布尔因式分解只是其中一个设计输入;扇出、可编程逻辑资源、板级传播延迟、存储器访问时间和信号完整性同样会决定结果。
例 2:ALU 状态标志
算术逻辑单元(ALU)常生成零、负、进位和有符号溢出等状态标志。对于二进制补码加法,有符号溢出可以通过操作数与结果的符号关系,或最高有效位的进位输入与进位输出异或来检测;具体定义必须明确操作和标志约定。
这些标志并非“瞬时”产生,其稳定时间取决于算术结构、逻辑深度、布线、负载与寄存方式。德摩根定律和分配律可以提供等价形式,但是否采用 NAND 网络、是否更快或面积更小,仍须依据目标单元库和时序分析判断。
课程相关主题
以下主题可用于进一步学习 DigiSim.io 中的数字逻辑:
速查表:所有定律一览
| 定律 | OR 形式 | AND 形式 |
|---|---|---|
| 恒等律 | ||
| 零律 | ||
| 幂等律 | ||
| 互补律 | ||
| 交换律 | ||
| 结合律 | ||
| 分配律 | ||
| 吸收律 | ||
| 德摩根 | ||
| 双重否定 |
实践:将代数化简落实为电路
布尔代数连接了功能规范与候选逻辑结构。它可以在二值逻辑层证明等价性;候选实现能否满足完整设计要求,还需通过综合、时序分析、电气分析与验证来判定。
可按以下步骤化简表达式 。
- 用分配律把公因子提出来:。
- 应用互补律()和恒等律(),得到 。
- 再次因式分解:。(最后一步用到吸收律变体 。)
- 在 DigiSim.io 中分别搭建原始的 3 个最小项电路与化简后的双门版本。
- 用 OSCILLOSCOPE 比较仿真模型中的传输延迟,并说明该结果为何不能直接预测物理实现的延迟。



