Lec 2 组合逻辑设备和布尔算术
组合逻辑设备(combinational device)是一种电路器件满足:
- 一个或多个输入
- 一个或多个输出
- 功能规范(functional specfication),必须明确定义所有可能输入组合对应的输出值。
- 时序规范(Timing Specification),必须指定传播延迟,从输入稳定到输出稳定的最长时间上限。确保器件在
内完成计算并输出有效结果
上述四个标准统称为静态准则,是所有组合逻辑器件必须满足的基本要要求。

由小器件组合成大器件
一组互相连接的电路元件,当且仅当满足以下三条时,整体仍是一个组合器件:
- 每个元件本身都是组合器件;
- 每个输入都恰好连接到某一个输出,或连接到固定常量 0/1(不能悬空、不能多个输出冲突地驱动同一根线);
- 电路中不存在有向环(directed cycle),即没有反馈回路。
踩坑:为什么不能有环?若某个输出反馈回前级(例如反相器输出接回自身输入),电路可能永远无法稳定(持续振荡),也就不存在确定的传播延迟,功能规范随之失效。
满足这三条后,整体的功能规范可由各子器件函数复合得到;整体的传播延迟 = 从输入到输出的最长路径上各器件
之和(关键路径)。
时序规范: 与
- 传播延迟
:从输入有效到输出有效所需时间的上界(最坏情况)。处理器以时钟频率 运行,时钟周期 必须 关键路径的 ,否则采样到的是无效值。 - 污染延迟
(contamination delay):从输入变为无效到输出开始变为无效所需时间的下界。它保证“旧的有效输出还能维持多久”。组合电路里暂时用不到,但在时序电路中至关重要(与保持时间相关,见 lec6)。
功能规范,有不少方法用于详述组合逻辑设备的功能规范。我们将使用两种系统性方法:真值表和布尔表达式(boolean expression)
Outline
- 布尔算术
- 从布尔算术到门电路
- 总结
布尔算术
基本公理:
- 恒等律: a · 1 = a ; a + 0 = a
- 吸收律: a · 0 = 0 ; a + 1 = 1
- 互补律:
; - 交换律
- 结合律
- 分布律
- 德摩根定律:
;
对偶原理:任何一个成立的布尔表达式,把 0 和 1 对换,把 AND(·)和 OR(+)互换,结果仍然是一个成立的表达式。
等价与规范型
给定一个真值表,很容易派生一个等价的布尔表达式:写出一个乘数项求和形式,其中每一项覆盖到真值表输出中的1

这是唯一的,但可能存在更加简单的表达式
从布尔算术到门电路
逻辑图通过门电路和连线的电路示意图形式来表示布尔表达式。
基本的逻辑门: 与或非

注意,与或非是通用的,可以实现任何组合逻辑函数。为什么?
我们可以用与或非门,实现任何SOP(乘项之和,Sum-of-Products)布尔表达式,然而,我们可以通过简化布尔表达式(使用布尔代数规则、卡诺图等),来减少所需的门数量。
最小乘项之和,是一个最少可能数量的 AND 和 OR 操作。不像规范形式,最小乘项之和不是唯一,可能有多个SOPs。
化简的核心工具——约简律(reduction):
无关项(don't care):若真值表中某个输入变量在其余位固定时不影响输出,则可在合并时把它“吃掉”。例如
多级逻辑的权衡:SOP 是两级(AND→OR)实现,但不一定门最少。例如
是最小 SOP(需 7 个门),但因式分解后
只需 3 个门。代价是层数增加 → 延迟可能变大。这就是“面积 vs. 延迟”的权衡,本课交给综合工具处理。
逻辑优化
逻辑优化是指将高层次的电路功能描述(如布尔代数表达式或 Bluespec 代码),结合标准门电路库中的物理门(如 AND、OR、MUX 等)以及优化目标(如面积、延迟、功耗),通过综合工具自动合成出一个满足特定的电路实现。最终的输出是一个由这些标准门构成、经过优化的电路设计。

其他通用门电路

异或门(XOR)、与非门(NAND)、或非门(NOR)是唯一的。
其中与非门、或非门也是通用的(universal)。为什么 NAND 通用? 只需用它造出 NOT/AND/OR 即可:
- NOT:把 NAND 的两个输入接在一起,
; - AND:NAND 之后再接一个 NOT,
; - OR:对两个输入先各取反再 NAND,由德摩根
。
NOR 同理(对偶)。所以芯片可以只用一种门搭出任意逻辑。

标准单元库
每个门电路有其物理特性,比如

一些发现,当前技术(CMOS),反相器更快更小;时延和面积随着输入数量的增加而增加。
总结
逻辑优化是一项非常复杂的任务,涉及布尔表达式简化、在包含多种逻辑门的标准单元库中进行映射,并在面积、延迟和功耗等多个维度之间进行权衡(如最小化面积-延迟-功耗乘积)。由于对非微小电路手工完成这些优化几乎不可行,硬件设计人员通常使用硬件描述语言编写电路,并依赖综合工具自动生成经过优化的电路实现。
任何组合(布尔)函数都可以通过真值表或布尔表达式(由二进制常量以及 AND、OR、NOT 组成的布尔代数)来描述。任何组合逻辑函数都可以表示为“与或和”(Sum-of-Products, SOP)形式,并用三层逻辑门(非门、与门、或门)实现。通过布尔简化(如求最小的 SOP 或进行多层优化)可以得到更简单的电路。在将布尔函数映射为逻辑门时存在大量设计权衡,因此我们通常使用综合工具来寻找优化后的电路实现。