数字逻辑:门电路、卡诺图与触发器:练习题及分步解答

免费的数字逻辑:门电路、卡诺图与触发器练习题,附图示、提示和完整详细解答。每次数值都不同,分三个难度:门电路、真值表与延迟, 布尔代数、卡诺图与多路选择器, 无关项、触发器与计数器。

免费练习题简单
AF

NAND 和 NOR 是通用门:任何逻辑函数都可以只用其中一种构造出来。构造所示的 NOT 函数,最少需要多少个 2 输入 NAND 门 N?

F = A′

精确答案:整数,不要四舍五入。

下一题 →

练习内容

  1. 简单门电路、真值表与延迟
  2. 中等布尔代数、卡诺图与多路选择器
  3. 困难无关项、触发器与计数器

如何求解数字逻辑:门电路、卡诺图与触发器问题

  1. 对于电路,从输入到输出一个门一个门地分析,并在每根线上写出值;或者写出它的表达式并填写真值表。
  2. 化简时,把 1(以及标为 X 的无关项)填入行列按格雷码 00, 01, 11, 10 排列的卡诺图。
  3. 用尽可能少而大的圈(由 1、2、4、8 或 16 个格子组成)覆盖所有 1,可以绕过边界;每个圈对应一个乘积项,由保持不变的变量构成。求 POS 形式时圈 0。
  4. 对于触发器和计数器,在每个有效时钟边沿读取输入,写出每个边沿之后的状态,并记住 n 位计数器在 2ⁿ 个状态之后回绕。

常见错误

  • 把卡诺图排成 00, 01, 10, 11,而不是格雷码 00, 01, 11, 10。
  • 忘记圈可以绕过边界,或者画出由 3 个或 6 个格子组成的圈。
  • 覆盖了并不能使圈变大的无关项。
  • 忘记计数器的回绕,或者把 Q₃Q₂Q₁Q₀ 的顺序读反。

关键公式

