云计算百科
云计算领域专业知识百科平台

零基础入门数字逻辑电路:从晶体管、CMOS、门电路、异或门、面积评估与进制转换,再到译码器、编码器、选择器、比较器、加法器,一次讲透从开关到组合逻辑电路的完整图文教程(超详细图文版)

这份资料整理自「一生一芯」数字逻辑电路基础(上)直播课,适合刚接触芯片设计、想搞懂处理器芯片地基的读者。全文沿「开关 → 0 和 1 → 门电路 → 组合逻辑电路」的主线展开,读完你能看懂译码器、编码器、选择器、比较器、加法器是怎么搭出来的,也能自己算出一块电路要多少晶体管。

#mermaid-svg-uGQAjwAa5u9zO2J6{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-uGQAjwAa5u9zO2J6 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-uGQAjwAa5u9zO2J6 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-uGQAjwAa5u9zO2J6 .error-icon{fill:#552222;}#mermaid-svg-uGQAjwAa5u9zO2J6 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-uGQAjwAa5u9zO2J6 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-uGQAjwAa5u9zO2J6 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-uGQAjwAa5u9zO2J6 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-uGQAjwAa5u9zO2J6 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-uGQAjwAa5u9zO2J6 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-uGQAjwAa5u9zO2J6 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-uGQAjwAa5u9zO2J6 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-uGQAjwAa5u9zO2J6 .marker.cross{stroke:#333333;}#mermaid-svg-uGQAjwAa5u9zO2J6 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-uGQAjwAa5u9zO2J6 p{margin:0;}#mermaid-svg-uGQAjwAa5u9zO2J6 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-uGQAjwAa5u9zO2J6 .cluster-label text{fill:#333;}#mermaid-svg-uGQAjwAa5u9zO2J6 .cluster-label span{color:#333;}#mermaid-svg-uGQAjwAa5u9zO2J6 .cluster-label span p{background-color:transparent;}#mermaid-svg-uGQAjwAa5u9zO2J6 .label text,#mermaid-svg-uGQAjwAa5u9zO2J6 span{fill:#333;color:#333;}#mermaid-svg-uGQAjwAa5u9zO2J6 .node rect,#mermaid-svg-uGQAjwAa5u9zO2J6 .node circle,#mermaid-svg-uGQAjwAa5u9zO2J6 .node ellipse,#mermaid-svg-uGQAjwAa5u9zO2J6 .node polygon,#mermaid-svg-uGQAjwAa5u9zO2J6 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-uGQAjwAa5u9zO2J6 .rough-node .label text,#mermaid-svg-uGQAjwAa5u9zO2J6 .node .label text,#mermaid-svg-uGQAjwAa5u9zO2J6 .image-shape .label,#mermaid-svg-uGQAjwAa5u9zO2J6 .icon-shape .label{text-anchor:middle;}#mermaid-svg-uGQAjwAa5u9zO2J6 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-uGQAjwAa5u9zO2J6 .rough-node .label,#mermaid-svg-uGQAjwAa5u9zO2J6 .node .label,#mermaid-svg-uGQAjwAa5u9zO2J6 .image-shape .label,#mermaid-svg-uGQAjwAa5u9zO2J6 .icon-shape .label{text-align:center;}#mermaid-svg-uGQAjwAa5u9zO2J6 .node.clickable{cursor:pointer;}#mermaid-svg-uGQAjwAa5u9zO2J6 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-uGQAjwAa5u9zO2J6 .arrowheadPath{fill:#333333;}#mermaid-svg-uGQAjwAa5u9zO2J6 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-uGQAjwAa5u9zO2J6 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-uGQAjwAa5u9zO2J6 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-uGQAjwAa5u9zO2J6 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-uGQAjwAa5u9zO2J6 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-uGQAjwAa5u9zO2J6 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-uGQAjwAa5u9zO2J6 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-uGQAjwAa5u9zO2J6 .cluster text{fill:#333;}#mermaid-svg-uGQAjwAa5u9zO2J6 .cluster span{color:#333;}#mermaid-svg-uGQAjwAa5u9zO2J6 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-uGQAjwAa5u9zO2J6 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-uGQAjwAa5u9zO2J6 rect.text{fill:none;stroke-width:0;}#mermaid-svg-uGQAjwAa5u9zO2J6 .icon-shape,#mermaid-svg-uGQAjwAa5u9zO2J6 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-uGQAjwAa5u9zO2J6 .icon-shape p,#mermaid-svg-uGQAjwAa5u9zO2J6 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-uGQAjwAa5u9zO2J6 .icon-shape .label rect,#mermaid-svg-uGQAjwAa5u9zO2J6 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-uGQAjwAa5u9zO2J6 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-uGQAjwAa5u9zO2J6 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-uGQAjwAa5u9zO2J6 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

