Skip to content
字数
1433 字
阅读时间
7 分钟

好的,设计这个复合逻辑门 Y = not((A·B) + (C·D)) 是一个绝佳的练习,它能让你彻底掌握CMOS电路设计的核心思想——对偶原则

我们将分三步完成这个设计:

  1. 设计下拉网络 (Pull-down Network, PDN):用NMOS实现括号内的逻辑。
  2. 设计上拉网络 (Pull-up Network, PUN):利用对偶原则,直接从下拉网络“推导”出PMOS构成的上拉网络。
  3. 连接成完整电路

核心思想:NMOS实现原始逻辑,PMOS实现其对偶逻辑

步骤 1: 设计下拉网络 (Pull-down Network - NMOS)

我们关注的逻辑是括号内的部分:(A·B) + (C·D)

  1. 分析逻辑关系:

    • 表达式 (A·B) 表示 A 与 B。在NMOS网络中,“”逻辑对应串联。所以,我们需要晶体管A和晶体管B串联起来。
    • 表达式 (C·D) 表示 C 与 D。同样,“”逻辑对应串联。所以,我们需要晶体管C和晶体管D串联起来。
    • (...) + (...) 表示两个子表达式的。在NMOS网络中,“”逻辑对应并联。所以,我们需要将 (A串联B) 这条支路和 (C串联D) 这条支路并联起来。
  2. 画出下拉网络电路图:

    • 这个网络的一端连接到输出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)

现在我们运用神奇的“对偶原则”来构建上拉网络。

  1. 应用对偶规则:

    • 下拉网络中的串联 -> 在上拉网络中变为并联
    • 下拉网络中的并联 -> 在上拉网络中变为串联
  2. 推导上拉网络结构:

    • 在下拉网络中,(A串联B)(C串联D)并联 的。所以,在上拉网络中,对应的 (A并联B) 模块和 (C并联D) 模块应该是串联的。
    • 在下拉网络中,A和B是串联的。所以,在上拉网络中,对应的PMOS晶体管A和B应该是并联的。
    • 同理,C和D也应该是并联的。
  3. 画出上拉网络电路图:

    • 这个网络的一端连接到电源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上拉网络就可以通过简单的对偶规则机械地推导出来,从而保证了电路在任何稳定输入下,总是有且仅有一条通路(要么上拉,要么下拉),实现了低功耗和完整的逻辑功能。

贡献者

页面历史