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

文章介绍了CMOS电路如何实现组合逻辑功能,重点讨论了晶体管的开关模型,CMOS反相器的构造以及CMOS逻辑门的一般结构。通过NMOS和PMOS的工作原理,展示了如何构建或非门、与非门和异或门等基本逻辑门电路,并强调了PDN和PUN网络在实现逻辑功能中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

Logo

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

晶体管的开关模型

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

特别的,当一个NMOS作为闭合的开关的时候,此时栅极电压处于高电压,相当于一个从漏极到源极直接相当小的一个电阻 RonR_{on}RonrDSr_{DS}rDS ,通常处在高电压 VDDV_{DD}VDD 状态,表示逻辑1。相反,当栅极为低电压的时候,此时MOS截止,表示逻辑0,没有电流流过MOS,如图:

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

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

CMOS反相器

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

Y=X‾ Y = \overline{X} Y=X

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

CMOS反相器
它由一对CMOS组成,栅极相连,作为输入端 XXX ,漏极相连作为输出端 YYY 。当 X=1X=1X=1 的时候,即 VX=VDDV_X = V_{DD}VX=VDD ,此时PMOS截止,而NMOS导通,输出 Y=0Y = 0Y=0 。当 X=0X=0X=0 的时候,PMOS导通而NMOS截止,此时输出 Y=1Y=1Y=1

CMOS逻辑门的一般结构

由上面的反相器我们能总结出CMOS逻辑门的一般结构,反相器由一个NMOS 下拉晶体管 和一个PMOS 上拉晶体管 组成。CMOS逻辑门由两个网络组成:一是 下拉网络PDN 由NMOS组成 ,二是 上拉网络PUN 由PMOS组成。如图:

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

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

PDN
在图(a)我们发现当 A=1A=1A=1 的时候, QAQ_AQA 导通此时 Y=0Y = 0Y=0 ,同样的对于 B=1B = 1B=1QBQ_BQB 导通此时 Y=0Y = 0Y=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‾=AB \overline{Y} = AB Y=AB

或是:

Y=AB‾ Y = \overline{AB} Y=AB

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

Y‾=A+BC \overline{Y} = A + BC Y=A+BC

或者等效于:

Y=A+BC‾ Y = \overline{A + BC} Y=A+BC

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

PUN
图(a)当 A=0A = 0A=0 或是 B=0B = 0B=0 的时候输出 Y=1Y = 1Y=1 表示为:

Y=A‾+B‾ Y = \overline{A} + \overline{B} Y=A+B

图(b)当 A=0A=0A=0 并且 B=0B= 0B=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=AB‾=A‾+B‾ Y = \overline{AB} = \overline{A} + \overline{B} Y=AB=A+B

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

与非门电路

一个更复杂的门电路

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

Y=A(B+CD)‾ 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=AB‾+A‾B Y = A \overline{B} + \overline{A}B Y=AB+AB

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

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

Y‾=AB+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网络可以通过关于互补变量的 YYY 的表达式得到,若表达式中存在非互补变量,需要额外的输入反相器。
  3. PDN网络可以将PUD网络进行对偶得到,反之亦然。
