组合逻辑电路
看懂组合逻辑电路的设计、分析与竞争冒险,不再只靠死记硬背
按 空格/→ 演示下一步
全部页面点击任意一页,跳回舞台从这页播放
组合逻辑电路
看懂组合逻辑电路的设计、分析与竞争冒险,不再只靠死记硬背
什么是组合逻辑电路
想象一台只认'此刻'的咖啡机:你投入 5 元并按下'美式',它立刻出一杯;不会记得你十分钟前点过什么。组合逻辑电路就是这种'只活在当下'的电路。
投币+按按钮=出咖啡,不记得你十分钟前点过什么
组合逻辑 vs 时序逻辑
它们的根本差异在'是否有记忆'——这一条决定了能解决哪类问题。
- 输出仅由当前输入的布尔函数决定
- 无存储元件,纯门级组合即可实现
- 无时钟概念,速度取决于最长路径延迟
- 典型:加法器、编码器、多路选择器
- 输出由当前输入与内部状态共同决定
- 依赖触发器或寄存器保持历史状态
- 需要时钟同步,须满足建立保持时间
- 典型:计数器、有限状态机、寄存器堆
组合逻辑电路分析方法
上一页我们说组合逻辑电路只看输入就能定输出。但面对一张真实电路图——十几个门交叉相连——你从哪儿下手读出它到底实现了什么功能?
电路图是图形语言,逻辑式是代数语言,分析就是翻译;化简相当于润色,真值表相当于校对
分析步骤详解
组合逻辑电路分析有四步:从电路图出发,逐步推导到功能描述。
组合逻辑电路设计方法
上几页我们学会了「读懂」一个电路——现在反过来,给你一个需求,比如「三人表决多数通过」,怎么从零把它变成电路?这就是设计。
需求=「想吃什么」;食材清单=真值表;精简菜谱=化简后的式子;端上桌=实际电路
设计步骤详解
设计组合逻辑电路有标准四步,每步衔接上一步的输出。
分析与设计流程对照
上排从电路追到功能,下排从功能推到电路;三组虚线标出两边共同的逻辑式、化简与真值表。
编码器原理
上回我们把分析与设计流程都梳理了一遍。接下来往里填一类高频器件——编码器。它专做一件事:把『哪一个输入有效』翻译成『二进制编号』,相当于数字系统里的『点名员』。
8 条赛道是 8 路输入,第 3 道犯规时裁判举 ‘011’,把‘第几道’直接编码为 3 位二进制
编码器结构与应用
8线-3线编码器框图及优先编码概念
译码器原理
上一页讲了编码器是『多选一压缩』,这一页反过来——译码器是把压缩的二进制代码『解压』成一路具体的控制信号。
前台喊『203』,只有 203 房间应答;译码器收到代码,只激活对应一路
译码器结构与应用
从左读:地址与三路使能进入译码核,右侧8路仅一路为有效低。
编码器与译码器对比
编码器与译码器名字只差一个字,但数据流向相反——混淆点就在'编'与'译'的方向上。
- 功能方向:多路输入 → 少路输出(多化少)
- 结构对应:n 个输入对应 log₂n 个输出
- 典型器件:8 线-3 线优先编码器(如 74148)
- 常见应用:键盘扫描、产生地址或优先级码
- 功能方向:少路输入 → 多路输出(少化多)
- 结构对应:n 个输入对应 2ⁿ 个输出
- 典型器件:3 线-8 线译码器(如 74138)
- 常见应用:存储器片选、显示驱动
半加器与全加器
加减乘除是 CPU 的命根子,而几乎所有运算最终都拆成加法。今天用前页的设计流程,做一位二进制加法器——它有两个经典形态:半加器和全加器。
半加器像只算两数;全加器还要把上一位送来的进位一起加上
全加器内部结构
全加器由两个半加器和一个或门级联而成,顺着箭头追踪每一比特信号的旅程。
串行加法器与超前进位加法器
上一页看清了一个全加器怎么算一位和。但 CPU 要做 64 位加法时,把 64 个全加器串起来就行了吗?两位工程师给出了截然不同的答案。
串行要等上游传完才动;CLA 提前算好水流路径,所有人同时开始
数据选择器原理
加法器已经能算得很快了,但真实芯片里常有几路数据同时涌入——比如内存、外设、总线都要送进 CPU。这就需要一个「调度员」在它们之间只挑一路放行,这就是数据选择器(MUX)。
很多频道=2^n 路输入;遥控器按键=n 位选择码;屏幕只显示一个台=单路输出
4选1数据选择器
看数据如何被选通:选择端译码→输入端匹配→使能端门控→输出汇总
加法器与数据选择器对比
加法器管"算什么",数据选择器管"选哪条"——名字里都带"器",但干的活截然不同。
- 功能定位:对输入位执行算术运算,输出和与进位
- 输入输出:两个n位加数 → n位和 + 1位进位
- 控制信号:无,结果由输入位直接算出
- 典型应用:ALU运算单元、地址偏移、累加计数
- 功能定位:从多路数据中选一路输出
- 输入输出:2^n路输入 → 1路输出(n为选择端位数)
- 控制信号:选择端S决定哪一路被选中
- 典型应用:寄存器组选择、总线切换、数据分时复用
为什么用中规模器件
前面做加法器时,若把每个与、或、非门都单独接线,功能虽能实现,芯片数量和排线却会迅速膨胀。更常见的做法,是用现成的中规模集成器件(MSI)完成一整类逻辑。
基本门像散装零件,MSI像已拼好的桥段;少接很多线,还便于复用和替换。
用数据选择器实现逻辑函数
用数据选择器实现逻辑函数,五步把真值表翻译成电路连线。
设计实例:3变量函数
Python 代码:把 F=Σm(1,3,4,6) 拆成 D0~D3 四个关于 C 的表达式,并验证 MUX 与原函数全 8 输入一致。
L2 定义原函数;L13 固定 AB 对 C 取两值即 Di;L14 把 4 种 (d0,d1) 归为 0/1/C/C';L22 回灌 MUX 扫 8 输入验证一致。
用译码器实现逻辑函数
将函数接或门,利用最小项展开
设计实例:译码器方案
用 Python 真值表验证 3-8 译码器 + 一只或门即可实现 Σm(1,3,4,6)
译码器输出天然覆盖全部 8 个最小项;任一函数只需把对应 mi 接或门。L14 一行即把 Σm 表达式落地,L20 遍历全部输入确认两种实现等价。
两种实现方案对比
MUX法和译码器法都能实现组合逻辑函数,但原理不同、适用场景不同。选错方案可能浪费器件、增加复杂度。
- 原理:地址选通,从数据端选一路输出
- 适用:变量数=地址端数+1 的函数
- 优点:单片即可,无需外接门
- 局限:变量多时需多片级联
- 原理:每根输出线对应一个最小项
- 适用:变量数=地址端数的任意函数
- 优点:多输出函数可并行实现
- 局限:需外接与非门组合最小项
组合逻辑电路知识图谱
- ✓分析与设计互为逆过程
- ✓编码与译码结构对称、方向相反
- ✓中规模器件是函数的通用积木
- ✓速度与面积的取舍贯穿每个设计
课后思考
先合上课本独立想三分钟,再翻看参考答案对思路。
参考答案回忆组合逻辑 vs 时序逻辑的核心区别——输出只取决于当前输入。引入反馈或记忆,输出就开始依赖历史,电路就跨入了时序逻辑的领地。
参考答案思考芯片引脚利用率、扇出、扩展性、与其它电路共享使能等。4选1只需选通端变量,译码器则需把所有变量接入地址端,并配合门电路组合。
参考答案不算。输出经延迟回灌到输入,意味着输出取决于「过去的自己」,引入了时间维度的依赖,违反「输出仅由当前输入决定」的核心定义。这正是时序逻辑的入口。