《逻辑与计算机设计基础(原书第5版)》——3.2 工艺映射

简介: 本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第3章,第3.2节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2 工艺映射

在开始介绍功能模块之前,如果我们能够首先介绍工艺映射(technology mapping)将是有益的。工艺映射是将逻辑图或网表转化成可以用工艺实现的新的图或网表的过程。在这一节,我们将介绍与非门和或非门单元,以及将与、或、非描述映射为与非和或非描述中的一种。在当前可用的晶体管技术中,与非门和或非门要比与门和或门更小、更快。正如我们第2章描述的,与非和或非函数都是功能完备的,所以任意布尔函数都可以通过仅使用其中一个来实现。在本章的后面,我们将展示如何通过映射到更复杂的功能模块上来实现逻辑函数。在第5章,我们介绍工艺映射在可编程技术中的实现。
先进的工艺映射 在原书配套网站上的补充资料中,有各种使用不同单元类型集合的工艺映射,这些单元包含多种门类型。
一种与非门技术由一个单元类型集合组成,每一个类型包括一个有固定输入数的与非门。单元有许多特性,如第5章描述的那样。由于这些特性可能比输入给定为n的一个单元类型更多,为简单起见,我们根据输入n(n=1,2,3,4)的大小,假设有4种单元类型。这4种单元类型,分别称为反相器(n=1)、二输入与非门、三输入与非门和四输入与非门。
用与非门实现布尔函数的一种简便方法,是从优化由与门、或门和反相器组成的电路逻辑图开始。然后,通过将逻辑图转换为与非门和反相器的方法,将逻辑函数转换为与非逻辑。这样的转换也适用于或非门单元。image

给定一个已经优化的由与门、或门和反相器组成的电路,通过下列步骤可以将其变成由与非门(或者或非门)组成的电路,这些门电路的扇入没有限制:
1)用与非门(或非门)和反相器替换原电路中的与门和或门,形成新的等效电路,如图3-3a和图3-3b所示。
2)消除所有反相器对。
3)在不改变逻辑函数的前提下:a)将所有位于电路输入或与非门(或非门)输出和被驱动与非门(或非门)输入之间的反相器“推”到被驱动与非门(或非门)的输入,在这个步骤中,要尽可能地消除串联成对的反相器。b)用一个驱动所并联反相器输出的单独的反相器代替这些并联的反相器。c)重复步骤a)和b),直到电路输入或与非门(或非门)输出和与非门(或非门)输入之间,最多只有一个反相器为止。
在图3-3c中说明了将一个反相器推过“点”的方法,输入到点的输入线上的那个反相器用从点输出的所有输出线上的反相器来代替。根据下面的布尔代数性质,可以得到如图3-3d所示的消除了反相器的电路:
X=X
下面的例子说明了与非门的上述实现过程。
例3-2 用与非门实现
用与非门实现下面已经优化的函数:
F=AB+C+ D+E
图3-4a中给出了用与门、或门和反相器实现该函数的情况。图3-4b执行了第1)步,将每个与门和或门用图3-3a所示的与非门和反相器组成的等效电路替代。为了便于解释,反相点和反相器上都注有标签。在第2)步中,通过将反相器对(1,2)和(3,4)消去,从而得到图3-4d所示的对应与非门的直接连接。如图3-4c所示,反相器5被“推”过X点,并分别与反相器6和7成对消去,这样就可以得到如图3-4d所示的相关与非门的直接连接。由于反相器8和9不能和其他反相器成对,只能如图3-4d所示那样保留到最后,整个转换过程到此结束。接下来的例子演示用或非门来实现这个过程。 ■
例3-3 或非门实现
下面采用或非门来实现例3-2中的布尔函数:
F=AB+C+ D+E

image

图3-5a给出了用与门、或门和反相器实现该函数的情况。图3-5b执行了第1)步,将每个与门和或门用图3-3b所示的或非门和反相器组成的等效电路替代。反相点和反相器上都注有标签。在第2)步中,反相器1被“推”过X点,从而分别与反相器2和3成对消去,输入线D上的一对反相器也可以消去,而输入线A、B、C和输出线F上的单个反相器则必须保留,最终得到的映射电路如图3-5c所示。

