# 基础概念与逻辑门

# 基本概念

在数字电路中,我们从宏观到微观可以按层级组织:系统模块电路器件

# 常用逻辑门

基本的逻辑门包括:非门(NOT)、与非门(NAND)、或非门(NOR)、异或非门(XNOR)、与门(AND)、或门(OR)、异或门(XOR)和缓冲器(buffer)。

# 特殊逻辑门

  • 传输门
    • 功能:一种由NMOS和PMOS组成的开关电路,可以双向导通或关断。
    • 符号表示:通常用一个方框或特定的符号表示其开关功能。
  • 三态门
    • 功能:一种具有三种输出状态(高电平、低电平、高阻态)的门电路。
    • 高阻态:表示输出端与电路的其他部分断开,处于悬空状态。
  • 带使能的传输门
    • 功能:通过一个额外的使能信号来控制传输门的导通或关断。

# 组合逻辑电路

# 定义

组合逻辑电路的输出仅由当前的输入逻辑变量决定,与之前的状态无关。其当前输出仅由当前输入变量及电路内部的延时决定。

# 设计优化

设计组合逻辑电路时,通常通过以下方式进行优化:

  • 逻辑化简:使用卡诺图或代数方法减少逻辑门的数量。
  • 复用:重复使用已有的电路模块以降低面积和成本。

# 性能评估与毛刺问题

# 评价指标

评估数字电路的性能,通常从以下两个方面进行:

  • 稳态指标
    • 逻辑电平:高电平 (VOHV_{OH}) 和低电平 (VOLV_{OL})。
    • 噪声容限:电路抵抗噪声干扰的能力。
    • 面积:电路在芯片上所占的空间。
    • 扇出系数/驱动负载能力:一个门电路能够驱动的下游门电路的数量。
  • 动态指标
    • 速度/延时:信号从输入到输出所需的时间。
    • 功耗:电路在工作时消耗的能量。
    • 噪声:电路内部产生的干扰。

# CMOS 功耗模型

CMOS电路的总功耗 (PP) 主要由三部分组成:

P=Pdynamic+Pdynamic_short+PleakageP = P_{dynamic} + P_{dynamic\_short} + P_{leakage}

  • 动态功耗 (PdynamicP_{dynamic})

    Pdynamic=E01f01=CLVDD2α01fP_{dynamic} = E_{0-1}f_{0-1} = C_LV_{DD}^2\alpha_{0-1}f

    • CLC_L:负载电容。
    • VDDV_{DD}:供电电压。
    • α01\alpha_{0-1}:开关活动因子,表示信号从0跳变到1的频率。
    • ff:时钟频率。
  • 短路功耗 (Pdynamic_shortP_{dynamic\_short}):在上拉电路和下拉电路同时导通时产生。
  • 静态漏电功耗 (PleakageP_{leakage}):由于器件的漏电效应产生。

# PDP(能耗延时积)

能耗延时积(Power-Delay Product, PDP)是衡量数字电路性能的重要指标,其值越小表示电路性能越好。

# 冒险与毛刺(Glitch)

毛刺(Glitch)指在逻辑电路输入发生变化时,由于不同路径的传输延时差异,导致输出产生瞬间的错误电平跳变。

  • 静态冒险

    • 静态1冒险:当输出应保持为逻辑1时,瞬间出现0电平。
    • 静态0冒险:当输出应保持为逻辑0时,瞬间出现1电平。
    • 产生原因:当一个输入状态从初始值变化到最终值时,如果无法被一个单一的本原蕴含项(prime implicant)完全覆盖,那么在输入信号的切换过程中,可能会出现毛刺。
    • 消除方法:
      • 增加赘余项:使用一致性定理,通过增加赘余蕴含项(redundant prime implicant)来覆盖可能产生毛刺的区域。
      • 使用脉冲:采用脉冲信号来消除毛刺。
  • 动态冒险

    • 定义:输出信号在应发生单次电平跳变时,却发生了多次跳变。

# 常用组合逻辑模块

# 编码器(Encoder)

2n2^n个输入信号编码为nn个二进制输出。

  • 4-2 线编码器:将4个输入编码为2个输出。
  • 逻辑或:通常使用或门实现。
  • 优先编码器:当多个输入信号同时有效时,根据预设的优先级进行编码。

# 译码器(Decoder)

nn个二进制输入译码为2n2^n个输出。

  • 3-8 译码器:将3个输入译码为8个输出。
  • 逻辑与:通常使用与门实现,每个输出对应一个最小项
  • 寻址:常用于选择存储器或外设地址。

# 多路选择器(Mux)

根据选择信号,从多个输入中选择一个作为输出。

  • 8-3-1 多路选择器:从8个输入中选择1个输出,需要3个选择信号。
  • 逻辑结构:通常由两级与或逻辑电路构成。
  • 应用:可以作为移位器,或用于用n比特的多路选择器表示m比特的逻辑函数

# 加法器(Adder)

用于实现二进制加法。

  • 半加器(Half Adder)
    • 功能:计算两个单比特输入相加,产生和(SS)和进位(CoutC_{out})。
    • :通过异或门(XOR)实现。
  • 全加器(Full Adder)
    • 功能:计算两个单比特输入和一个进位输入相加,产生和(SS)和进位(CoutC_{out})。

    Cout=AB+BCin+ACinS=ABCinC_{out} = AB + BC_{in} + AC_{in} \\ S = A \oplus B \oplus C_{in}

  • 串行加法器(行波进位加法器)
    • 功能:将多个全加器串联,进位信号像波浪一样从低位向高位传递。
  • 超前进位(CLA)加法器
    • 功能:通过预先计算进位信号来加速加法运算。
    • 进位传播 (PiP_i)

      Pi=AiBiP_i = A_i \oplus B_i

    • 进位生成 (GiG_i)

      Gi=AiBiG_i = A_iB_i

    • 进位 (Ci+1C_{i+1})

      Ci+1=PiCi+GiC_{i+1} = P_iC_i + G_i

    • 和 (SiS_i)

      Si=PiCiS_i = P_i \oplus C_i

    • 实例(4位CLA)

      C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0C_4 = G_3 + P_3G_2 + P_3P_2G_1 + P_3P_2P_1G_0 + P_3P_2P_1P_0C_0

  • 级联加法器:将多个4位CLA加法器进行级联,实现更高位的加法运算,通常采用组内并行、组间并行进位的结构。