COMS门电路的设计及其优化--以异或门为例

  CMOS电路因其在在功耗、抗干扰能力方面具有不可替代的优势,以及在设计及制造方面具有简单易集成的优点而得到广泛应用。如今,在大规模、超大规模集成电路特别是数字电路中早已普遍采用CMOS工艺来来进行设计与制造。

一、CMOS门电路设计规则

  静态的CMOS电路的设计有着一定的规则,而正是这些规则使得其电路的设计变得非常简单。如图所示,COMS电路中最主要的部分是上拉网络PUN(Pull Up Net)和下拉网络PDN(Pull Down Net),这两个网络内部结构是对称互补的,或者说是对偶的。所谓的对称互补,即是指下拉网络中全是NMOS,而上拉网络中全是PMOS,两者数量相同;并且,下拉网络中组成“与”逻辑的MOS管,在上拉网络中对应的为“或”逻辑,在下拉网络中组成“或”逻辑的MOS管,在上拉网络中对应的为“与”逻辑。由于互补,上拉网络与下拉网络不会同时导通。

  由于结构是互补对称的,CMOS电路的功能可以由下拉网络或者上拉网络单独来确定。对于下拉网络,先根据各个NMOS的串并联关系列出表达式,最后整体取反一下(取反是因为下拉网络为真时输出是低电平0);对于上拉网络,先将各个输入取反,再根据各个PMOS的串并联关系写出表达式。其中,串联为与,并联为或。

  设计的过程则刚好反过来,先根据功能确定逻辑表达式,再选择下拉网络或者上拉网络中的一个作为切入点,根据与或关系确定MOS管的串并联,将其中一个网络画出来,最后根据互补关系画出另外一个网络。

二、CMOS异或门的设计举例

  下面以异或门为例,讨论一下CMOS异或门的设计方法以及其中的一些技巧。

(1)确定功能。可以根据真值表、时序图等来确定。下表为异或门的真值表,当两输入信号相同时,输出为低电平;输入不同时,输出为高电平。


A


B


F


0


0


0


0


1


1


1


0


1


1


1


0

(2)确定逻辑表达式。异或门的逻辑表达式 :

(3)画出下拉或上拉网络。以下拉网络为切入点,这时要先对表达式处理一下,变为某个式子的非的形式,因为下拉网络算出来的表达式最后要取反一下:

  这样,就可以根据大非号下面的式子来搭建PDN电路:

  如图所示,由于A和B是与的关系,所以连接A和B的MOS管NM3和NM4要串联,和也是如此。由于与是或的关系,所以由NM3、NM4组成的串联和NM5和NM6组成的串联最后要并联在一起。至此下拉网络设计完成。

(4)根据互补关系确定另外一个网络。

这一步就比较简单了,在PDN中A和B对应的MOS管是串联的,那么在PUN中就变成并联的,即PM3和PM4;和同样;最终将两个并联组合串联起来。

(5)将PDN和PUN组合起来,加上电源和地,如图:

  图中左侧是两个反相器,用于产生非信号。

  为了便于分析,图中的连线都是用标号代替的,下图是一个完整的电路:


  至此,一个完整的CMOS异或门电路设计完成。当然,后续还会有MOS管宽长比、掺杂等方面的设计,这些不在这里讨论。

三、另一种设计思路

  以上是根据表达式:

来进行设计的,对上式进行变换可以得到:

根据这个式子可以设计出与上例不同的电路:  

该电路与前一种电路实现相同功能,只是在结构上PUN和PDN与前一种电路互换了一下,没有本质上的区别。

四、优化设计

  下面介绍一种优化设计方法。

  继续对异或门的逻辑表达式进行变换,得到:

这里,将A与B的非作为一个整体,用一个独立的与非门来实现,电路图如图所示:

  可以看到,前面两种电路都用了12个MOS管,而这个电路只用了10个MOS管就实现了异或门的功能。可别小看减下来的这两个MOS管,在大规模集成电路设计中,这种门电路的使用是非常普遍的,若是一个系统中能有百十个这样的门电路,那这种优化在减小芯片面积和降低成本方面将会为产品带来非常大的优势。

  下面分析一下这样优化的原理。前两种电路中,逻辑表达式都包含了A、B、A非、B非四种信号,但是电路的原始输入只有A和B两种,因此要搭建产生A非和B非的电路,也就是搭建两个非门。而每个非门需要两个MOS管,所以产生A非和B非需要额外的四个MOS管。加上实现逻辑表达式功能的8个MOS管,一共12个。

  而在第三种电路中,变化逻辑表达式消去了A非和B非,用A与B的非来代替,只需额外设计一个与非门,4个MOS管。由于A与B的非作为一个信号进行运算,相当于逻辑表达式中只有三个输入,一共需要6个管子,加起来一共10个。

  

  也就是说,在逻辑表达式中,若果能够将信号合并使得输入端出现尽可能少的信号种类,那么就有可能减少整个门电路的MOS管个数。

时间: 2024-08-06 02:13:52

COMS门电路的设计及其优化--以异或门为例的相关文章

转载 使用触发器的置位和复位端口对设计进行优化

