逻辑运算的电路实现

官方工学老师·27 页·深入(追求细节与边界)·0 次浏览·2 天前
CMOS晶体管逻辑门数字电路

逻辑运算的电路实现

从晶体管到加法器,看清0/1背后的结构、时序与功耗边界

按 空格/→ 演示下一步

1 / 27 页

全部页面点击任意一页,跳回舞台从这页播放

CMOS晶体管逻辑门数字电路

逻辑运算的电路实现

从晶体管到加法器,看清0/1背后的结构、时序与功耗边界

1第 1 页 · 逻辑运算的电路实现

为什么需要电路实现逻辑

上一页讲了逻辑运算的数学基础——布尔代数。但数学只活在纸上,电脑却是硅片、铜线和电压。0 和 1 怎么'变成'实实在在的电信号?这就要靠电路来实现。

抽象与物理的鸿沟
布尔代数是符号系统,符号本身没有电压含义,无法被电流直接'读懂'
电压即数值
约定高电平代表 1、低电平代表 0,把连续的物理电压切成两段离散值
元件即运算
晶体管等器件能根据输入电压控制输出电压,物理上实现 AND/OR/NOT
映射关系
每个布尔表达式都唯一对应一个由晶体管组成的电路结构
乐谱与演奏对应 →布尔代数与电路

乐谱规定演奏什么,但没乐器和振动就没声音;布尔代数规定逻辑怎么算,但没电路和电压就没计算结果

2第 2 页 · 为什么需要电路实现逻辑

逻辑到电路的映射关系

三组平行映射:左侧是逻辑世界,右侧是物理电路,从左往右读。

图解渲染中…
B3电平是电压经阈值划分后的离散状态E0/1 与电平的对应是人为约定,不同逻辑家族不同
3第 3 页 · 逻辑到电路的映射关系

TTL的基本工作原理

上页说非门由一颗晶体管实现,那与门呢?TTL的诀窍是'多发射极'——一颗晶体管造出多个发射极,每个对应一路输入,直接做'与'运算,再反相就是NAND。

多发射极输入晶体管
一个BJT晶体管集成多个发射极,每个发射极就是一个输入端,是TTL的标志性结构
任一输入低则输出高
任一输入为低 → 对应发射极正向导通 → 基极电流被'抽走' → 输出级截止 → 输出高
全输入高则输出低
所有输入高 → 各发射极全部反偏 → 电流注入下一级 → 输出管饱和 → 输出低
整体等价于NAND门
多发射极天然完成'与'运算,后接一级反相器,组合得到NAND——TTL最基础的门
图腾柱输出级
上下两个NPN管堆叠,主动拉高拉低,输出驱动能力强、开关速度快
带多个排水孔的水塔对应 →多发射极的'与'逻辑

任一排水孔打开(输入低)→ 水从那漏走,下游没水;全关闭(输入全高)→ 水压传到下游

4第 4 页 · TTL的基本工作原理

TTL与非门的电路结构

信号从A、B出发,依次经Q1多发射极管、Q2分相器、Q3/Q4推挽输出级,最终在Y得到与非结果。沿箭头方向读即信号走向。

图解渲染中…
Q1多发射极实现与逻辑:任一输入为低即被钳位Q2分相器同时输出反相信号给Q3和Q4Q3上拉管,导通时把Y拉到高电平Q4下拉管,导通时把Y拉到低电平
5第 5 页 · TTL与非门的电路结构

TTL信号的传输过程

TTL信号从输入到输出经历五级传递,每级都承担特定逻辑或电平任务。

1
输入送入多发射极
T1的多个发射极分别接收各路输入信号
2
多发射极完成与逻辑
任一输入为低则抽走基极电流;全高时电流才传向T2
3
T2分压产生互补信号
T2作分相器,集电极与发射极电压反向变化
4
T5按控制信号导通
T2发射极为高时T5饱和导通,把输出拉低
5
图腾柱输出最终电平
T5下拉或T3/T4上拉,输出稳定的高低电平
6第 6 页 · TTL信号的传输过程

TTL的输入输出特性

上一页看到 TTL 输出看似干净的电平,但导线上的噪声、电源波动会让它抖动。接收端怎么判断这到底是 1 还是 0?靠的就是输入输出门限。

输入门限
接收端识别 0/1 的边界,TTL 典型 VIH≥2.0V、VIL≤0.8V
输出门限
发送端保证的电平范围,TTL 典型 VOH≥2.7V、VOL≤0.4V
噪声裕量
输出与下一级输入之间的安全余量,分高/低两段
裕量不对称
高电平裕量 0.7V 大于低电平裕量 0.4V,TTL 故意如此
考试60分及格线对应 →TTL输入门限

0~0.8V 算 0,2.0V 以上算 1,中间 0.8~2.0V 是模糊区,没人敢保证判对