数字逻辑电路基础

晶体管与CMOS

门电路

异或与设计方法

面积评估

进制转换

组合逻辑五大家族

文章目录

    • 🧩 数字电路的主线:0 和 1 要回答三个问题
      • 📖 是什么
      • 📊 三个问题各由谁回答
    • 🧩 晶体管:用开关实现 0 和 1
      • 📖 nMOS 怎么当开关
      • 📖 CMOS:把开关特性变成输出电压
      • 📊 nMOS 与 pMOS 的导通条件
      • 📊 CMOS 反相器的分情况讨论
    • 🧩 门电路:对 0/1 做运算
      • 📖 六种常见门
      • 📊 门电路结构与功能对照
      • 💻 推与非门的真值表
    • 🧩 异或门与两种电路设计方法
      • 📖 真值表推逻辑表达式:两步法
      • 📊 异或的两种搭建层次
      • 📊 全定制与半定制对比
      • 📖 为什么现代芯片以半定制为主
    • 🧩 面积评估:数晶体管也要讲原则
      • 📖 两套 #T
      • 📊 nand 为什么从 4 变 6
      • 📊 两套 #T 汇总
      • 📊 多输入门的增长方式
    • 🧩 进位计数法与进制转换
      • 📖 三种常见进制
      • 📖 十进制转二进制:短除法
      • 📖 十六进制与二进制:4 位一组
      • 📊 三种进制对比
      • 📊 进制转换方法
      • 💻 短除法示例:46 转二进制
    • 🧩 组合逻辑电路五大家族
      • 📖 七种电路逐个看
      • 📊 五大家族汇总
      • 📊 加法器的三层结构
    • 🧭 结语

🧩 数字电路的主线:0 和 1 要回答三个问题

先记住一句话:处理器芯片的本质就是数字电路,而数字电路只认 0 和 1。

你可以把它想成家里的电灯开关——只有「开」和「关」两种状态。处理器芯片里成千上万个这样的开关排在一起,就拼出了能算数、能存东西的芯片。

📖 是什么

信息在数字电路里要回答三个问题:表示(0 和 1 是什么含义)、处理(怎么对 0 和 1 做运算)、存储(怎么把 0 和 1 存住)。这门课就是沿着「晶体管 → CMOS → 门电路 → 组合逻辑电路」这条主线往下走,把前两个问题讲透,存储留到下一讲。

📊 三个问题各由谁回答

问题回答它的东西本文对应
表示 nMOS / pMOS 开关、CMOS 电路 晶体管与 CMOS
处理 门电路、组合逻辑电路 门电路、五大家族
存储 时序逻辑电路 下一讲

🧩 晶体管:用开关实现 0 和 1

先记住一句话:晶体管就是一个可以用电压控制的开关,栅极电压像手,源极和漏极像开关两端。

具体器件是 MOSFET(金属-氧化物-半导体场效应晶体管),分 nMOS 和 pMOS 两种,都有栅极、源极、漏极三个极。控制栅极电压,就能控制源极和漏极是否连通——这就是「开关」的由来。

📖 nMOS 怎么当开关

给 nMOS 的栅极加上足够高的电压,绝缘层下方会聚集电子,电子多到形成沟道,源极和漏极就连通了;电压不够,沟道消失,两端断开。

pMOS 的功能正好相反,电路符号上多一个圈圈。记住一句话:nMOS 和 pMOS 是互补的一对。

📖 CMOS:把开关特性变成输出电压

CMOS = Complementary MOS = nMOS + pMOS。分析反相器就一招:分情况讨论输入点的电压。

  • 输入加高电压:n 管导通、p 管截止 → 输出接到地,得到低电压
  • 输入加低电压:n 管截止、p 管导通 → 输出接到电源,得到高电压

于是把高电压定义成逻辑 1(高电平)、低电压定义成逻辑 0(低电平)。0 和 1 就此诞生——它们只描述某一点电平的高低。

