字数
1433 字
阅读时间
7 分钟
好的,设计这个复合逻辑门 Y = not((A·B) + (C·D))
是一个绝佳的练习,它能让你彻底掌握CMOS电路设计的核心思想——对偶原则。
我们将分三步完成这个设计:
- 设计下拉网络 (Pull-down Network, PDN):用NMOS实现括号内的逻辑。
- 设计上拉网络 (Pull-up Network, PUN):利用对偶原则,直接从下拉网络“推导”出PMOS构成的上拉网络。
- 连接成完整电路。
核心思想:NMOS实现原始逻辑,PMOS实现其对偶逻辑
步骤 1: 设计下拉网络 (Pull-down Network - NMOS)
我们关注的逻辑是括号内的部分:(A·B) + (C·D)
。
分析逻辑关系:
- 表达式
(A·B)
表示 A 与 B。在NMOS网络中,“与”逻辑对应串联。所以,我们需要晶体管A和晶体管B串联起来。 - 表达式
(C·D)
表示 C 与 D。同样,“与”逻辑对应串联。所以,我们需要晶体管C和晶体管D串联起来。 (...) + (...)
表示两个子表达式的或。在NMOS网络中,“或”逻辑对应并联。所以,我们需要将(A串联B)
这条支路和(C串联D)
这条支路并联起来。
- 表达式
画出下拉网络电路图:
- 这个网络的一端连接到输出Y,另一端连接到地GND。
[图:下拉网络电路图]
mermaid
graph TD
subgraph NMOS Pull-down Network
Y -- 连接到输出 --> P1( )
P1 -- A --> N1(A)
N1 -- B --> N2(B)
N2 -- --> P2( )
P1 -- C --> N3(C)
N3 -- D --> N4(D)
N4 -- --> P2( )
P2 -- --> GND(GND)
end
- 上图的Mermaid代码示意了结构:从输出Y开始,分成了两条并联支路。一条是A、B串联,另一条是C、D串联。两条支路最终汇合到GND。
步骤 2: 设计上拉网络 (Pull-up Network - PMOS)
现在我们运用神奇的“对偶原则”来构建上拉网络。
应用对偶规则:
- 下拉网络中的串联 -> 在上拉网络中变为并联。
- 下拉网络中的并联 -> 在上拉网络中变为串联。
推导上拉网络结构:
- 在下拉网络中,
(A串联B)
和(C串联D)
是 并联 的。所以,在上拉网络中,对应的(A并联B)
模块和(C并联D)
模块应该是串联的。 - 在下拉网络中,A和B是串联的。所以,在上拉网络中,对应的PMOS晶体管A和B应该是并联的。
- 同理,C和D也应该是并联的。
- 在下拉网络中,
画出上拉网络电路图:
- 这个网络的一端连接到电源VDD,另一端连接到输出Y。
[图:上拉网络电路图]
mermaid
graph TD
subgraph PMOS Pull-up Network
VDD(VDD) -- --> P1( )
subgraph (A并联B)
P1 -- A --> P_A(A)
P1 -- B --> P_B(B)
end
P_A -- --> P2( )
P_B -- --> P2( )
subgraph (C并联D)
P2 -- C --> P_C(C)
P2 -- D --> P_D(D)
end
P_C -- --> Y(Y)
P_D -- --> Y(Y)
end
- 上图Mermaid代码示意了结构:从VDD开始,先经过(A并联B)模块,再串联经过(C并联D)模块,最终连接到输出Y。
步骤 3: 组合成完整的CMOS复合门
现在,我们把设计好的上拉和下拉网络组合起来。
- 将两个网络的输出端Y连接在一起。
- 将所有输入信号 (A, B, C, D) 分别连接到对应的NMOS和PMOS的栅极上。
最终的完整电路图如下所示 (这与课程PPT Slide 38中的电路图(e)和(f)是完全一致的):
[图片占位符:最终完整的 Y = not((A·B) + (C·D))
CMOS电路图]
✅ 验证逻辑功能
让我们快速验证一下这个电路是否正确:
Case 1: A=1, B=1, C=0, D=0
- 下拉网络: A、B串联支路导通,将Y拉向GND。
- 上拉网络: (A并联B)模块中的A和B都截止,(C并联D)串联模块中的C和D都导通。但因为A、B截止,整个上拉网络不通。
- 结果: Y被拉到0。
not((1·1)+(0·0)) = not(1+0) = not(1) = 0
。正确!
Case 2: A=0, B=0, C=0, D=0
- 下拉网络: 两条支路都不通。
- 上拉网络: A、B都导通,C、D都导通。整个串联路径导通,将Y拉向VDD。
- 结果: Y被拉到1。
not((0·0)+(0·0)) = not(0+0) = not(0) = 1
。正确!
通过这个例子,你可以看到CMOS电路设计的优雅之处:一旦你根据逻辑表达式正确地设计出NMOS下拉网络,其互补的PMOS上拉网络就可以通过简单的对偶规则机械地推导出来,从而保证了电路在任何稳定输入下,总是有且仅有一条通路(要么上拉,要么下拉),实现了低功耗和完整的逻辑功能。