NMH=VOHVIH=2.72.0=0.7V,NML=VILVOL=0.80.4=0.4VNM_H = V_{OH} - V_{IH} = 2.7-2.0 = 0.7\text{V},\quad NM_L = V_{IL} - V_{OL} = 0.8-0.4 = 0.4\text{V}
7第 7 页 · TTL的输入输出特性

TTL的功耗与速度

前页我们看到信号在TTL电路里从输入走到输出,但这过程不是免费的——电路一直在烧电,响应也不是瞬时的。这页我们深入看TTL的功耗从哪来、速度卡在哪、以及两者不得不说的矛盾。

静态功耗
输出稳定时也持续消耗的功率,标准TTL约10mW,来自低电平时VCC到地的直流通路
动态功耗
状态切换瞬间产生:推挽输出两管短暂同时导通的穿通电流,加上负载电容充放电
传输延迟
信号从输入到输出的时间,标准TTL约5~10ns,受晶体管开关速度与寄生电容制约
速度-功耗矛盾
想降低延迟就得加大驱动电流来快速充放电容,电流一大功耗就上去
延迟-功耗积(DP)
DP=P×t_pd,单位皮焦(pJ),衡量每完成一次开关消耗的能量,是门电路的综合品质因数
汽车提速对应 →TTL速度与功耗的矛盾

想提速就猛踩油门(大电流驱动),油耗飙升;想省油就温柔驾驶(低功耗),但加速慢得让人急

Pdyn=CV2fP_{dyn} = C \cdot V^2 \cdot f
8第 8 页 · TTL的功耗与速度

TTL的输入结构与保护

沿主信号流(VIN→Q1→Q2→输出)逐级看,实线是通路,虚线是保护旁路。

图解渲染中…
E负向钳位:输入<0时导通,把下冲泄放到GNDF过压钳位:输入>VCC时导通,吸收反射尖峰B多发射极晶体管:每个E是一路输入,等效实现与G肖特基SBD:并B-C结,0.3V即导通,分流防饱和
9第 9 页 · TTL的输入结构与保护

TTL门电路小结

  • TTL是电流型逻辑:饱和导通拉低,截止靠上拉拉高
  • 图腾柱输出有源下拉不对称——扇出受低电平灌电流限制
  • 速度与功耗正相关,速度-功耗积是TTL核心权衡
  • 5V固定电平与静态功耗使TTL在大规模集成中被CMOS取代
延伸主题:CMOS门电路工作原理ECL与其他逻辑家族对比噪声容限与时序分析
10第 10 页 · TTL门电路小结

CMOS的基本工作原理

上一节我们看到 TTL 的输出级总有一条从 Vcc 到地的电流通路,这意味着即使门不翻转,也在持续耗电。CMOS 换了个思路——让两个管子「轮流接力」,稳态时彻底切断这条通路。

NMOS 管
栅极高电平导通,相当于「高电平开门」的电子开关
PMOS 管
栅极低电平导通,相当于「低电平开门」的空穴开关
互补结构
NMOS 与 PMOS 串联在 Vcc 与 GND 之间,一个导通另一个必截止
反相器原理
输入高→PMOS 断、NMOS 通→输出被拉低;输入低则相反
静态近零功耗
稳态时 Vcc 到 GND 无直流通路,只在切换瞬间充放电才耗电
双向推拉门的两扇门对应 →CMOS 的 NMOS 与 PMOS

一扇开则另一扇必关,两扇不可能同时打开——通道始终有一侧关闭,稳态时没有水流(电流)通过

11第 11 页 · CMOS的基本工作原理

CMOS反相器的电路结构

纵向看是VDD到GND的串联通路,两侧虚线表示栅极受同一输入控制。

图解渲染中…
a2PMOS,源极接VDD,导通则把输出上拉至高a4NMOS,源极接GND,导通则把输出下拉至低a6输入同时驱动两管栅极,决定谁开谁关
12第 12 页 · CMOS反相器的电路结构

CMOS与非门、或非门结构

上节课我们用一对PMOS加NMOS搭出了反相器,只能算'非'。要实现与非、或非这种复合逻辑,光一对管子不够——得把多对管子按特定规律串并联。

与非门结构
上拉PMOS并联、下拉NMOS串联:任一输入为0即拉高,仅全1时拉低
或非门结构
上拉PMOS串联、下拉NMOS并联:仅全0时拉高,任一输入为1即拉低
串并联=逻辑关系
串联对应'与'(全通才行),并联对应'或'(任一通即可)
上下网络互补
任一输入组合下,PMOS网络和NMOS网络必有一个导通、另一个断开
水管与阀门对应 →CMOS上下拉网络

VDD高水塔、GND排水沟。串联阀门全开才过水(与),并联任一开即过水(或)