📊 nMOS 与 pMOS 的导通条件

器件导通(开关合上)截止(开关断开)符号特点
nMOS

V

G

S

V_{GS}

VGS​ 较大

V

G

S

V_{GS}

VGS​ 较小

普通符号
pMOS

V

S

G

V_{SG}

VSG​ 较大

V

S

G

V_{SG}

VSG​ 较小

多一个圈

📊 CMOS 反相器的分情况讨论

输入n 管p 管输出
高电平 导通 截止 低电平(0)
低电平 截止 导通 高电平(1)

🧩 门电路:对 0/1 做运算

先记住一句话:光会表示 0 和 1 不够,门电路负责用 CMOS 对 0 和 1 做各种有意义的转换。

你可以把它想成厨房里的不同工具:有的负责取反,有的负责「全都要」,有的负责「有一个就行」。每一种工具的分析思路都一样:逐个假设输入取值 → 判断每根管子导通还是截止 → 推出输出 → 画成真值表。

📖 六种常见门

  • 非门(反相器):1 个 p 管 + 1 个 n 管,输入取反。
  • 与非门:p 管并联、n 管串联,先与后非——任一 p 管导通输出就是 1,所有 n 管都导通输出才是 0。
  • 与门:与非门后面再跟一个非门,两次取反抵消。
  • 或非门:p 管串联、n 管并联,先或后非。
  • 或门:或非门后面再跟一个非门。
  • 传输门:一对 n 管 + p 管并联,控制信号互补——控制端为 1 时两端连通,为 0 时断开。

📊 门电路结构与功能对照

门结构特点逻辑功能
非门(反相器) 1 个 p 管 + 1 个 n 管 取反
与非门 p 管并联,n 管串联 先与后非
与门 与非门 + 非门 与运算
或非门 p 管串联,n 管并联 先或后非
或门 或非门 + 非门 或运算
传输门(tg) 一对 n 管 + p 管并联 控制端为 1 连通,为 0 断开

💻 推与非门的真值表

输入 A=0, B=0:p 管 P1、P2 至少一者导通 → Y=1
输入 A=1, B=0:n 管 N1、N2 需串联导通,缺一个 → Y=1
输入 A=0, B=1:同上 → Y=1
输入 A=1, B=1:两个 n 管都导通、两个 p 管都截止 → Y=0

🧩 异或门与两种电路设计方法

先记住一句话:异或就是「不同为 1、相同为 0」;同一个功能,可以在门电路层面搭,也可以在晶体管层面直接设计。

异或的「异」表示不同:输入不同结果为 1,相同为 0;它也叫排斥或,区别于普通的相容或。

📖 真值表推逻辑表达式:两步法

