CMOS 逻辑
大一时候写的 1310 笔记发挥了一点用处,可以参考 此处。
MOS 晶体管
硅(Silicon),IV 族,导电性差
在硅晶格中引入掺杂剂(dopants)增加导电性,称为半导体(semiconductor)
- 砷(arsenic, As),V 族,砷原子的第五个价电子束缚弱 => n 型半导体,载流子(carrier)是带负电的自由电子
- 硼(boron,B),III 族,空穴 => p 型半导体,载流子是带正电的空穴
二极管(diode),内部结构是 PN 结(PN junction)
- p 型半导体侧为
阳极(anode) ,n 型半导体侧为阴极(cathode) - 外电场 p -> n 为
正向偏置(forward biased) ,n -> p 为负向偏置(reverse biased)
金属氧化物半导体(Metal-Oxide-Semiconductor, MOS)或 金属氧化物半导体场效应晶体管(MOS Field Effect Transistors, MOSFETs)
- 栅极 Gate
- 衬底 Substrate, Body, Bulk
- 源极 Source,漏极 Drain,载流子通过沟道(channel)由源极流向漏极

栅极电压
- nMOS:栅极电压
(逻辑 1, 或 POWER), 时导通 ON - pMOS:栅极电压
(逻辑 0, 或 GROUND), 时导通 ON - overdrive 电压:
通道晶体管(Pass transistors)。MOS 直接作为开关传输电压时有阈值损失:nMOS 强 0 弱 1(传输电压
静态 CMOS 逻辑门
nMOS + pMOS = wavy CMOS(互补金氧半,Complementary MOS)。互补的晶体管放在衬底中的井中(n 衬底 p 井,反之)。
经典的静态 CMOS 逻辑门包含两个网络:
- nMOS
下拉网络(pull-down network, PDN) ,连接和输出,负责导通时传递强 0(下拉) - pMOS
上拉网络(pull-up network, PUN) ,连接和输出,负责导通时传递强 1(上拉) - PUN ON,PDN OFF:上拉至 1
- PUN OFF,PDN ON:下拉至 0
- PUN OFF,PDN OFF:高阻(high-impedance)或浮接(floating)态,记为 Z
- PUN ON,PDN ON:短路(crowbarred)或竞(contention)态,记为 X
反相器(Inverter),i.e.,非门(NOT Gate):单 nMOS PDN 和单 pMOS PUN
与非门(NAND Gate),
复合门(Compound Gate),给定表达式
- 画 PDN,由于需要把表达式下拉至 0,又 nMOS 栅极输入 1 导通,把表达式
取反后组装 - 画 PUN,由于需要把表达式上拉至 1,又 pMOS 栅极输入 0 导通,把表达式中所有的变量取反后组装(或使用
conduction complements 原则,把 PDN 中串联改并联,并联改串联即可)
性质一:静态 CMOS 逻辑门是
点一下睡袋(呸) 指一个逻辑级在稳态时能把输出节点强驱动(strongly driven)到接近电源轨的全摆幅电平(0 或
性质二:静态 CMOS 逻辑门是
指该逻辑级实现的布尔关系在输出端带有一个逻辑取反,即输出等于某个函数的补
这也是为什么最基础的物理逻辑门是 NOT,NAND,NOR 而不是 OR,AND;这天然的由 MOS 的物理特性与 CMOS 的设计原则决定:输入为 1 会使基于 nMOS 的 PDN 导通,从而使输出为 0;反之 PUN 同理。
可以直接拼非反相的
传输门
传输门(Transmission Gate),解决了通道晶体管阈值损失的问题。

需要同时提供控制输入(control input)信号
传输门的输出电压来自上一级节点,而非
三态逻辑
三态逻辑(tristate)指的是三种输出驱动状态:低电平
三态缓冲器(tristate buffer):逻辑功能与传输门相同(真值表一致),但它的输出电压来自 VDD 与 GND,因此是 restoring 的,能够保证输出一定是三态中的其中一个。
| 0/1 | 0 | Z |
| 0/1 | 1 | Z |
| 1/0 | 0 | 0 |
| 1/0 | 1 | 1 |
三态反相器(tristate inverter):EN 为 0 时两个晶体管均关断,输出为
三态总线(tristate bus):现已被多路复用器替代。
多路复用器
多路复用器(multiplexer, MUX)是 CMOS 存储单元(memory elements)与数据处理结构中的关键组件。它通过选择信号(select signal)
譬如 2:1 MUX,选择信号为 0 时选择输入
2:1 MUX 的几个实现方式
- 传输门 MUX:两个传输门连接在一起,选择信号
与其互补信号 在任意时刻只会使其中一个传输门导通。这样组成的 MUX 是 non-restoring 的,仅需要四个晶体管。 - 反相 2:1 MUX(
):复合 AOI22 电路或两个三态反相器并联。连接一个反相器负负得正成 2:1 MUX。这样组成的 MUX 是 restoring 的。

4:1 MUX:使用两个选择信号
时序逻辑
组合逻辑(combinatorial logic)的输出只取决于当前输入。时序逻辑(sequential logic)有 memory,其输出由当前输入与 memory 共同决定。时序逻辑元件接收时钟信号(clock)CLK 与输入
D 型锁存器
锁存器(latch)直译为门闩。

D 型锁存器的行为 (c) (d):
- CLK 为 1:锁存器透明(transparent),当前输入
传递至输出 ,同时产生互补输出 - CLK 为 0:锁存器不透明(opaque),反馈回路将当前输出
锁起来,保持当前状态
D 型锁存器也被称为电平敏感锁存器(level-sensitive latch),因为输出状态取决于 CLK 的电平高低。
D 型触发器
触发器(flip-flop)直译为翻转,跳动。
D 型触发器由一对串联的电平敏感锁存器构成,前者为主锁存器(master latch),是负电平敏感的;后者为从锁存器(slave latch),是正电平敏感的。

D 型触发器的行为 (c) (d):
- CLK 由 0 跳变为 1:主锁存器结束对输入
采样(sampling),将这一时刻的采样值传递至从锁存器的输出 ,刷新记忆 - CLK 由 1 跳变为 0:主锁存器开始对输入
采样,从锁存器锁住,保持先前的记忆
D 型触发器也被称为边沿触发器(edge-triggered flip-flop),因为它只在 CLK 从 0 到 1 跳变的这一「上升沿」瞬间采样输入
时钟偏移
时钟信号到达电路各个部分所用的时间是有差异的,这被称为时钟偏移(clock skew)。
考虑两个串联的触发器 FF1 与 FF2,
- FF1 采样并存入
- FF2 采样并存入
但由于时钟偏移的存在,FF2 CLK 的跳变迟于 FF1 CLK 的跳变,那么 FF2 采样的可能是已经被 FF1 更新过后的
解决方法:
- 两相不重叠时钟(non-overlapping clocks):使用多个时钟相位,在触发器中,主锁存器被
控制,从锁存器被 控制;令 与 不得同时跳变,不重叠区域为至少一个时钟偏移的时间,从而阻断采样到储存的通路【见 Lec 2 p.37】只能用于规模较小的项目 - 时钟树综合(clock tree synthesis, CTS)与静态时序分析(static timing analysis, STA)