image

例3-2中映射电路的门输入成本是12,而例3-3中门输入的成本为14,所以用与非门实现开销较少。同时,与非门实现中最大串联级数为3,而或非门实现中最大串联级数为5。假设门的延迟是一样的,那么信号从输入到输出,门级数较少的与非门电路的最大延迟是或非门的0.6倍。所以,对于这种特殊情况,与非门电路无论是成本还是延迟,都优于或非门电路。
某种工艺映射的结果明显与原始电路或映射前的方程形式有关。例如,一个输出端为或门的电路,采用与非门映射后会在输出端得到一个与非门,而采用或非门映射,则会在输出端得到一个被或非门驱动的反相器。由于有这些差异存在,所以积之和式被认为更适合使用与非门,而和之积式则被认为更适合使用或非门,以消去输出端的反相器。然而,到底选择哪一种映射方式,取决于能否在给定的优化准则下得到最好的整体性能。 ■

相关文章
|
前端开发 算法 Unix
面向前端设计的DFT基础介绍(一)——MBIST存储器内建自测试
本文介绍了MBIST存储器内建自测试的中,MBIST的特点,如何测试,Tessent加入的测试逻辑的结构等基础知识,继而以几个实例的图示和解读,描述了RTL设计满足MBIST设计的前置需求。
44762 3
面向前端设计的DFT基础介绍(一)——MBIST存储器内建自测试
|
9月前
|
人工智能 自动驾驶 安全
什么是AGI
通用人工智能(AGI)指具备或超越人类智能的机器系统,能跨领域学习、推理和解决问题。其核心特点包括跨领域能力、自主学习与推理、类人思维模式及自适应性。目前AGI仍处早期阶段,但大模型和多模态技术正推动其从理论走向应用,如自动驾驶、科学研究和工业自动化等。尽管前景广阔,AGI仍面临技术瓶颈、伦理安全和资源需求等挑战。未来,AGI有望重塑产业和社会生活方式。
6396 2
|
Java 程序员 测试技术
【Qt底层之内存管理机制】Qt 对象 父子关系、运行时机制与高效编程技巧
【Qt底层之内存管理机制】Qt 对象 父子关系、运行时机制与高效编程技巧
758 2
|
机器学习/深度学习 算法
魔搭案例开源获奖
赵卫东老师在第七届CCF开源创新大赛教学案例赛道中荣获特等奖。他的案例设计注重理论与实践结合,采用阿里魔搭平台和英特尔OpenVINO等先进技术,提升课程的实用性与前瞻性。该案例已开源,并在教学中取得显著成效。赵卫东老师一直坚持“学以致用、产教融合”的理念,多次在教学比赛中获奖。
410 7
|
缓存 前端开发 JavaScript
探索现代前端开发:从框架选择到最佳实践
【10月更文挑战第11天】探索现代前端开发:从框架选择到最佳实践
320 0
|
前端开发 开发者 异构计算
CSS进阶-CSS动画关键帧
【6月更文挑战第15天】CSS的`@keyframes`创建细腻动画,定义样式变化阶段以增强网页互动性。通过`animation`属性应用动画,如`fadeIn`示例。常见问题包括动画结束状态、卡顿和浏览器兼容性,解决办法涉及优化关键帧、使用硬件加速和添加前缀。进阶技巧包括多步骤动画和控制播放状态。例如,背景色渐变动画展示了颜色随时间变化的效果。学习和实践关键帧动画,提升Web开发技能。
491 7
|
存储 安全 Linux
从基础到高级:Linux用户与用户组权限设置详解
从基础到高级:Linux用户与用户组权限设置详解
1430 2
|
机器学习/深度学习 算法
【决策树】一文看懂图解决策树原理:信息熵、条件熵与信息增益
【决策树】一文看懂图解决策树原理:信息熵、条件熵与信息增益
|
编译器 C语言 C++
C++ 中使用 `<bits/stdc++.h>` 的利与弊
C++ 中使用 `<bits/stdc++.h>` 的利与弊
1237 2
|
存储 安全 C++
【C++14保姆级教程】lambda 初始化捕获 new/delete 消除
【C++14保姆级教程】lambda 初始化捕获 new/delete 消除
635 0