本页目录
组合逻辑电路
什么是组合逻辑
组合逻辑 — 输出仅取决于当前输入,无记忆功能。
常用组合电路
多路选择器 (MUX)
译码器 (Decoder)
n 位输入 → 2ⁿ 位输出 (每次仅1位为1)
2→4 译码器:
A1 A0 | Y0 Y1 Y2 Y3
0 0 | 1 0 0 0
0 1 | 0 1 0 0
1 0 | 0 0 1 0
1 1 | 0 0 0 1
应用: 地址译码 (片选信号)、七段数码管驱动
典型芯片: 74HC138 (3→8), 74HC154 (4→16)
编码器 (Encoder)
译码器的逆操作: 2ⁿ 位输入 → n 位输出
优先编码器: 多个输入同时有效时,输出最高优先级的编码
典型: 74HC148 (8→3 优先编码器)
加法器
半加器 (Half Adder)
全加器 (Full Adder)
行波进位 vs 超前进位
行波进位 (Ripple Carry):
进位逐级传递 → 延迟大 (n×t_fa)
简单、省面积
超前进位 (Carry Lookahead):
并行计算所有进位 → 延迟小 (O(log n))
复杂度高、面积大
典型: 74HC283 (4位超前进位加法器)
比较器
可编程逻辑
基本思想
不用搭门电路,用可编程器件实现任意逻辑
PAL/GAL: 与阵列可编程 + 或阵列固定
CPLD: 多块 PAL + 可编程互连
FPGA: 查找表 (LUT) + 触发器 + 可编程互连
FPGA 的 LUT
2ⁿ 输入的 LUT 可实现任意 n 输入逻辑函数
3-LUT: 8 个 SRAM 单元存真值表 + 3 级 MUX 树
→ 任意 3 输入布尔函数!
典型: 6-LUT (Xilinx), 4-LUT + 加法器 (Intel ALM)
时序问题
传播延迟 (tpd)
信号从输入到输出稳定所需的时间
多个门串联: 总延迟 = 各门延迟之和
关键路径: 延迟最长的路径 → 决定电路最高工作频率
竞争与冒险
多条路径延迟不同 → 输出可能出现 glitch
检测: 卡诺图中相邻质蕴含项之间没有覆盖
解决: 加冗余项 或 在输出用时钟同步 (寄存器打一拍)
常见应用
| 电路 | 功能 | 芯片 |
|---|---|---|
| 三态缓冲器 | 控制总线接入 | 74HC125/126 |
| 总线收发器 | 双向数据传输 | 74HC245 |
| 锁存器 | 电平触发保持 | 74HC373/573 |
| 移位寄存器 | 串/并转换 | 74HC595 |
关键词: 组合逻辑, MUX, 译码器, 加法器, 比较器, FPGA, LUT, glitch, 关键路径