<think>好的,我现在需要回答用户关于CMOS实现的异或门电路设计的问题。首先,我需要回忆一下CMOS逻辑门的基本结构和工作原理。CMOS电路由NMOS和PMOS晶体管组成,通常具有互补结构,能够实现低功耗和高噪声容限。 用户提到了全加器中使用3输入异或门需要16个晶体管,这可能涉及到不同的电路设计方法。异或门在CMOS中的实现有多种方式,比如静态互补CMOS、传输门逻辑或者组合其他门电路。我需要先确定最基础的异或门结构需要多少晶体管。 标准的异或门如果用静态互补CMOS设计,可能需要较多的晶体管。例如,直接实现异或功能可能需要两个反相器加上多个串联或并联的NMOS和PMOS管。另一种方法是使用传输门,这样可以减少晶体管数量。例如,使用传输门结构的异或门可能只需要6个晶体管,但可能需要更多的控制信号。 另外,用户提供的引用[2]中提到全加器的3输入异或门用了16个晶体管,这可能是因为该设计采用了级联的异或门结构,比如两个2输入异或门组合成一个3输入的,每个2输入异或门需要8个晶体管,所以总共16个。这也说明不同的设计方法会导致晶体管数量的差异。 接下来需要详细描述异或门的CMOS实现步骤。可能需要先写出异或的逻辑表达式:$XOR(A,B) = A \oplus B = A\overline{B} + \overline{A}B$。根据这个表达式,可以设计对应的互补CMOS电路,即上拉网络(PMOS)负责逻辑的“或”部分,下拉网络(NMOS)负责“与”部分。但直接实现可能需要较多的晶体管,比如每个与或项需要对应的串联和并联结构,导致每个门可能需要多个晶体管。 或者,考虑使用传输门结构,利用传输门的开关特性来简化设计。例如,当A为高电平时,传输B的反向;当A为低电平时,传输B的原值,这样可能节省晶体管数量。但需要注意信号的完整性和传输门的控制逻辑。 此外,还需要注意电路的对称性和延迟问题,确保输入信号的切换不会导致竞争或毛刺。同时,功耗和面积也是设计中的关键因素,晶体管数量直接影响这些指标。 最后,需要验证所描述的设计是否符合引用中的内容,例如引用[2]提到的静态互补CMOS全加器结构,可能需要引用其中的数据来支持回答的正确性。同时,用户可能还想了解不同设计方法的优缺点,比如传输门与传统静态CMOS的对比,以及如何优化异或门的设计以减少晶体管数量或提高速度。</think>### CMOS异或门电路设计与实现 #### 1. 异或门的基本逻辑表达式 异或门的逻辑表达式为: $$A \oplus B = A\overline{B} + \overline{A}B$$ 这表示当输入$A$和$B$不同时输出为1,否则为0。 #### 2. 静态互补CMOS实现方式 **传统静态CMOS结构**需要分别设计上拉(PMOS)和下拉(NMOS)网络: - **上拉网络**(实现逻辑表达式):由PMOS构成,负责将输出拉高。 - **下拉网络**(实现逻辑表达式的反):由NMOS构成,负责将输出拉低。 具体电路实现: 1. **第一级反相器**:生成$\overline{A}$和$\overline{B}$。 2. **组合逻辑**:通过并联和串联晶体管实现$A\overline{B}$和$\overline{A}B$的或逻辑。 - **PMOS网络**:将$A$与$\overline{B}$的PMOS并联,$\overline{A}$与$B$的PMOS并联,再串联连接至电源。 - **NMOS网络**:将$A$与$B$的NMOS串联,$\overline{A}$与$\overline{B}$的NMOS串联,再并联连接至地。 该设计需要**8个晶体管**(4个PMOS + 4个NMOS),但实际布局可能因工艺优化而调整[^2]。 #### 3. 传输门优化设计 为减少晶体管数量,可采用**传输门(Transmission Gate, TG)**结构: - **电路结构**: - 输入$A$控制传输门开关,选择$B$或$\overline{B}$作为输出。 - 通过两个反相器生成$\overline{A}$和$\overline{B}$。 - **晶体管数量**:仅需**6个晶体管**(2个NMOS + 2个PMOS用于传输门,2个用于反相器)。 - **优点**:面积小、速度快;**缺点**:需要互补信号(如$\overline{B}$),可能增加布线复杂度。 #### 4. 性能与优化权衡 - **静态CMOS**:稳定性高、噪声容限好,但晶体管数量较多(8个)。 - **传输门结构**:面积小、速度快,但依赖信号完整性。 - **混合设计**:例如级联与非门(NAND)和或非门(NOR)组合,进一步优化延迟。 #### 5. 应用场景 - **全加器**:异或门用于生成和位(SUM),如引用[2]中全加器的3输入异或门通过级联2输入异或门实现。 - **数据加密**:异或操作是许多加密算法的基础。 - **奇偶校验**:检测数据传输中的错误。 ```python # 示例:异或门的Python行为模型 def xor_gate(a, b): return (a and not b) or (not a and b) ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值