第 135 篇
考研数电·零基础讲义 第08讲|组合逻辑电路的分析与设计方法
考研数电·零基础讲义 · 第 08 讲|组合逻辑电路的分析与设计方法 学完这一讲,你能拿到一张逻辑图说出它是干什么的(分析),也能把一句中文要求变成一张能用的电路图(设计),包括 2026 回忆题"4 位奇校验器"这种题。预计用时 2~2.5 小时。
本讲地图
- 组合逻辑电路是什么:输出只看"此刻"的输入,不记得过去。它是第 08~12 讲的共同主角。
- 分析方法(四步):逐级写式 → 化简 → 列真值表 → 说功能。
- 设计方法(六步):逻辑抽象 → 真值表 → 逻辑式 → 选器件 → 化简变换 → 画图,最后一定要验证。
- 华师怎么考:大题常见"按要求设计一个电路,用指定的门实现",2026 回忆题第 6 题就是"设计 4 位奇校验器,用异或门实现"。本讲把它当作完整例题从头做到尾。
- 教材对应:阎石《数字电子技术基础》(第六版)第 4 章 4.1~4.3 节。
前置知识
- 与、或、非、与非、或非、异或、同或的真值表(见第 02 讲上)。
- 真值表、逻辑式、逻辑图之间互相转换,最小项的写法(见第 03 讲)。
- 公式化简、卡诺图化简、与非-与非形式变换(见第 04 讲上、中、下)。
如果这些还不熟,先别急着往下看,回去把卡诺图练顺,本讲会大量用到。
一、先认识"组合逻辑电路"
1.1 大白话:一台没有记忆的自动售货机
想象一台很"笨"的投币灯:你按下哪几个按钮,灯就立刻按规则亮或灭;你一松手,它就恢复——它完全不记得你刚才按过什么。这就是组合逻辑电路的性格:
任意时刻的输出,只由这一时刻的输入决定,和电路以前处于什么状态无关。
与之相对的是"时序逻辑电路"(第 13 讲以后),它像一个计步器,能记住之前走了多少步,输出要看"现在的输入 + 过去的状态"。
1.2 正式定义与结构特点
教材给出的两个特点,一个讲"功能",一个讲"结构":
- 功能上:输出仅仅取决于当时的输入。
- 结构上:电路里没有存储单元(没有触发器、没有锁存器),信号只从输入往输出单向流动,没有从输出拉回输入的反馈线。
一个有个输入、个输出的组合电路,可以写成一组函数:
逐行拆解:
- :输入变量,每个只能是 0 或 1。
- :输出变量。
- 、……:各自的"规则",可以用真值表、逻辑式、逻辑图、波形图中任何一种来描述(第 03 讲讲过它们可以互相转换)。
除了"逻辑功能",实际电路还有一个重要参数:传输延迟时间 (读作 t-p-d),即输入变了以后,输出要等多久才跟着变。一个信号要穿过几级门,总延迟就大约是几个。这个参数第 12 讲"竞争-冒险"还会用到。
1.3 易错点 ⚠️
- 判断是不是组合电路,看"有没有反馈、有没有存储",不是看门的多少。门再多,只要信号单向流动,就是组合电路。
- "输出与过去无关"指稳定以后的结果。输入刚跳变的一瞬间,输出可能有短暂的毛刺,这是第 12 讲的内容,不改变它是组合电路的本质。
二、组合逻辑电路的分析方法
2.1 大白话:拆一台别人做好的机器
"分析"就是:电路图已经给你了,问它是干什么用的。 好比别人给你一台机器,你顺着管道一段一段看水是怎么流的,最后总结出"哦,原来这是个净水器"。
2.2 分析的四个步骤
- 逐级写式:从输入端开始,给每个门的输出起个名字(比如、),一级一级往后写,直到写出输出的表达式。
- 化简或变换:用公式法或卡诺图把式子化简,必要时变成异或、同或等更"眼熟"的形式。
- 列真值表:把所有输入组合代进去,算出输出。真值表是看功能最直观的形式。
- 说出功能:观察真值表的规律,用一句中文说清楚它是干什么的(表决器?比较器?校验器?加法器?)。
如果题目还问延迟,就数一数从输入到输出最长的路径经过了几级门。
图 1:分析(上)与设计(下)的步骤。两者都绕不开真值表
2.3 例题 1:只用与非门的电路
题目:某电路由 4 个与非门组成:,,,输出(第 4 个与非门把、、再"与非"一次)。分析它的功能。
第 1 步:逐级写式。 已经给出了每一级,把它们串起来:
第 2 步:化简。 用反演律(摩根定理),把最外面那条长横线"拆开":
两条横线叠在一起抵消(),于是得到最简与或式。
第 3 步:列真值表。
| A | B | C | Y |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
第 4 步:说功能。 观察:三个输入里有两个或两个以上是 1,输出就是 1。这是三人多数表决电路:三个人投票,同意记 1,多数同意就通过。
延迟:信号要先过第一级与非门,再过第二级与非门,总共。
小结论:"与非-与非"结构 = "与-或"结构。看到两级与非门,直接把第一级当"与",第二级当"或"就行,这个技巧在分析题里非常省时间。
2.4 例题 2:带异或门的电路
题目:电路有三个输入、、,两个输出。,。分析功能。
列真值表(把先算出来作为中间列,不容易错):
| A | B | CI | S | CO | |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 | 1 | 1 |
说功能:把每一行的(当成普通数字相加)算一下:0、1、1、2、1、2、2、3。再看输出当成两位二进制数:00、01、01、10、01、10、10、11,正好就是 0、1、1、2、1、2、2、3!所以这是1 位全加器:是本位和,是向高位的进位。第 11 讲会专门讲它。
2.5 易错点 ⚠️
- 写式时每一级都起名字,不要一口气写一长串,横线一多就容易漏一条。
- 化简后别忘了列真值表再"说功能"。光看,很多同学说不出"多数表决";一列表就一目了然。
- 说功能要用中文的应用场景来说("三人表决""判断输入数是否大于 5"),只写"实现了"在考试里会被扣分。
三、组合逻辑电路的设计方法
3.1 大白话:按订单造机器
"设计"正好反过来:只给你一句话的要求,让你造出电路。 就像客户说"我要一台三个人投票、多数同意就亮灯的机器",你得自己决定用几个开关、怎么接线。
难点不在画图,而在第一步——把中文翻译成 0 和 1。这一步叫逻辑抽象。
3.2 设计的六个步骤(外加验证)
- 逻辑抽象:
- 找出"原因"和"结果":原因做输入变量,结果做输出变量;
- 规定 0、1 的含义(比如"同意 = 1,不同意 = 0""灯亮 = 1"),这叫状态赋值;
- 根据题意列出真值表。到这一步,一个中文问题就变成了一张表。
- 写出逻辑函数式:把真值表中输出为 1 的行写成最小项之和。
- 选定器件类型:题目要求用什么就用什么——与非门、或非门、异或门、译码器、数据选择器……
- 化简或变换:用卡诺图化成最简式,再变换成"适合所选器件"的形式。比如只许用与非门,就变成与非-与非式;要用异或门,就设法凑成异或形式。
- 画出逻辑电路图。
- 验证:把电路再"分析"一遍,或者穷举所有输入,看是否与真值表一致。
教材还提到第 7 步"工艺设计"(做电路板、调试),考试不考,知道就行。
什么时候可以跳步?如果题目直接给了真值表,第 1 步就省了;如果逻辑关系很直白(比如"有奇数个 1 输出 1"),也可以不列表直接写式——但考试时建议仍然列表,阅卷老师就是看这张表给步骤分的。
3.3 例题 3:举重裁判电路(完整走一遍)
题目:举重比赛有一名主裁判和两名副裁判。只有当主裁判判"成功",并且至少有一名副裁判也判"成功"时,成绩才有效(指示灯亮)。用与非门设计这个电路。
第 1 步:逻辑抽象。
- 输入:主裁判,副裁判、。规定"判成功 = 1,判失败 = 0"。
- 输出:指示灯。规定"灯亮(成绩有效)= 1"。
- 按题意逐行判断,列真值表:
| A | B | C | Y | 理由 |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 主裁判不同意 |
| 0 | 0 | 1 | 0 | 主裁判不同意 |
| 0 | 1 | 0 | 0 | 主裁判不同意 |
| 0 | 1 | 1 | 0 | 主裁判不同意 |
| 1 | 0 | 0 | 0 | 没有副裁判同意 |
| 1 | 0 | 1 | 1 | 主裁 + 副裁 C |
| 1 | 1 | 0 | 1 | 主裁 + 副裁 B |
| 1 | 1 | 1 | 1 | 全部同意 |
第 2 步:写式。 输出为 1 的是第 5、6、7 行(行号从 0 数起),即
第 3 步:选器件:题目指定与非门。
第 4 步:化简与变换。 把用两次(),分别和前两项合并:
再变成与非-与非形式(两次取反,里面用摩根定理):
第 5 步:画图:两个 2 输入与非门分别得到、,再送进第三个 2 输入与非门,输出就是。一共 3 个与非门。
第 6 步:验证:把 8 种输入代进,结果与真值表完全一致(本讲所有结果都已用程序穷举核对)。
顺便一提:用一个或门加一个与门只要 2 个门,更省。但题目指定"与非门",就必须按与非-与非来做。题目指定的器件就是硬约束,不能自作主张。
3.4 易错点 ⚠️
- 状态赋值要写出来:"同意记 1、不同意记 0"这句话必须出现在答卷上,否则真值表没有意义。
- 真值表的输入顺序要按二进制递增 000、001、010……,行号才和最小项编号对得上。
- 题目说"用与非门实现",最后的式子必须全部是与非的形式;如果用到了单独的反变量,要说明它用与非门接成反相器得到(把与非门两个输入并在一起就是非门)。
四、完整例题:2026 回忆题第 6 题——4 位奇校验器
2026 回忆题:设计 4 位奇校验器:4 位中有奇数个 1 输出 1,否则输出 0,用异或门实现。
4.1 大白话:奇偶校验在干什么
数据在传输过程中可能被干扰,某一位 0 变成 1。怎么发现?一个简单办法是数 1 的个数。比如约定"每组数据里 1 的个数必须是奇数",接收端一数,发现是偶数,就知道出错了。能判断"1 的个数是奇是偶"的电路就叫奇偶校验器(第 01 讲下介绍过奇偶校验码)。
本题的电路:输入 4 位、、、,1 的个数为奇数时,为偶数(包括 0 个)时。
4.2 第 1 步:逻辑抽象,列真值表
输入、、、就是 4 位数据本身(每位 0 或 1),输出:奇数个 1 时为 1。逐行数 1 的个数:
| 序号 | A | B | C | D | 1 的个数 | Y |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 | 1 | 1 |
| 2 | 0 | 0 | 1 | 0 | 1 | 1 |
| 3 | 0 | 0 | 1 | 1 | 2 | 0 |
| 4 | 0 | 1 | 0 | 0 | 1 | 1 |
| 5 | 0 | 1 | 0 | 1 | 2 | 0 |
| 6 | 0 | 1 | 1 | 0 | 2 | 0 |
| 7 | 0 | 1 | 1 | 1 | 3 | 1 |
| 8 | 1 | 0 | 0 | 0 | 1 | 1 |
| 9 | 1 | 0 | 0 | 1 | 2 | 0 |
| 10 | 1 | 0 | 1 | 0 | 2 | 0 |
| 11 | 1 | 0 | 1 | 1 | 3 | 1 |
| 12 | 1 | 1 | 0 | 0 | 2 | 0 |
| 13 | 1 | 1 | 0 | 1 | 3 | 1 |
| 14 | 1 | 1 | 1 | 0 | 3 | 1 |
| 15 | 1 | 1 | 1 | 1 | 4 | 0 |
4.3 第 2 步:写出逻辑式
展开就是 8 个最小项相加:
4.4 第 3、4 步:为什么要用异或门?——卡诺图告诉你
先试着用卡诺图化简。把 8 个 1 填进 4 变量卡诺图,你会发现它们排成国际象棋棋盘的样子:任何两个 1 都不相邻(相邻格只差一位,1 的个数奇偶必然相反)。所以一个都圈不起来,最简与或式就是上面 8 项本身——用与或门实现要 8 个 4 输入与门加一个 8 输入或门,非常笨重。
这正是异或门出场的时候。回忆异或的性质(第 02 讲上):
- :两个输入不同时为 1,也就是"两位中有奇数个 1"时为 1。
- 异或满足交换律和结合律:,所以多个变量连续异或可以随便加括号、随便换顺序。
- 推广:的结果,等于"这位中 1 的个数是奇数吗?"——是奇数为 1,偶数为 0。
为什么推广成立?可以这样理解:异或像一个"翻转开关",初始为 0,每遇到一个 1 就翻转一次,遇到 0 不动。翻转奇数次停在 1,偶数次停在 0。
所以本题的函数可以直接写成:
用公式把它推出来(考试写这一段,比只说"显然"更稳):先把前两位和后两位分组,令,。
- 当(、中有 1 个 1)且(、中有 0 个或 2 个 1)时,总数为奇数;
- 当且时,总数也为奇数;
- 时,总数为偶数。
即。
4.5 第 5 步:画逻辑图
用 3 个 2 输入异或门:
- 门 1:输入、,输出;
- 门 2:输入、,输出;
- 门 3:输入、,输出。
图 2:用 3 个异或门组成的 4 位奇校验器,依次演示输入 1000、1100、1110、1111(动画循环播放)
也可以接成"链式":,同样只要 3 个异或门。两者逻辑功能完全相同,区别在速度:
| 接法 | 门数 | 最长路径经过的门 | 延迟 |
|---|---|---|---|
| 树形 | 3 | 2 级 | |
| 链式 | 3 | 3 级 |
所以树形更快,答题时推荐画树形。
4.6 第 6 步:验证
挑几行代进去:
- :,,。1 的个数是 3,奇数,正确。
- :,,。4 个 1,偶数,正确。
- :,,。2 个 1,偶数,正确。
把 16 行全部代入,结果与 4.2 的真值表完全一致(已用程序穷举 16 种输入核对)。
4.7 标准答卷长什么样
解:(1)设输入 4 位数据为、、、,输出为,中有奇数个 1 时,否则。
(2)列真值表(16 行,如上表)。
(3)由真值表得,卡诺图中 1 互不相邻,无法化简;利用异或运算的性质可写成。
(4)画逻辑图:三个 2 输入异或门,接法如图 2。
(5)验证:(举两三行代入说明)。
4.8 易错点 ⚠️
- 不要把"奇校验器"和"偶校验器"搞反。本题"奇数个 1 输出 1",就是。如果要"偶数个 1 输出 1",就在后面加一个非门,即,或把最后一个异或门换成同或门:。
- 同或连写的陷阱:(偶数个变量)并不等于,而是等于它的反;但 3 个变量时。规律:变量个数为奇数时两者相等,为偶数时互为反。考场上拿不准就代两行数验算。
- 卡诺图"棋盘格"一出现,就要立刻想到异或/同或。
- 题目说"用异或门实现",不要再画与门或门。
五、把方法串起来:设计中常用的"变换"
设计第 4 步"变换成适合器件的形式",是考试最容易丢分的地方。这里集中整理一下:
| 要求用的器件 | 目标形式 | 怎么得到 |
|---|---|---|
| 与门 + 或门 | 最简与或式 | 卡诺图圈 1 |
| 只用与非门 | 与非-与非式 | 最简与或式两次取反,里面用摩根定理 |
| 只用或非门 | 或非-或非式 | 先求最简或与式(卡诺图圈 0 得再取反),再两次取反 |
| 与或非门 | 与或非式 | 卡诺图圈 0 得的与或式,就是它的反 |
| 异或门 | 异或式 | 观察"奇偶""不同""相加"等特征;卡诺图成棋盘格 |
| 译码器、数据选择器 | 最小项形式 | 第 09、10 讲 |
一个小例子:只用与非门实现。两次取反:
两个与非门出、,第三个与非门出。
速记卡
| 项目 | 要点 |
|---|---|
| 组合电路特点 | 输出只取决于当前输入;无存储、无反馈 |
| 分析四步 | 逐级写式 → 化简 → 真值表 → 说功能(+ 数延迟级数) |
| 设计六步 | 逻辑抽象(定变量、赋值、列表)→ 写式 → 选器件 → 化简/变换 → 画图 → 验证 |
| 与非-与非 | 等价于与-或;最简与或式两次取反即得 |
| 奇校验 | ,奇数个 1 输出 1 |
| 偶校验 | |
| 同或连写 | 奇数个变量:连写 = 连写;偶数个变量:互为反 |
| 树形 vs 链式 | 门数相同,树形级数少、更快 |
| 卡诺图棋盘格 | 无法用与或化简,立刻想到异或/同或 |
自测练习
1. 分析:某电路由 4 个与非门组成,,,,。写出的最简式并说明功能。
答案与提示
,,。功能:异或门(用 4 个与非门搭成的异或门)。已穷举 4 种输入核对。
2. 设计:输入、、组成一个 3 位二进制数(为最高位),当这个数是质数(2、3、5、7)时输出 1。写出最简与或式。
答案与提示
。卡诺图上、合并为,、合并为,得。注意 1 不是质数,所以不取。
3. 设计一个 4 位偶校验器(4 位中有偶数个 1,包括全 0,输出 1),用异或门和同或门实现。
答案与提示
。用两个异或门得到、,再用一个同或门。也可以写成:因为,所以,同样正确。已穷举核对。
4. 只用 2 输入与非门实现,最少需要几个门?
答案与提示
,需要 3 个 2 输入与非门。
5. 设计一个"多数通过"电路:4 个评委、、、,至少 3 人同意(记 1)才通过。写出最简与或式。
答案与提示
。卡诺图中分别与、、、相邻,圈出 4 个两格圈:。
6.(华师真题风格)数据传输时采用奇校验:发送端在 3 位数据、、后附加一位校验位,使 4 位中 1 的个数为奇数。(1)设计产生的电路;(2)接收端用什么电路检查是否出错?
答案与提示
(1)若、、中已有奇数个 1,;有偶数个 1,。所以:两个异或门后接一个非门,或者第二个门直接用同或门,。注意不能写成——三个变量时,正好差一个"非"。
(2)接收端用本讲的 4 位奇校验器:,表示 1 的个数为奇数、正常;表示出错(只能发现奇数位出错)。已穷举核对的 8 种情况。
7. 设计一个 2 位数值比较电路:输入和各表示一个 2 位二进制数,当时输出 1。写出最简与或式。
答案与提示
按排成 4 变量,,化简得。理解:高位大就一定大();或者低位大且高位"不吃亏"。第 11 讲的数值比较器就是这个思路的推广。
下一讲预告
第 09 讲(上)开始认识常用的中规模组合器件,第一个是"编码器"——把"哪个按键被按下"变成二进制代码,并重点读懂优先编码器 74HC148 的功能表。
👉 点击进入下一讲:第09讲(上)|编码器
评论
还没有评论。 来写第一条。