Skip to content

Lec 2 组合逻辑设备和布尔算术

组合逻辑设备(combinational device)是一种电路器件满足:

  • 一个或多个输入
  • 一个或多个输出
  • 功能规范(functional specfication),必须明确定义所有可能输入组合对应的输出值。
  • 时序规范(Timing Specification),必须指定传播延迟,从输入稳定到输出稳定的最长时间上限。确保器件在tPD​内完成计算并输出有效结果

上述四个标准统称为静态准则,是所有组合逻辑器件必须满足的基本要要求。

image-20250423160210914

由小器件组合成大器件

一组互相连接的电路元件,当且仅当满足以下三条时,整体仍是一个组合器件:

  1. 每个元件本身都是组合器件
  2. 每个输入都恰好连接到某一个输出,或连接到固定常量 0/1(不能悬空、不能多个输出冲突地驱动同一根线);
  3. 电路中不存在有向环(directed cycle),即没有反馈回路。

踩坑:为什么不能有环?若某个输出反馈回前级(例如反相器输出接回自身输入),电路可能永远无法稳定(持续振荡),也就不存在确定的传播延迟,功能规范随之失效。

满足这三条后,整体的功能规范可由各子器件函数复合得到;整体的传播延迟 = 从输入到输出的最长路径上各器件 tPD 之和(关键路径)。

时序规范:tPDtCD

  • 传播延迟 tPD:从输入有效到输出有效所需时间的上界(最坏情况)。处理器以时钟频率 fCLK 运行,时钟周期 tCLK=1/fCLK 必须 关键路径的 tPD,否则采样到的是无效值。
  • 污染延迟 tCD(contamination delay):从输入变为无效到输出开始变为无效所需时间的下界。它保证“旧的有效输出还能维持多久”。组合电路里暂时用不到,但在时序电路中至关重要(与保持时间相关,见 lec6)。

功能规范,有不少方法用于详述组合逻辑设备的功能规范。我们将使用两种系统性方法:真值表和布尔表达式(boolean expression)

Outline

  • 布尔算术
  • 从布尔算术到门电路
  • 总结

布尔算术

基本公理:

  • 恒等律: a · 1 = a ; a + 0 = a
  • 吸收律: a · 0 = 0 ; a + 1 = 1
  • 互补律: a+a=1aa=0
  • 交换律
  • 结合律
  • 分布律
  • 德摩根定律: a·b=a+ba+b=a·b

对偶原理:任何一个成立的布尔表达式,把 0 和 1 对换,把 AND(·)和 OR(+)互换,结果仍然是一个成立的表达式。

等价与规范型

给定一个真值表,很容易派生一个等价的布尔表达式:写出一个乘数项求和形式,其中每一项覆盖到真值表输出中的1

image-20250423170748779

这是唯一的,但可能存在更加简单的表达式

从布尔算术到门电路

逻辑图通过门电路和连线的电路示意图形式来表示布尔表达式。

基本的逻辑门: 与或非

image-20250423172446745

注意,与或非是通用的,可以实现任何组合逻辑函数。为什么?

我们可以用与或非门,实现任何SOP(乘项之和,Sum-of-Products)布尔表达式,然而,我们可以通过简化布尔表达式(使用布尔代数规则、卡诺图等),来减少所需的门数量。

最小乘项之和,是一个最少可能数量的 ANDOR 操作。不像规范形式,最小乘项之和不是唯一,可能有多个SOPs。

化简的核心工具——约简律(reduction)ab+ab=a。它表明:当两个乘项只在一个变量上取值相反、其余完全相同时,可合并消去该变量。

无关项(don't care):若真值表中某个输入变量在其余位固定时不影响输出,则可在合并时把它“吃掉”。例如 (C,B,A)=(0,0,1)(0,1,1) 输出都为 1,则这两项合并为 CA(消去了 B),而不必写成 CBA+CBA。这正是手工最小化(以及卡诺图 K-map)的依据。本课规模较小(3~4 变量),用代数变换手算即可。

多级逻辑的权衡:SOP 是两级(AND→OR)实现,但不一定门最少。例如

F=AC+BC+AD+BD

是最小 SOP(需 7 个门),但因式分解后

F=(A+B)(C+D)

只需 3 个门。代价是层数增加 → 延迟可能变大。这就是“面积 vs. 延迟”的权衡,本课交给综合工具处理。

逻辑优化

逻辑优化是指将高层次的电路功能描述(如布尔代数表达式或 Bluespec 代码),结合标准门电路库中的物理门(如 AND、OR、MUX 等)以及优化目标(如面积、延迟、功耗),通过综合工具自动合成出一个满足特定的电路实现。最终的输出是一个由这些标准门构成、经过优化的电路设计。

image-20250423174541145

其他通用门电路

image-20250423174936174

异或门(XOR)、与非门(NAND)、或非门(NOR)是唯一的。

其中与非门、或非门也是通用的(universal)。为什么 NAND 通用? 只需用它造出 NOT/AND/OR 即可:

  • NOT:把 NAND 的两个输入接在一起,aa=a
  • AND:NAND 之后再接一个 NOT,ab=ab
  • OR:对两个输入先各取反再 NAND,由德摩根 ab=a+b

NOR 同理(对偶)。所以芯片可以只用一种门搭出任意逻辑。

image-20250423181334708

标准单元库

每个门电路有其物理特性,比如

image-20250423181855433

一些发现,当前技术(CMOS),反相器更快更小;时延和面积随着输入数量的增加而增加。

总结

逻辑优化是一项非常复杂的任务,涉及布尔表达式简化、在包含多种逻辑门的标准单元库中进行映射,并在面积、延迟和功耗等多个维度之间进行权衡(如最小化面积-延迟-功耗乘积)。由于对非微小电路手工完成这些优化几乎不可行,硬件设计人员通常使用硬件描述语言编写电路,并依赖综合工具自动生成经过优化的电路实现。

任何组合(布尔)函数都可以通过真值表或布尔表达式(由二进制常量以及 AND、OR、NOT 组成的布尔代数)来描述。任何组合逻辑函数都可以表示为“与或和”(Sum-of-Products, SOP)形式,并用三层逻辑门(非门、与门、或门)实现。通过布尔简化(如求最小的 SOP 或进行多层优化)可以得到更简单的电路。在将布尔函数映射为逻辑门时存在大量设计权衡,因此我们通常使用综合工具来寻找优化后的电路实现。