组合逻辑电路的理论与实现
1. 组合逻辑的理论基础
1.1 对称与单调函数
- 对称函数 :逻辑函数若在其变量的任何排列下都保持不变,则称其为完全对称函数;若仅部分变量的排列不改变函数,则存在部分对称性。
- 单调函数 :若逻辑函数能重写为积之和表达式,且每个变量仅以原形式或反形式出现,则称其为单调或单态函数。若积之和表达式中所有变量都以原形式出现,则函数为单调递增;若都以反形式出现,则为单调递减。
| 函数 | 名称 | 对称性 | 单调性 |
|---|---|---|---|
| (c = xy ∨ xz ∨ yz) | 3 - 输入多数函数 (MAJ) | 完全对称 | 递增 |
| (s = xyz ∨ x \overline{y} \overline{z} ∨ \overline{x} y \overline{z} ∨ \overline{x} \overline{y} z) | 3 - 输入异或函数 (XOR) | 完全对称 | 否 |
| (h = x ∨ yz = xy ∨ xz) | 无名函数 | 部分对称 | 递增 |
| (m = xz ∨ yz) | 2 - 路多路复用器 (MUX) | 否 | 否 |
| (n = xy ∨ xz) | 无名函数 | 否 | 是 |
| (o = wx ∨ yz = \overline{w} y ∨ \overline{w} z ∨ x \overline{y} ∨ x \overline{z}) | 无名函数 | 部分对称 | 递减 |
1.2 阈值函数
许多组合函数通过计算逻辑 1 的变量数量,并根据该数量是否超过某个固定值在输出端产生 0 或 1。所有阈值函数都是完全对称和单调的。例如或函数、与函数及其反函数。多数函数 (maj) 及其反函数少数函数 (min) 在加法器和 Muller - C 元件中有应用,maj 和 min 门的输入数量总是奇数且不少于 3。
1.3 完全门集
若一组逻辑运算符能通过无限供应其元素实现任意组合逻辑函数,则称其为功能完全门集。
完全门集示例
- ({and, or, not})
- ({and, not})
- ({or, not})
- ({nand})
- ({nor})
- ({xor, and})
- ({maj, not})
- ({min})
- ({mux})
- ({inh})
非完全门集示例
- ({and, or})
- ({xor, eqv})
- ({maj})
1.4 多输出函数
之前的示例均为单输出函数,当产生多个比特的向量而非单个标量信号时,称为多输出函数。例如全加器是一个重要的多输出函数,它将两个二进制数字和一个进位输入相加,得到一个和位和一个进位输出。
1.5 逻辑最小化
逻辑最小化的目标是在速度和能量约束下,为给定逻辑函数找到最经济的电路。经济标准取决于目标技术,如全定制集成电路关注门和布线占用的硅面积,现场可编程逻辑和半定制集成电路更关注门等效数量。
逻辑复杂度和实现成本的度量
- 文字数量 :通常作为逻辑最小化的标准,文字指逻辑变量或其反变量的出现。
- 冗余文字和项 :表达式中可消除而不改变真值表的文字为冗余文字,冗余文字和项会导致逻辑网络中的冗余门和门输入,影响电路尺寸、负载电容、性能和能量消耗,还会给可测试性带来问题。
最小化与无冗余表达式
- 最小表达式一定是无冗余的,但无冗余表达式不一定是最小的。
- 最小表达式不唯一,例如函数 (d) 有两种最小积之和表达式和一种最小和之积表达式:
- (d = x \overline{y} ∨ xz ∨ \overline{y} z)
- (d = xy ∨ \overline{x} z ∨ \overline{y} z)
- (d = (x ∨ y ∨ z)(\overline{x} ∨ \overline{y} ∨ z))
多级与两级逻辑
- 某些逻辑函数在重写为积之和或和之积表达式时,所需文字数量会随输入变量数量呈指数增长。例如 3 - 输入异或函数有 12 个文字,增加一个输入 (t) 后,文字总数达到 32 个。
- 多级电路通常比两级电路更快、更节能。将两级逻辑方程转换为多级逻辑方程的过程称为因式分解(或结构化),反之称为扁平化。
graph LR
A[两级逻辑方程] -->|因式分解| B[多级逻辑方程]
B -->|扁平化| A
多输出与单输出最小化
分别对多输出函数的每个输出变量进行最小化,通常不会得到整个网络的最经济解决方案。例如,通过复用多个比特的合取项,可以减少文字数量和门等效数量。
手动与自动逻辑优化
在超大规模集成电路设计中,手动逻辑优化不实用。对于现实世界的多输出多级网络,多目标优化问题(面积、延迟、能量)的解空间太大,难以手动探索,且解决方案高度依赖于难以在逻辑设计阶段预测的细节。
2. 组合逻辑的电路实现方案
2.1 随机逻辑
随机逻辑指由逻辑门组成的网络,其布局和布线乍看可能是任意的,但并非不确定。标准单元和门阵列是在超大规模集成电路中实现随机逻辑的典型方式。与随机逻辑不同,平铺逻辑的布局具有明显的规律性,子电路由少量相邻的布局块组装而成。
2.2 可编程逻辑阵列 (PLA)
PLA 基于两级逻辑,将所有操作打包到两个相邻的矩形区域,分别称为与平面和或平面。每个输入变量以原形式和反形式遍历整个与平面。
- 输入变量参与乘积的方式 :
- 原形式:1
- 反形式:0
- 不参与: -
- 乘积项进入和项的方式 :
- 原形式:1
- 不参与:0
PLA 的一般布局为两对相互作用的网格,布局紧凑,且可由一组预定义的布局块轻松组装以实现任何逻辑函数。PLA 逻辑最小化的标准与随机逻辑不同,由于其宽度由输入和输出变量数量固定,PLA 最小化软件需通过减少合取项数量来最小化布局高度。
2.3 只读存储器 (ROM)
在 PLA 中,与平面和或平面均可配置;而在 ROM 中,编程仅限于或平面。固定的与平面由内置地址解码器承担,它从输入变量计算所有可能的最小项。当确实需要对输入进行全解码时,ROM 是一个有吸引力的选择,但对于每个额外的输入或地址位,其大小会翻倍,因此在其他情况下吸引力有限。
2.4 阵列乘法器
两级逻辑对于加法、乘法等函数非常不经济,因为积之和表达式中包含许多无法合并的最小项。早期的集成电路设计师将平铺方法扩展到多级逻辑,特别是各种形式的乘法器。电路组织仿照小学所学的经典乘法过程,将乘数和被乘数放在两组正交的平行线上,在每个交点进行一位数乘一位数的乘法,并在网格上分布加法操作。
2.5 各种电路实现方案对比
| 电路类型 | 特点 | 适用场景 | 缺点 |
|---|---|---|---|
| 随机逻辑 | 布局和布线乍看任意,由标准单元和门阵列实现 | 一般的组合逻辑电路 | 缺乏规律性,设计和布局可能较复杂 |
| 可编程逻辑阵列 (PLA) | 基于两级逻辑,布局紧凑,由预定义布局块组装 | 输入和输出较多的组合逻辑函数 | 对于小函数有输入取反、信号分布和电压恢复的开销 |
| 只读存储器 (ROM) | 编程限于或平面,有内置地址解码器 | 需要全输入解码的情况 | 每增加一个输入或地址位,大小翻倍 |
| 阵列乘法器 | 扩展平铺方法到多级逻辑,仿照经典乘法过程 | 加法、乘法等函数 |
graph LR
A[随机逻辑] -->|输入输出多| B[PLA]
A -->|需全解码| C[ROM]
A -->|加法乘法等| D[阵列乘法器]
2.6 实际应用中的选择建议
在实际应用中,选择合适的电路实现方案需要综合考虑多个因素,以下是一些具体的操作步骤和建议:
1.
明确需求
:
- 确定逻辑函数的输入输出数量、复杂度以及对速度、面积和功耗的要求。
- 例如,如果是简单的逻辑函数,随机逻辑可能就足够;如果输入输出较多且需要灵活配置,PLA 可能更合适。
2.
评估复杂度
:
- 分析逻辑函数的特点,判断是否需要全输入解码、是否有大量无法合并的最小项等。
- 对于需要全解码的情况,ROM 是一个选择;对于加法、乘法等复杂函数,阵列乘法器可能更优。
3.
考虑技术限制
:
- 考虑目标技术的特点,如硅面积、门等效数量等。
- 在全定制集成电路中,硅面积是关键因素;在现场可编程逻辑中,门等效数量更重要。
4.
进行性能评估
:
- 对不同方案进行性能评估,包括速度、功耗、可测试性等。
- 多级电路通常速度更快、功耗更低,但可测试性可能较差。
5.
做出选择
:
- 根据以上步骤的分析结果,选择最适合的电路实现方案。
3. 总结
组合逻辑电路在数字电子领域有着广泛的应用,其理论基础和电路实现方案是设计和优化数字系统的关键。通过对对称与单调函数、阈值函数、完全门集等理论知识的理解,以及对随机逻辑、PLA、ROM 和阵列乘法器等电路实现方案的掌握,我们可以根据具体需求选择合适的方案,实现高效、经济的数字电路设计。在实际应用中,需要综合考虑逻辑复杂度、实现成本、性能要求等多个因素,做出最优的选择。同时,随着技术的不断发展,新的电路实现方案和优化方法也在不断涌现,我们需要持续关注和学习,以适应不断变化的设计需求。
graph LR
A[组合逻辑电路理论基础] --> B[电路实现方案选择]
B --> C[实际应用与优化]
C --> D[高效数字电路设计]
以下是一个综合的表格,总结了组合逻辑电路的各个方面:
| 方面 | 详细内容 |
| — | — |
| 理论基础 | 对称与单调函数、阈值函数、完全门集、多输出函数、逻辑最小化 |
| 电路实现方案 | 随机逻辑、可编程逻辑阵列 (PLA)、只读存储器 (ROM)、阵列乘法器 |
| 选择因素 | 逻辑复杂度、实现成本、速度、功耗、可测试性、目标技术 |
| 优化方法 | 逻辑最小化、多级逻辑转换、多输出函数复用 |
希望通过本文的介绍,能帮助读者更好地理解组合逻辑电路的理论和实现,在实际设计中做出更明智的选择。
超级会员免费看
1196

被折叠的 条评论
为什么被折叠?



