当前位置: 代码网 > 科技>电脑产品>交换机 > 电子技术——CMOS 逻辑门电路

电子技术——CMOS 逻辑门电路

2024年08月01日 交换机 我要评论
本节我们介绍如何使用CMOS数字电路实现组合逻辑电路。

电子技术——cmos 逻辑门电路

logo

在本节我们介绍如何使用cmos电路实现组合逻辑函数。在组合电路中,电路是瞬时发生的,也就是电路的输出之和当前的输入有关,并且电路是无记忆的也没有反馈。组合电路被大量的使用在当今的数字逻辑系统中。

晶体管的开关模型

cmos数字电路使用nmos和pmos晶体管作为开关使用。之前,我们知道,mos可以工作在三极管区(相当于开关闭合),也可工作在截止区(相当于开关断开)。

特别的,当一个nmos作为闭合的开关的时候,此时栅极电压处于高电压,相当于一个从漏极到源极直接相当小的一个电阻 r o n r_{on} ron r d s r_{ds} rds ,通常处在高电压 v d d v_{dd} vdd 状态,表示逻辑1。相反,当栅极为低电压的时候,此时mos截止,表示逻辑0,没有电流流过mos,如图:

晶体管的开关模型
而pmos则工作在相反的状态,栅极高电压,mos管截止,栅极低电压,mos管导通,如图:

晶体管的开关模型
我们观察到mos管的栅极通常是逻辑控制输入节点,通常作为逻辑门的输入端。

cmos反相器

在了解mos开关的工作方式之后,先让我们制作一个反相器。正如其名,反相器可以逆转输入的逻辑,即输入0输出1,反之亦然。因此该功能可以使用布尔函数表示为:

y = x ‾ y = \overline{x} y=x

其抽象电路模型和实现电路如图所示:

cmos反相器
它由一对cmos组成,栅极相连,作为输入端 x x x ,漏极相连作为输出端 y y y 。当 x = 1 x=1 x=1 的时候,即 v x = v d d v_x = v_{dd} vx=vdd ,此时pmos截止,而nmos导通,输出 y = 0 y = 0 y=0 。当 x = 0 x=0 x=0 的时候,pmos导通而nmos截止,此时输出 y = 1 y=1 y=1

cmos逻辑门的一般结构

由上面的反相器我们能总结出cmos逻辑门的一般结构,反相器由一个nmos 下拉晶体管 和一个pmos 上拉晶体管 组成。cmos逻辑门由两个网络组成:一是 下拉网络pdn 由nmos组成 ,二是 上拉网络pun 由pmos组成。如图:

cmos逻辑门的一般结构
这两个网络都受到输入变量的控制,做出相反的行为,上图是一个三变量输入的逻辑门,当输入变量满足pdn条件的时候,此时pdn网络导通,而pun网络截止,输出 y = 0 y=0 y=0 ,反之亦然。

因此,我们可以根据不同的pdn和pun的实现,来实现与门、或门等一些基本的门电路,下图是一些pdn网络的例子:

pdn
在图(a)我们发现当 a = 1 a=1 a=1 的时候, q a q_a qa 导通此时 y = 0 y = 0 y=0 ,同样的对于 b = 1 b = 1 b=1 q b q_b qb 导通此时 y = 0 y = 0 y=0 ,因此图(a)是一个或门的pdn实现,可以表示为:

y ‾ = a + b \overline{y} = a + b y=a+b

或是:

y = a + b ‾ y = \overline{a + b} y=a+b

图(b)必须两个nmos全部导通才能输出,是一个与门结构,可以表示为:

y ‾ = a b \overline{y} = ab y=ab

或是:

y = a b ‾ y = \overline{ab} y=ab

最后一个例子图©是一个组合逻辑,可以表示为:

y ‾ = a + b c \overline{y} = a + bc y=a+bc

或者等效于:

y = a + b c ‾ y = \overline{a + bc} y=a+bc

接下来我们考虑一些pun的一些例子,如图:

pun
图(a)当 a = 0 a = 0 a=0 或是 b = 0 b = 0 b=0 的时候输出 y = 1 y = 1 y=1 表示为:

y = a ‾ + b ‾ y = \overline{a} + \overline{b} y=a+b

图(b)当 a = 0 a=0 a=0 并且 b = 0 b= 0 b=0 的时候导通,表示为:

y = a ‾   b ‾ y = \overline{a} \ \overline{b} y=a b

而图©表示为:

y = a ‾ + b ‾   c ‾ y = \overline{a} + \overline{b} \ \overline{c} y=a+b c

在学习完pdn和pun理论之后,我们就可以准备搭建我们的门电路了。首先,为了方便,我们不再使用模拟电路中的mos符号,而是使用一种更加方便的数字电路mos表示符号,如图:

数字mos
上图中左边的符号是模拟mos表示,而右边是数字mos表示,对于pmos我们发现在栅极的地方有一个小圈,这表示当输入是低电压的时候才导通。除此之外,数字mos忽略了漏极栅极之分。

或非门nor电路

首先我们考虑一个cmos的或非门电路:

y = a + b ‾ = a ‾   b ‾ y = \overline{a + b} = \overline{a} \ \overline{b} y=a+b=a b

等式中间给出了pdn实现,等式右边给出了pun实现,将两个实现组合在一起,我们得到:

或非门电路

与非门nand电路

与非门电路可以表示为:

y = a b ‾ = a ‾ + b ‾ y = \overline{ab} = \overline{a} + \overline{b} y=ab=a+b

等式中间给出了pdn实现,等式右边给出了pun实现,将两个实现组合在一起,我们得到:

与非门电路

一个更复杂的门电路

考虑下面的组合布尔表达式:

y = a ( b + c d ) ‾ y = \overline{a(b+cd)} y=a(b+cd)

因为pdn是整体反相,因此可以直接给出pdn实现,对于pun则是变量反相,可以通过德·摩根定律展开表达式:

y = a ‾ + b ‾ ( c ‾ + d ‾ ) y = \overline{a} + \overline{b}(\overline{c} + \overline{d}) y=a+b(c+d)

给出实现:

复杂的逻辑组合
需要注意的是,有时候并不总是可以通过对偶律来获得两个网络的实现。对于以上情况,需要更加复杂的布尔逻辑推导。

异或门xor电路

另一个重要的逻辑电路是异或门电路,表示为:

y = a b ‾ + a ‾ b y = a \overline{b} + \overline{a}b y=ab+ab

我们观察到给出 y y y 我们可以先考虑pun,但不幸的是,表达式不是由每个变量的反相值构成,因此我们需要额外的反相器,如图的pun:

pun
如上图,左边的 a ‾ \overline{a} a 和右边的 b ‾ \overline{b} b 都需要先反相才能输入到pun中,因此需要额外的两个反相器,对于pdn,通过对偶变换可以得到:

y ‾ = a b + a ‾   b ‾ \overline{y} = ab + \overline{a} \ \overline{b} y=ab+a b

对应的pdn实现为:

pdn
同样需要两个额外的反相器。则此异或门电路总共需要12个晶体管。

有趣的是,上图中两个pdn和pun网络不是对偶网络,实际上,pdn和pun网络对偶并不是必要条件。

总结

  1. pdn网络可以通过关于非互补变量的 y ‾ \overline{y} y 的表达式得到,若表达式中存在互补变量,需要额外的输入反相器。
  2. pun网络可以通过关于互补变量的 y y y 的表达式得到,若表达式中存在非互补变量,需要额外的输入反相器。
  3. pdn网络可以将pud网络进行对偶得到,反之亦然。
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com