$Y_{NAND}=\overline{AB}=\bar{A}+\bar{B}$; $Y_{NOR}=\overline{A+B}=\bar{A}\cdot\bar{B}$
13第 13 页 · CMOS与非门、或非门结构

CMOS的输入输出特性

上一节我们认识了CMOS反相器、与非门、或非门的电路结构。本节把视线从「里面」转到「门口」——看输入脚如何识别0/1,输出脚能驱动多大负载,又靠什么抵御静电冲击。

VIL/VIH阈值
输入识别0/1的电压门限,典型值约为0.3VDD和0.7VDD
噪声容限
NMH=VOH-VIH、NML=VIL-VOL,量化电路可容忍噪声幅度
输出驱动能力
拉电流IOH与灌电流IOL大小决定可驱动负载门数量
ESD静电保护
VDD/VSS端的钳位二极管保护栅氧化层不被高压击穿
小区门禁对应 →CMOS输入输出端口

识别身份真伪对应VIL/VIH、限制放行人数对应扇出、缓冲冲击对应ESD保护

NMH=VOHVIH,NML=VILVOLNM_H = V_{OH} - V_{IH},\quad NM_L = V_{IL} - V_{OL}
14第 14 页 · CMOS的输入输出特性

CMOS的功耗特性

上页的CMOS反相器在稳定输出时会切断电源到地的通路;输入一翻转,负载电容便开始充放电。把这些充放电按时间累计,就得到它的功耗。

稳态零功耗
输入稳定在0或1时,两管通常不同时导通,理想CMOS的静态功耗为0。
动态开关损耗
输出每次翻转,负载电容都要充电与放电,能量主要耗散在开关过程中。
频率近似正比
电压、负载和翻转率固定时,动态功耗与开关频率近似成正比。
工程边界
实际器件总有漏电;输入若停在中间电平,两管还可能同时导通。
反复推拉秋千对应 →CMOS动态功耗

每次推拉对应一次充放电;每秒做得越频繁,控制器消耗的能量越多。

PdynαCLVDD2fP_{\mathrm{dyn}}\approx\alpha C_LV_{DD}^{2}f
15第 15 页 · CMOS的功耗特性

CMOS的优缺点与应用

上一页我们看到 CMOS 静态时几乎不耗电——这正是它能走进手机、笔记本、CPU 的关键。结合前面 TTL 的特性,我们来系统对比一下。

功耗极低
静态电流几乎为零,只有状态翻转瞬间才耗电,电池设备首选
噪声容限大
输出摆幅接近电源电压,抗干扰能力强,工业环境更稳
集成密度高
单管结构简单、尺寸小,几十亿晶体管可塞进一枚芯片
扇出与输入阻抗
输入端几乎不取电流,一个门可驱动数十个后级门
主要缺点
栅极极易被静电击穿(ESD);高频动态功耗会显著上升
智能感应水龙头对应 →CMOS 开关式耗电

没人洗手时滴水不漏(静态≈零功耗),手一伸才出水(翻转瞬间才耗电)

16第 16 页 · CMOS的优缺点与应用

TTL vs CMOS全方位对比

TTL和CMOS同为逻辑芯片家族,但内部截然不同。搞不清该选谁,是硬件工程师最常踩的坑。

TTL 双极型逻辑
  • 静态功耗 1~10 mW/门,常态持续耗电
  • 开关延迟 1~10 ns,传输速度较快
  • 噪声容限约 0.4 V,抗干扰偏弱
  • 扇出约 10,但每个门驱动电流强
CMOS 互补型逻辑
  • 静态功耗几乎为零,仅切换瞬间耗电
  • 早期较慢,现代工艺已追平 TTL
  • 噪声容限约 1.5 V,抗干扰强
  • 扇出 50 以上,但单个门驱动偏弱
现代数字系统几乎都用 CMOS:低功耗、高集成、低成本形成碾压。仅极端高速或维护老设备时才用 TTL。
17第 17 页 · TTL vs CMOS全方位对比

电平转换与接口

前面看到TTL和CMOS各有自己的电平标准——输出高电平能到多高、输入高电平需要多高,两边不是一回事。当两种电路直接相连时,电平门槛对不上就要出问题。

TTL→CMOS高电平低
TTL的VOH_min=2.4V < CMOS的VIH_min=3.5V,高电平送不过去
上拉电阻补电平
TTL输出端与VCC间接一只电阻(约4.7kΩ),把高电平抬到接近5V
CMOS→TTL基本兼容
CMOS输出摆幅接近VCC和GND,能轻松越过TTL的输入阈值
驱动能力与扇出
CMOS输出电流弱(IOL约0.4mA),驱动多个TTL门时需核算扇出系数
混合电压域的边界
3.3V CMOS连5V TTL必须加电平转换芯片,否则高电平过冲会损坏器件
小声说话隔墙听不清对应 →TTL→CMOS高电平不足