任何真值表都能用两步推出表达式:

  • 对真值表里输出为 1 的每个表项:输入为 1 就取信号本身,输入为 0 就取它的非,把这些信号与起来;
  • 把所有表项的描述再或起来。
  • 📊 异或的两种搭建层次

    搭建层次做法晶体管数特点
    门电路层面 按表达式用非门 + 与门 + 或门 22 思路直观,晶体管多
    晶体管层面(全定制) 分情况讨论管子导通 6 晶体管少,设计难

    公式写法:

    Y

    =

    A

    ⊕

    B

    =

    (

    ¬

    A

    ∧

    B

    )

    ∨

    (

    A

    ∧

    ¬

    B

    )

    Y = A \\oplus B = (\\neg A \\land B) \\lor (A \\land \\neg B)

    Y=A⊕B=(¬A∧B)∨(A∧¬B)

    📊 全定制与半定制对比

    项目全定制电路半定制电路
    做法 在晶体管层次直接设计电路 基于标准单元或门阵列(如 FPGA)搭大规模电路
    优点 晶体管更少,面积小、频率高、功耗低 设计难度小
    缺点 设计难度大、开发周期长 面积和性能不是最优
    定位 只对核心模块局部使用 现代处理器芯片的主流方法

    📖 为什么现代芯片以半定制为主

    AMD 线程撕裂者有 400 亿个晶体管,不可能每根都手工设计。所以现代芯片以半定制为主,只在追求极致表现时,对核心模块做全定制。

    🧩 面积评估:数晶体管也要讲原则

    先记住一句话:面积可以用晶体管数量近似,记 #T 为一个门需要的晶体管数;但数的时候要讲原则。

    📖 两套 #T

    同一款门其实有两套计数:一套只数功能用了多少管子,一套考虑电气特性对等。

    为什么要讲对等?CMOS 里 0 和 1 只是两种对称的状态,电气特性也应当对称:

    • 输出 1 产生的电流 = 输出 0 吸收的电流,即

      I

      (

      Y

      =

      1

      )

      =

      −

      I

      (

      Y

      =

      0

      )

      I(Y=1) = -I(Y=0)

      I(Y=1)=−I(Y=0)

    • 输出 1 时经 p 管的电压降 = 输出 0 时经 n 管的电压降,即

      V

      C

      C

      −

      V

      (

      Y

      =

      1

      )

      =

      V

      (

      Y

      =

      0

      )

      −

      V

      G

      N

      D

      V_{CC} – V(Y=1) = V(Y=0) – V_{GND}

      VCC​−V(Y=1)=V(Y=0)−VGND​

    三个非门串联时,A 点与 X 逻辑值相同;但如果电压降不对称,V_A 可能不满足第三个非门的栅极工作条件,Y = ~X 就不成立。满足对等设计原则后,使用者只需关心电路逻辑,不必关心电气特性。

    📊 nand 为什么从 4 变 6

    n 管串联导通时电流经过两个管子,p 管并联导通时每个分支只经过一个——前者电压降是后者的两倍,不满足对等。修法是把每个 n 管的电阻降为原来的一半(加大尺寸,或替换成两个最小晶体管并联)。于是 N1、N2 各算 2:1 + 1 + 2 + 2 = 6。

    📊 两套 #T 汇总

    门功能视角对等设计原则视角
    not 2 2
    nand / nor 4 6
    and / or 6 8
    tg 2 2
    xor(门级搭建) 22 —

    📊 多输入门的增长方式

    搭建层次N 输入与非门N 输入与门增长
    门电路层面

    8

    N

    −

    10

    8N – 10

    8N−10

    8

    (

    N

    −

    1

    )

    8(N-1)

    8(N−1)

    线性
    晶体管层面

    N

    (

    N

    +

    1

    )

    N(N+1)

    N(N+1)

    N

    (

    N

    +

    1

    )

    +

    2

    N(N+1) + 2

    N(N+1)+2

    二次

    面积和延迟是设计取舍:门级方案面积更优但延迟更大;要优化延迟的场合反而选面积更大的晶体管级方案。看需求选,不必追求绝对最小设计。

    🧩 进位计数法与进制转换

    先记住一句话:物理世界不只有 0 和 1,用 0/1 表示各种信息叫编码;表示自然数时,加权求和展开式是所有进制的通用写法。

    n 位 b 进制数 a(n-1)…a(0) 的真值 =

    ∑

    i

    =

    0

    n

    −

    1

    a

    i

    ⋅

    b

    i

    \\sum_{i=0}^{n-1} a_i \\cdot b^i

    ∑i=0n−1​ai​⋅bi。其中 b 叫基,

    b

    i

    b^i

    bi 叫该位的权。

    📖 三种常见进制

    • 二进制:b = 2,每一位只能是 0 或 1。0b101110 的真值是 46。
    • 十六进制:b = 16,每位 16 种可能,0~9 加 a~f(数值上表示 10~15)。0xbeef = 48879。
    • 十进制:b = 10,就是平时用的数。

    📖 十进制转二进制:短除法

    原理是不断提取公因子 2:把十进制数不断除以 2,得到的余数依次对应 a(0)、a(1)……a(n-1)。46 依次除 2 的余数是 0、1、1、1、0、1,从高到低组合得 0b101110。

    📖 十六进制与二进制:4 位一组

    数字电路无法直接处理十六进制,但

    16

    =

    2

    4

    16 = 2^4

    16=24,所以 1 位十六进制对应 4 位二进制:从右到左每 4 位分一组(高位不足补 0),每组直接写出对应十六进制数字。0b1011 1110 1110 1111 → 0xbeef,比二进制串紧凑得多。

    📊 三种进制对比

    进制基数每位取值例子
    十进制 10 0–9 734
    二进制 2 0 / 1 0b101110
    十六进制 16 0–9、a–f 0xbeef

    📊 进制转换方法

    转换方向方法例子
    十进制 → 二进制 不断除 2,余数从高到低排 46 → 0b101110
    十六进制 → 二进制 每 1 位拆成 4 位 0xbeef → 0b1011 1110 1110 1111
    二进制 → 十六进制 每 4 位合成 1 位 0b1011111011101111 → 0xbeef

    💻 短除法示例:46 转二进制

    46 ÷ 2 = 23 余 0
    23 ÷ 2 = 11 余 1
    11 ÷ 2 = 5 余 1
    5 ÷ 2 = 2 余 1
    2 ÷ 2 = 1 余 0
    1 ÷ 2 = 0 余 1
    余数从高到低排列:101110 → 0b101110

    🧩 组合逻辑电路五大家族

    先记住一句话:译码器、编码器、选择器、比较器、加法器,都是前面门电路搭出来的积木,各管一件事。

    📖 七种电路逐个看

    • 译码器:把 k 位输入转换成最多

      2

      k

      2^k

      2k 种输出。n 选 1 译码器的 2^n 位输出中仅第 x 位为 1,也就是独热码(One-hot)。它最常用于寻址——输入地址,生成相应的有效信号,选中存储单元(地址就像表格里的行号)。

    • 转码器:按指定规则把一种编码换成另一种编码,和 n 选 1 译码器不同,不限制输出里 1 的数量。典型应用是七段数码管译码器。
    • 编码器:和 n 选 1 译码器功能相反,输入 2^n 位独热码、输出真值为 x 的 n 位二进制数,用来根据独热码生成地址。
    • 优先编码器:支持独热码以外的输入,但只编码优先级最高的位。
    • 多路选择器(mux):根据选择端 S 选其中一路数据,S=0 输出 D0、S=1 输出 D1。处理器主要处理数据,而数据的来源和处理方式很多,所以它是处理器中使用频率很高的元件。传输门版比门级版本省数倍晶体管。
    • 比较器:检查两个输入的每一位是否完全一致,每对位接一个同或门(相同为 1),所有位的结果再与起来。
    • 加法器:半加器 HA、全加器 FA、行波进位加法器 RCA 逐级串起来,进位像波浪一样从低位传到高位,和小学竖式计算一样。

    📊 五大家族汇总

    电路功能关键点#T
    n 选 1 译码器 地址 → 独热码 输出仅第 x 位为 1 2-4:36;5-32:1034;10-1024:73748
    转码器 编码 → 编码 不限制 1 的数量 七段数码管译码器
    编码器 独热码 → 二进制数 非独热码输入未定义 4-2:120;简化版:16
    优先编码器 输出最高位 1 的位置 支持非独热码输入 4-2:36
    多路选择器 按 S 选一路数据 传输门版更省晶体管 2-1:26 / 6;32 位:770 / 130
    比较器 逐位比对是否一致 同或门 + 与门 4 位:48;32 位:440
    加法器 二进制加法 HA → FA → RCA HA:14;FA:36;RCA32:1130

    📊 加法器的三层结构

    层级输入功能晶体管数
    半加器 HA 无进位输入

    S

    =

    A

    ⊕

    B

    S = A \\oplus B

    S=A⊕B,

    C

    =

    A

    ∧

    B

    C = A \\land B

    C=A∧B

    14
    全加器 FA 有进位输入 Cin 处理进位输入 36
    行波进位加法器 RCA 多个 FA 级联 进位依次向高位传递 RCA32:1130

    🧭 结语

    这篇覆盖了数字逻辑电路基础(上)的七个知识点:数字电路的主线、晶体管与 CMOS、门电路、异或门与两种设计方法、面积评估、进制转换、组合逻辑电路五大家族。

    按顺序读:先看主线建立「开关 → 0/1 → 门电路 → 组合逻辑」的整体图景,再逐节看懂晶体管怎么造出 0 和 1、门电路怎么算、异或怎么推表达式,然后用 #T 自己算面积,最后把译码器、编码器、选择器、比较器、加法器五个积木拼起来。读完你能做到两件事:看懂一块组合逻辑电路由哪些积木组成,以及自己算出它需要多少晶体管。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 零基础入门数字逻辑电路:从晶体管、CMOS、门电路、异或门、面积评估与进制转换,再到译码器、编码器、选择器、比较器、加法器,一次讲透从开关到组合逻辑电路的完整图文教程(超详细图文版)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!