基本逻辑门
A·B, A + B, A′, (A·B)′, (A + B)′, A ⊕ B
布尔规则
X + X′ = 1, X·X′ = 0, X + XY = X, XY + XY′ = X
德摩根律
(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′
卡诺图的顺序
00, 01, 11, 10 (Gray code)
由 2ᵏ 个格子组成的圈
消去 k 个变量
4 选 1 多路选择器
F = A′B′I0 + A′BI1 + AB′I2 + ABI3
触发器
D: Q⁺ = D, T: Q⁺ = T ⊕ Q, JK: Q⁺ = JQ′ + K′Q
计数器
n 位:2ⁿ 个状态; 模 N:满足 2ⁿ ≥ N 的最小 n; fout = fclk/N
行波计数器
fmax = 1/(n·tpd)
环形计数器与约翰逊计数器
n 个和 2n 个状态

从零开始学习数字逻辑:门电路、卡诺图与触发器

学习本课之前: 数制

11、0 与逻辑门

数字电路只处理两个值:0(低电压,假)和 1(高电压,真)。逻辑门有一个或多个输入,给出一个输出。

ABA·BANDABA + BORAA′NOT
  • AND 只有在所有输入都为 1 时输出 1。写作 A·B 或 AB。
  • OR 在至少有一个输入为 1 时输出 1。写作 A + B。
  • NOT 取反:0 变为 1,1 变为 0。写作 A′(或在 A 上方加横线)。
  • NAND 和 NOR 是 AND 和 OR 后接 NOT;符号上的小圆圈表示“取反”。
  • XOR(A ⊕ B)在输入不同时输出 1。

真值表列出输入各种组合对应的输出:n 个输入有 2ⁿ 行。行 ABC = 101 是第 5 行,称为最小项 m₅。

自测 A = 1,B = 0。NAND 门输出什么?
  1. 0
  2. 1
  3. 什么也不输出:NAND 需要两个输入都为 1
  4. 取决于之前的输出

答案: 1. 1 和 0 的 AND 为 0,NAND 将其取反得 1。NAND 只有在所有输入都为 1 时才为 0。

2布尔代数

逻辑表达式遵循与普通代数类似的规则,另外还有几条自己的规则。最常用的有:

X + X′ = 1 X·X′ = 0 X + X = X X + X·Y = X
X·Y + X·Y′ = X 德摩根定律:(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′

合并律 X·Y + X·Y′ = X 是化简的核心:只有一个变量不同的两项可以合并,该变量消去。

积之和(SOP)是若干 AND 项的 OR,例如 F = AB′ + C。和之积(POS)是若干 OR 项的 AND,例如 F = (A + B)(B′ + C)。每个乘积项由文字构成:即变量,带或不带撇号。

3卡诺图

卡诺图是把真值表画成网格,相邻的格子恰好只有一个变量不同。因此行和列按 00、01、11、10(格雷码)排列,而不是按二进制顺序。

ABC00011110000103121140507161F = B
  1. 在每个最小项对应的格子里写 1;格子里的小数字是它的最小项编号。
  2. 在 1 的周围画出由 1、2、4、8 或 16 个格子组成的矩形。圈可以绕过边界:最左列与最右列相邻,最上行与最下行也相邻。
  3. 让每个圈尽可能大,并在覆盖所有 1 的前提下使用尽可能少的圈。
  4. 把每个圈读成一个乘积项:只保留圈内不变的变量。由 2ᵏ 个格子组成的圈会消去 k 个变量。

在上面的图中,四个 1 组成一个圈。圈内 A 变化,C 变化,只有 B = 1 保持不变,所以 F = B。

标有 X 的格子是无关项:即永远不会出现的输入组合。当它能使圈变大时把 X 当作 1,否则忽略它。改为圈 0 则得到最简 POS 形式。

自测 在四变量卡诺图中,由 4 个格子组成的圈给出多少个文字?
  1. 1
  2. 2
  3. 3
  4. 4

答案: 2. 四个格子即 2²,所以圈内有两个变量变化并消去。四个变量中还剩两个。

4例题讲解

跟着每一步走。打开下一步之前,先试着预测它。

例题讲解

求 F(A, B, C) = Σm(0, 2, 4, 5, 6) 的最简 SOP 形式,并数出其文字个数。

1

填写卡诺图

行 A = 0, 1;列 BC = 00, 01, 11, 10。1 填在 m0、m2(第 0 行,第 00 列和第 10 列)以及 m4、m5、m6(第 1 行,第 00、01 和 10 列)。

2

最大的圈

列 BC = 00 与 BC = 10 跨越边界相邻。它们合在一起包含 m0、m2、m4 和 m6:一个四格圈。只有 C = 0 保持不变,所以这个圈是 C′。

3

覆盖最后一个 1

m5(A = 1,BC = 01)仍未被覆盖。把它与相邻的 m4 配成一对:在这一对中 A = 1 和 B = 0 保持不变,所以该项是 AB′。

4

读出答案

F = C′ + AB′

两项共三个文字。若单独圈 m5,会得到更长的项 AB′C:圈要尽可能大,即使圈之间有重叠。

答案

F = C′ + AB′,共 3 个文字。

5触发器与计数器

门电路会立即响应输入。触发器存储一位,只在时钟的有效边沿(通常是上升沿)改变。

  • D 触发器:每个时钟边沿 Q 变为 D(Q⁺ = D)。
  • T 触发器:T = 1 时翻转,T = 0 时保持。
  • JK 触发器:JK = 00 保持,01 复位为 0,10 置位为 1,11 翻转。
CLKQ

翻转的触发器在每个上升沿都改变,所以其输出频率是时钟频率的一半。把 n 个这样的触发器串联起来,就得到有 2ⁿ 个状态的 n 位二进制计数器。模 N 计数器依次计 0, 1, …, N − 1 然后回到 0;它需要满足 2ⁿ ≥ N 的最小 n,其最后一级输出的频率为 fclk/N。

在异步(行波)计数器中,每一级由前一级提供时钟,因此延迟会累加:时钟周期至少为 n·tpd。移位寄存器型计数器使用的状态较少:n 个触发器的环形计数器有 n 个状态,约翰逊计数器有 2n 个。

自测 一个 4 位二进制加法计数器显示 13。再来 5 个时钟脉冲之后显示几?
  1. 18
  2. 2
  3. 3
  4. 8

答案: 2. 4 位计数器有 16 个状态,并从 15 回绕到 0:13 + 5 = 18,18 mod 16 = 2。写成 18 就忘了回绕。

6常见错误

  • 把卡诺图的列写成 00、01、10、11。正确的顺序是格雷码:00、01、11、10。
  • 忘记圈可以绕过卡诺图的边界。
  • 画出 3 个或 6 个格子的圈。圈的大小只能是 1、2、4、8 或 16 个格子。
  • 去覆盖一个并无帮助的无关项:X 从来不必被覆盖。
  • 读圈时保留了变化的变量。应只保留保持不变的变量。
  • 忘记计数器会回绕:n 位计数器按模 2ⁿ 计数。

7考试题是什么样的

  • 简单:计算给定输入下门电路的输出,数出真值表中 1 的个数,把一个最小项放入卡诺图,求实现某函数所需的 NAND 门数,或最坏情况下的传播延迟。
  • 中等:化简表达式,用卡诺图求最简 SOP 或 POS 形式,用多路选择器实现函数,或找出卡诺图中孤立的 1。
  • 困难:含无关项的卡诺图、必要质蕴涵项、触发器时序图、经过许多脉冲后的计数器、触发器的个数或输出频率,以及移位寄存器。

检查化简后的表达式时,可以代入真值表中的一两行:原式与化简式必须给出相同的输出。

在应用中一步一步地学在应用中一步一步地学

例题详解

例题 1简单
BAF

NAND 和 NOR 是通用门:任何逻辑函数都可以只用其中一种构造出来。构造所示的 AND 函数,最少需要多少个 2 输入 NAND 门 N?

F = A·B

求: N

显示提示
  1. 两个输入连在一起的 NAND 门就是一个反相器。
  2. AND = NAND 后接一个反相器;OR = 反相输入的 NAND(德摩根律)。
  3. 数出每一个门,包括用作反相器的门。
显示答案和分步解答

逻辑门:每个输入和输出都是 0 或 1。AND 只有在所有输入都为 1 时输出 1;OR 在至少有一个输入为 1 时输出 1;NOT 取反。NAND 和 NOR 是 AND 和 OR 后接 NOT,XOR 在输入不同时输出 1。分析电路时,从输入到输出,一个门一个门地进行。真值表列出全部 2ⁿ 种输入组合对应的输出;行号就是输入的二进制值,所以行 ABC = 101 是最小项 m₅。

用 NAND 门构造

德摩根律:A + B = (A′·B′)′,所以 OR 就是反相输入的 NAND。

F = A·B = NOT(NAND(A, B))

数出门的个数

N = 2

答案

N = 2
例题 2中等
ABCD00011110000111101111111

在这个卡诺图中,恰有一个 1 没有相邻的 1,所以它在最简 SOP 形式中仍是单个格子的圈(含四个文字的完整最小项)。跨越卡诺图边界的相邻关系也要计入。点选该格子。

F = Σm(0, 3, 4, 10, 13, 14, 15)
  1. 1AB = 00, CD = 00
  2. 2AB = 00, CD = 01
  3. 3AB = 00, CD = 11
  4. 4AB = 00, CD = 10
  5. 5AB = 01, CD = 00
  6. 6AB = 01, CD = 01
  7. 7AB = 01, CD = 11
  8. 8AB = 01, CD = 10
  9. 9AB = 11, CD = 00
  10. 10AB = 11, CD = 01
  11. 11AB = 11, CD = 11
  12. 12AB = 11, CD = 10
  13. 13AB = 10, CD = 00
  14. 14AB = 10, CD = 01
  15. 15AB = 10, CD = 11
  16. 16AB = 10, CD = 10
显示提示
  1. 相邻的格子恰好只有一个变量不同。
  2. 最左列与最右列相邻,最上行与最下行也相邻。
  3. 检查每个 1 的四个邻格(上、下、左、右,循环绕回)。
显示答案和解析

卡诺图:各格按格雷码(00, 01, 11, 10)排列,所以相邻的格子(包括跨越边界的格子)恰好只有一个变量不同。把 1 圈成由 1、2、4、8 或 16 个格子组成的矩形,圈尽可能大、尽可能少,直到每个 1 都被覆盖。每个圈对应一个乘积项:圈内保持不变的变量。由 2ᵏ 个格子组成的圈会消去 k 个变量。无关项 (X) 可用来使圈变大,但不必被覆盖。改为圈 0 则得到最简 POS 形式。

每个 1 的邻格

有相邻 1 的 1 可以加入由两个或更多格子组成的圈。

m3: m2, m1, m7, m11 → 0
ABCD00011110000111101111111

孤立的 1

m3 = A′B′CD → AB = 00, CD = 11

答案

AB = 00, CD = 11
例题 3困难
TQ0​Q0​TQ1​Q1​TQ2​Q2​TQ3​Q3​CLKMOD-12

同步模 12 计数器依次计 0, 1, …, 11,然后回到 0。它从 8 开始。经过 36 个时钟脉冲后,它显示的计数 Q(十进制)是多少?

Q0 = 836N = 12

求: Q

显示提示
  1. 该计数器有 12 个状态,每 12 个脉冲重复一次。
  2. 经过 k 个脉冲后,计数为 (8 + k) mod 12。
  3. 36 mod 12 = 0.
显示答案和分步解答

触发器与计数器:触发器只在时钟的有效边沿改变。D 复制其输入 (Q⁺ = D);T 在 T = 1 时翻转;JK 在 00 时保持,01 时复位,10 时置位,11 时翻转。n 位二进制计数器有 2ⁿ 个状态,按模 2ⁿ 计数;模 N 计数器依次计 0, 1, …, N − 1 然后回到 0,需要满足 2ⁿ ≥ N 的最小 n 个触发器。行波计数器的每一级使频率减半,所以模 N 计数器的最后一级输出频率为 fclk/N。n 个触发器的约翰逊计数器有 2n 个状态,环形计数器有 n 个。

完整循环

每 12 个脉冲使计数器回到相同的状态。

36 = 3·12 + 0

剩余脉冲之后的计数

Q = (8 + 0) mod 12 = 8
Q = 1000₂

答案

Q = 8

问与答

什么是数字逻辑:门电路、卡诺图与触发器?

数字电路只处理两个值:0(低电压,假)和 1(高电压,真)。逻辑门有一个或多个输入,给出一个输出。

数字逻辑:门电路、卡诺图与触发器题目如何一步步求解?
  1. 对于电路,从输入到输出一个门一个门地分析,并在每根线上写出值;或者写出它的表达式并填写真值表。
  2. 化简时,把 1(以及标为 X 的无关项)填入行列按格雷码 00, 01, 11, 10 排列的卡诺图。
  3. 用尽可能少而大的圈(由 1、2、4、8 或 16 个格子组成)覆盖所有 1,可以绕过边界;每个圈对应一个乘积项,由保持不变的变量构成。求 POS 形式时圈 0。
  4. 对于触发器和计数器,在每个有效时钟边沿读取输入,写出每个边沿之后的状态,并记住 n 位计数器在 2ⁿ 个状态之后回绕。
数字逻辑:门电路、卡诺图与触发器有哪些常见错误?
  • 把卡诺图排成 00, 01, 10, 11,而不是格雷码 00, 01, 11, 10。
  • 忘记圈可以绕过边界,或者画出由 3 个或 6 个格子组成的圈。
  • 覆盖了并不能使圈变大的无关项。
  • 忘记计数器的回绕,或者把 Q₃Q₂Q₁Q₀ 的顺序读反。
数字逻辑:门电路、卡诺图与触发器练习包括哪些内容?
  • 简单: 门电路、真值表与延迟
  • 中等: 布尔代数、卡诺图与多路选择器
  • 困难: 无关项、触发器与计数器

每道题的数值都不同,让你掌握方法,而不是记住答案。 卡住了?先打开一个小提示,需要时再查看完整解析。

练习方式

  • 每道题的数值都不同,让你掌握方法,而不是记住答案。
  • 卡住了?先打开一个小提示,需要时再查看完整解析。
  • 你的进度、错题和收藏的题目都会保留,方便考前复习。

本主题的前后主题

先学习

包含此主题的课程

电气中的更多主题

可打印练习卷