TTL嗓门小(2.4V)够不到CMOS耳朵(需3.5V),上拉电阻等于给它加个扩音器拉到5V

VOHTTL=2.4V<VIHCMOS=3.5VV_{OH}^{TTL}=2.4V < V_{IH}^{CMOS}=3.5V
18第 18 页 · 电平转换与接口

硬件描述语言概述

前面我们用晶体管一级级搭出门电路,但门电路一旦焊死就再也改不了。HDL让我们用文本「画」出可任意改写的电路——这是硬件设计的转折点。

硬件文本描述语言
用代码文本描述电路的结构与行为,本质不是顺序指令
根本区别在并行
每行代码对应真实电路元件,全部同时工作而非排队执行
需要EDA综合
EDA工具把HDL翻译为门级网表,再映射到芯片晶体管
支持分层建模
可写一个与非门,也可写整个CPU,逐层细化抽象
建筑施工图纸对应 →HDL硬件代码

图纸上每根管线和房间同时真实存在,HDL里每行代码也对应同时工作的电路

19第 19 页 · 硬件描述语言概述

Verilog描述基本门电路

verilog

用 Verilog 把上一页的真值表直接写成可综合的硬件代码

代码高亮加载中…

assign 把布尔表达式直接映射成门;wire 是模块内连线;按端口名实例化即可复用门

20第 20 页 · Verilog描述基本门电路

Verilog描述复合逻辑

verilog

用assign和位运算符写出三种常用复合门——与非、或非、异或

代码高亮加载中…

三条assign对应三种复合门:~& 是「与后取反」、~| 是「或后取反」、^ 本身就是异或;每条表达式综合后都会变成实际门电路,与上一页基本门一脉相承。

21第 21 页 · Verilog描述复合逻辑

HDL代码到电路的综合过程

RTL综合、门级映射、布局布线的流程

HDL代码到电路的综合过程
RTL综合、门级映射、布局布线的流程
22第 22 页 · HDL代码到电路的综合过程

Verilog描述一位全加器

verilog

一个完整的一位全加器:从端口声明到 dataflow 描述,对应真值表的每一行。

代码高亮加载中…

两个 assign 就是真值表的逻辑化简:sum 用三级异或覆盖三变量,cout 用"两两与再或"实现多数函数,综合器会映射到 LUT 与进位链。

23第 23 页 · Verilog描述一位全加器

Verilog描述4选1多路选择器

verilog

同一功能的两种 Verilog 写法:case 语句 vs 条件运算符,看看语法和综合结果有什么差异。

代码高亮加载中…

case 用 always+reg 过程赋值,多分支可读性好;条件运算符用 assign+wire 连续赋值,写法更紧凑。两者综合后的硬件结构基本一致,都是 2-to-1 选择器级联。

24第 24 页 · Verilog描述4选1多路选择器

自测题

点击作答

标准 CMOS 二输入与非门(NAND)的结构是 PMOS 并联在上、NMOS 串联在下。这种结构的根本原因是:

25第 25 页 · 自测题

知识体系总结

  • 逻辑运算的电路实现,本质都是上拉/下拉网络的开关组合
  • TTL与CMOS是同一抽象层的速度、功耗、噪声权衡
  • HDL把设计从器件拓扑提升到行为描述,隐藏底层细节
  • 综合是连接HDL与真实电路的唯一桥梁,约束决定结果
  • 接口电路本质是不同电压域之间的电平翻译器
延伸主题:时序逻辑与时钟同步FPGA内部结构与资源异步电路与亚稳态
26第 26 页 · 知识体系总结

课后思考

三个开放题,先自己琢磨 30 秒再看参考答案。注意:答案给的是思路,不是标准答。

1为什么同一个'与非'运算,TTL 和 CMOS 走了完全不同的物理路径,却能实现相同的逻辑?

参考答案因为逻辑只关心真值表,物理实现可以多种多样。就像番茄炒蛋,中餐和西餐手法不同,味道可以接近。'逻辑抽象'的力量就在于把功能与物理细节解耦——这也是数字电路能飞速迭代的根基。

2用 Verilog 写全加器时,assign 表达式和 always 行为级描述,综合出的硬件一定一样吗?

参考答案不一定。简单 assign 通常映射成门电路;行为级 if-else 可能被推断为多路器。写法直接影响面积和时序。Verilog 是硬件描述语言,写代码时脑子里要有电路图。

3TTL 时代要操心的扇出系数、电流驱动,CMOS 时代似乎消失了——真的消失了吗?

参考答案没消失,只是换了马甲。CMOS 静态输入阻抗极高,看似无扇出问题;但高频下寄生电容要充放电,扇出多了速度就垮。驱动大电流时输出能力又成瓶颈。工程问题永远是那几个老朋友反复换皮。

27第 27 页 · 课后思考