在设计时通过选取不同的寄存器模型也可以优化组合逻辑 在一个给定的器件中,大部分FPGA供应商都提供了各种触发器单元.对于一些给定的逻辑功能,综合工具通常都能采用触发器的置位和复位端口来实现,这样就大大减少了查找表的负担.举例来说,一个设计逻辑电路如图2-11所示.在这个例子中,综合工具就可以选择触发器的置位端口来实现组合逻辑功能,如图2-12所示.这样就是减少了逻辑门的消耗,同时还提高了数据路径的速度.同样的道理,我们来看如图2-13所示的逻辑功能,可以通过将输入信号直接连接到触发器的复位端口来

数据库索引设计与优化

这篇是计算机中数据库设计类的优质预售推荐<数据库索引设计与优化>. 盖国强.姜承尧.金官丁.叶金荣.童家旺一众国内数据库界巨腕争相作序|支付宝.网易.云和恩墨联DB掌门连袂推荐的造是什么书吗? 编辑推荐 中国数据库界几大势力云集于这本旷世奇作,没读过咋好意思和DBA同行打招呼 蚂蚁(原支付宝)数据库团队资深专家携成长回忆与技术历程倾情献上最优质翻译 本书旨在--通过设计适用于现代硬件的索引,来提升关系型数据库的性能 软硬件发展让数据库性能被忽视,但数据处理量增长更快,全新索引优化设计才能根治随

「mysql优化专题」优化之路高级进阶——表的设计及优化(6)

正文:表的设计及优化(真技术文) 优化①:创建规范化表,消除数据冗余 数据库范式是确保数据库结构合理,满足各种查询需要.避免数据库操作异常的数据库设计方式.满足范式要求的表,称为规范化表,范式产生于20世纪70年代初,一般表设计满足前三范式就可以,在这里简单介绍一下前三范式. 通俗的给大家解释一下(可能不是最科学.最准确的理解) 第一范式:属性(字段)的原子性约束,要求属性具有原子性,不可再分割: 第二范式:记录的惟一性约束,要求记录有惟一标识,每条记录需要有一个属性来做为实体的唯一标识. 第三

6.MySQL优化---高级进阶之表的设计及优化

转自互联网整理. 优化之路高级进阶--表的设计及优化 优化①:创建规范化表,消除数据冗余 数据库范式是确保数据库结构合理,满足各种查询需要.避免数据库操作异常的数据库设计方式.满足范式要求的表,称为规范化表,范式产生于20世纪70年代初,一般表设计满足前三范式就可以,在这里简单介绍一下前三范式. 通俗的给大家解释一下(可能不是最科学.最准确的理解) 第一范式:属性(字段)的原子性约束,要求属性具有原子性,不可再分割: 第二范式:记录的惟一性约束,要求记录有惟一标识,每条记录需要有一个属性来做为实

uva 1608 不无聊的序列(附带常用算法设计和优化策略总结)

uva 1608 不无聊的序列(附带常用算法设计和优化策略总结) 紫书上有这样一道题: 如果一个序列的任意连续子序列中都至少有一个只出现一次的元素,则称这个序列时不无聊的.输入一个n个元素的序列,判断它是不是无聊的序列.n<=200000. 首先,在整个序列中找到只出现一次的元素ai.如果不能找到,那它就是无聊的.不然,就可以退出当前循环,递归判断[1, i-1]和[i+1, n]是不是无聊的序列.然而怎么找ai很重要.如果从一头开始找,那么最差情况下的时间复杂度就是O(n^2)的.而如果从两头

常用算法设计和优化策略(本蒟蒻不定期更新)

常用算法设计和优化策略(本蒟蒻不定期更新) 下面是紫书上讲的常用算法设计策略和优化策略: 分治法:将问题分成相同的独立子问题求解.拆分出的问题必须有最优子结构性质(子问题求出的是最优解) 动态规划.本质是:对于一个问题,通过划分阶段,定义状态与状态间的关系,来分解问题.利用单阶段问题之间的联系,或者同一阶段状态之间的联系,一个一个阶段往下决策,最终解决问题. 拆分出的问题必须满足最优子结构性质和无后效性(当前阶段以前的状态不会影响以后的状态,只与当前阶段有关).动归的目的是避免重叠子问题.递推和

大牛是怎么思考设计SQL优化方案的?

今天我们看看,大牛是怎么思考设计MySQL优化方案的,在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程.很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已. MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据

互联网级监控平台之内存存储的设计和优化

上两篇文章我们介绍了时序数据库Influxdb在互联网级监控系统下的应用: 互联网级监控系统必备-时序数据库之Influxdb技术 互联网级监控系统必备-时序数据库之Influxdb集群及踩过的坑 在我们监控平台V1.0和V2.0版本的演进过程中,设计上,我们在监控引擎端引入了内存存储的理念,即监控数据内存槽. 为什么需要一个内存存储来做监控数据的内存槽,它的应用场景是什么? 一. 从实际应用场景出发 首先,我们看一个实际的监控图表:配置中心服务的TPM 横轴是时间,纵轴是数值.每分钟一个点,当

响应式web设计的优化

在响应式网页的设计过程中,其中也会涉及到一些用户体验方面的问题和弊端,需要进一步的优化. (1)减轻Javascript库负载 对于移动端来说,jQuery表现的太过厚重,而现在针对移动端的状态来说,有jQuery Mobile.YUI.XUI等可供选择的框架. (2)减少HTTP请求次数 移动端相比较PC端有一个特殊的限制需要考虑到,就是用户的网络流量是有限的.这时候针对这些页面内部的部分操作,可以使用Ajax异步请求来完成,针对短期内不会变化的一些数据,可以使用服务器端缓存.前端缓存等机制来