数字逻辑电路重点模拟考题
按你给出的课程大纲和历年题高频模式设计:不是只出一张随机卷,而是每个重点都给几道题,适合考前逐块练习。
建议先做题,不要急着展开解析。若时间紧,优先做二、四、五部分;这些是历年题里最容易拉开分差的部分。
题量与分值
| 部分 | 对应大纲重点 | 分值 | 训练目标 |
|---|---|---|---|
| 一 | 数制和编码 | 10 | 二进制、8421 BCD、余三码、格雷码互转。 |
| 二 | 逻辑代数与逻辑函数化简 | 20 | 公式法、K 图、无关项、竞争冒险、QM 法概念。 |
| 三 | 集成门电路与触发器 | 20 | TTL 负载能力、OC/三态、触发器功能、时序参数与最高频率。 |
| 四 | 组合逻辑电路 | 25 | 译码器、MUX、优先编码器、比较/检测、ALU 基本设计。 |
| 五 | 同步时序电路 | 35 | 状态分析、自启动、序列检测器、循环计数器、集成计数器、移位寄存器序列发生器。 |
| 六 | 可编程逻辑电路 | 10 | PROM/PAL/PLA 对比、ROM 容量、PLA 实现码制转换。 |
一、数制和编码(10 分)
1. 编码互转
4 分完成下表。
| 十进制数 | 自然二进制 | 8421 BCD | 余三码 | 该自然二进制对应的格雷码 |
|---|---|---|---|---|
| 23 |
答案与解析
$(23)_{10}=(10111)_2$。
- 8421 BCD 按十进制每一位编码:2 为 0010,3 为 0011,所以为
0010 0011。 - 余三码是每个十进制数位加 3 后用 8421 表示:2+3=5 为 0101,3+3=6 为 0110,所以为
0101 0110。 - 二进制 10111 的格雷码:最高位不变;后续位为相邻二进制位异或,得到
11100。
2. 格雷码反求二进制
2 分已知 4 位格雷码为 1101,求其对应的自然二进制和十进制值。
答案与解析
格雷码 $G=1101$。自然二进制最高位 $B_3=G_3=1$,之后逐位累异或:
$$B_2=B_3\oplus G_2=1\oplus1=0,\quad B_1=B_2\oplus G_1=0\oplus0=0,\quad B_0=B_1\oplus G_0=0\oplus1=1.$$
所以二进制为 1001,十进制为 9。
3. 合法码判断
2 分判断下列 4 位码中,哪些是合法 8421 BCD 码?哪些是合法余三码?
0000, 0011, 1001, 1010, 1100, 1111
答案与解析
- 合法 8421 BCD:
0000、0011、1001。8421 BCD 只允许 0–9,即 0000–1001。 - 合法余三码:
0011、1001、1010、1100。余三码对应十进制 0–9 加 3,因此范围是 0011–1100。
4. 概念解释
2 分为什么格雷码常用于位置编码或计数器输出过渡?请用一句话说明核心原因。
答案与解析
格雷码相邻状态只改变 1 位,能减少多位同时翻转带来的瞬态错误和读数不确定性。例如自然二进制从 0111 到 1000 会有 4 位变化,而格雷码相邻状态只变 1 位。
二、逻辑代数与逻辑函数化简(20 分)
5. 公式法化简(一)
4 分用逻辑代数公式化简:
$$F=\overline{(AB+\overline C)}+A\overline C+B.$$
答案与解析
$$\overline{(AB+\overline C)}=\overline{AB}\cdot C=(\overline A+\overline B)C=\overline AC+\overline BC.$$
所以
$$F=\overline AC+\overline BC+A\overline C+B.$$
含 $B$ 时 $F=1$;若 $B=0$,则 $F=\overline AC+A\overline C$,再结合各项可得到最简:
$$\boxed{F=A+B+C}.$$
6. 公式法化简(二)
4 分化简:
$$F=AB\overline C+\overline ABC+A\overline B\overline C+\overline A\overline C.$$
答案与解析
先把含 $\overline C$ 的项合并:
$$AB\overline C+A\overline B\overline C+\overline A\overline C=\overline C(AB+A\overline B+\overline A).$$
其中 $AB+A\overline B=A$,所以括号为 $A+\overline A=1$,得到 $\overline C$。剩下 $\overline ABC$ 只在 $\overline C=0$ 时补充成立,故:
$$\boxed{F=\overline C+\overline AB}.$$
7. Karnaugh 图含无关项化简
5 分用 K 图化简:
$$F(A,B,C,D)=\Sigma m(0,3,4,7,11)+\Sigma d(8,9,12,13,14,15).$$
要求写出最简与或式。
答案与解析
把 1 和无关项 $d$ 一起用于扩大圈组,可得到两个 8 格/4 格等价大圈,最简式为:
$$\boxed{F=AB+\overline A\,\overline B}.$$
本质上是同或:$F=A\odot B$。
8. 竞争冒险判断
4 分判断下面两个二级与或表达式是否存在静态 1 竞争冒险,并说明原因:
- $F_1=\overline AB+AC+BC$
- $F_2=\overline AB+AC$
答案与解析
$F_1$ 不存在由 $A$ 翻转引起的静态 1 冒险,因为它包含共识项 $BC$。
$F_2$ 存在静态 1 冒险:当 $B=C=1$ 时,$F_2=\overline A+A$ 理论上恒为 1,但实际电路中 $\overline AB$ 和 $AC$ 两条通路延迟不同,$A$ 翻转时可能短暂同时为 0。加入冗余项 $BC$ 可消除:
$$F=\overline AB+AC+BC.$$
9. QM 表格化简法
3 分简述 Quine–McCluskey(QM)表格化简法的核心思想和主要步骤。
答案与解析
核心思想:把最小项按 1 的个数分组,相邻组之间只差 1 位的项可以合并,用 “–” 表示被消去的变量;反复合并直到不能再合并,得到质蕴含项,再用覆盖表选择必要质蕴含项和最少附加项。
- 列出全部 1 项和可利用的无关项。
- 按二进制中 1 的个数分组。
- 相邻组逐轮合并,标记已合并项。
- 未被继续合并的项为质蕴含项。
- 建立质蕴含项覆盖表,找本质质蕴含项,完成最小覆盖。
三、集成门电路与触发器(20 分)
10. TTL 门负载能力
4 分某 TTL 与非门输出、输入电流参数为:
$$I_{OL}=16\text{ mA},\quad I_{IL}=1.6\text{ mA},\quad I_{OH}=0.4\text{ mA},\quad I_{IH}=40\mu\text{A}.$$
问一个输出最多能带动多少个同型号输入?
答案与解析
低电平负载能力:
$$N_L=\frac{I_{OL}}{I_{IL}}=\frac{16}{1.6}=10.$$
高电平负载能力:
$$N_H=\frac{I_{OH}}{I_{IH}}=\frac{0.4\text{mA}}{40\mu\text{A}}=10.$$
取较小者,所以最多带动 $\boxed{10}$ 个同型号输入。
11. OC 门、三态门与线与
3 分判断并改错:普通 TTL 与非门、OC 与非门、三态门都可以把输出端直接连在一起实现线与。
答案与解析
该说法错误。
- 普通 TTL 推挽输出不能直接并联,否则可能一个门输出高、另一个门输出低,形成大电流冲突。
- OC 门可以通过公共上拉电阻实现线与/线或逻辑。
- 三态门可共用总线,但必须保证同一时刻最多只有一个门处于使能输出状态;它不是用来“线与”的。
12. 触发器次态
4 分填写下列触发器在有效时钟沿后的次态。
| 触发器 | 输入条件 | $Q_{n+1}$ |
|---|---|---|
| D | $D=0$ | |
| D | $D=1$ | |
| JK | $J=1,K=0$ | |
| JK | $J=K=1$ |
答案与解析
| 触发器 | 输入条件 | $Q_{n+1}$ |
|---|---|---|
| D | $D=0$ | 0 |
| D | $D=1$ | 1 |
| JK | $J=1,K=0$ | 1 |
| JK | $J=K=1$ | $\overline{Q_n}$,翻转 |
记忆:D 触发器“次态等于 D”;JK 触发器 00 保持,01 置 0,10 置 1,11 翻转。
13. 同步电路最高时钟频率
6 分某同步时序电路中,一级触发器输出经过组合逻辑后进入下一级触发器。已知:
$$t_{pdQ}^{max}=22\text{ ns},\quad t_{pdQ}^{min}=8\text{ ns},\quad t_{comb}^{max}=18\text{ ns},\quad t_{comb}^{min}=4\text{ ns},\quad t_{su}=12\text{ ns},\quad t_h=5\text{ ns}.$$
- 求最高时钟频率。
- 检查保持时间是否满足。
答案与解析
建立时间约束:
$$T_{clk}\ge t_{pdQ}^{max}+t_{comb}^{max}+t_{su}=22+18+12=52\text{ ns}.$$
所以
$$f_{max}=\frac{1}{52\text{ ns}}\approx \boxed{19.23\text{ MHz}}.$$
保持时间约束:
$$t_{pdQ}^{min}+t_{comb}^{min}=8+4=12\text{ ns}\ge t_h=5\text{ ns}.$$
保持时间满足。
14. TTL 与 CMOS 特点
3 分比较 TTL 与 CMOS 在功耗、输入阻抗、速度方面的一般特点。
答案与解析
| 项目 | TTL | CMOS |
|---|---|---|
| 功耗 | 静态功耗相对较大 | 静态功耗很小,动态功耗与频率、负载电容有关 |
| 输入阻抗 | 相对低 | 很高 |
| 速度 | 传统 TTL 速度较快 | 早期 CMOS 较慢,现代 CMOS 可很快;课程题通常按“CMOS 低功耗、TTL 较快/驱动能力强”理解 |
四、组合逻辑电路(25 分)
15. 用 3-8 译码器实现一位全加器
5 分设一位全加器输入为 $A,B,C_i$,输出为 $S,C_o$。要求用 3-8 译码器和必要的门电路实现,写出 $S,C_o$ 的最小项表达式。
答案与解析
全加器:
$$S=A\oplus B\oplus C_i,$$
$$C_o=AB+AC_i+BC_i.$$
按输入顺序 $A,B,C_i$ 编号,则:
$$\boxed{S=\Sigma m(1,2,4,7)},\qquad \boxed{C_o=\Sigma m(3,5,6,7)}.$$
若译码器输出为高有效,分别把对应最小项输出 OR 起来即可。若用 74LS138 这类低有效译码器,则可用 NAND 门把对应低有效输出合成。
16. 用 8 选 1 MUX 实现奇校验
5 分输入 $A,B,C,D$ 中 1 的个数为奇数时输出 $Y=1$,否则 $Y=0$。用一个 8 选 1 数据选择器实现。令选择端为 $S_2S_1S_0=ABC$,写出 $I_0\sim I_7$ 应接什么。
答案与解析
目标函数:
$$Y=A\oplus B\oplus C\oplus D.$$
当 $A\oplus B\oplus C=0$ 时,$Y=D$;当 $A\oplus B\oplus C=1$ 时,$Y=\overline D$。按 $ABC=000,001,010,011,100,101,110,111$ 排列:
| $ABC$ | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
|---|---|---|---|---|---|---|---|---|
| $I_i$ | $D$ | $\overline D$ | $\overline D$ | $D$ | $\overline D$ | $D$ | $D$ | $\overline D$ |
所以:$I_0=D,I_1=\overline D,I_2=\overline D,I_3=D,I_4=\overline D,I_5=D,I_6=D,I_7=\overline D$。
17. 十进制计数器输出检测
5 分某 8421 BCD 十进制计数器输出为 $A B C D$,其中 $A$ 为 8 位,$D$ 为 1 位。设计检测电路:当表示的十进制数能被 3 整除且不为 0 时,输出 $Y=1$,否则 $Y=0$。要求写出最简与或式,可把 10–15 作为无关项。
答案与解析
0–9 中能被 3 整除且不为 0 的数为 3、6、9,对应最小项:
$$Y=\Sigma m(3,6,9),\quad d=\Sigma d(10,11,12,13,14,15).$$
利用无关项化简得到:
$$\boxed{Y=AD+BC\overline D+\overline BCD}.$$
其中 $AD$ 覆盖 9 并借用了 11、13、15 等无关项;$BC\overline D$ 覆盖 6;$\overline BCD$ 覆盖 3。
18. 4 输入优先编码器 / 呼叫电路
5 分医院有 4 个病房呼叫输入 $R_1,R_2,R_3,R_4$,优先级 $R_1>R_2>R_3>R_4$。当有呼叫时,输出最高优先级病房的二进制编号 $Y_1Y_0$,规定 $R_1=00,R_2=01,R_3=10,R_4=11$,另有有效标志 $V$。写出 $Y_1,Y_0,V$ 的逻辑表达式。
答案与解析
有效标志:
$$\boxed{V=R_1+R_2+R_3+R_4}.$$
$Y_1=1$ 表示最高有效请求是 $R_3$ 或 $R_4$:
$$\boxed{Y_1=\overline R_1\overline R_2(R_3+R_4)}.$$
$Y_0=1$ 表示最高有效请求是 $R_2$ 或 $R_4$:
$$\boxed{Y_0=\overline R_1R_2+\overline R_1\overline R_2\overline R_3R_4}.$$
如果题目要求的是“一灯显示哪间房”,则可写成:$L_1=R_1$,$L_2=\overline R_1R_2$,$L_3=\overline R_1\overline R_2R_3$,$L_4=\overline R_1\overline R_2\overline R_3R_4$。
19. 1 位 ALU 的 MUX 实现
5 分设计一个 1 位 ALU,输入为 $a,b$,控制端为 $S_1S_0$,功能如下:
| $S_1S_0$ | 功能 $F$ |
|---|---|
| 00 | $a$ |
| 01 | $b$ |
| 10 | $a\oplus b$ |
| 11 | $ab$ |
用一个 4 选 1 MUX 和必要的门电路实现,说明各数据端接法。
答案与解析
令 4 选 1 MUX 的选择端为 $S_1S_0$,则:
$$I_0=a,\quad I_1=b,\quad I_2=a\oplus b,\quad I_3=ab.$$
其中 $a\oplus b$ 可由异或门得到,$ab$ 可由与门得到。MUX 输出即 ALU 输出 $F$。
五、同步时序电路(35 分)
20. 同步时序电路分析:6 进制格雷码计数器
8 分某同步时序电路由 3 个 D 触发器构成,状态为 $Q_2Q_1Q_0$,激励方程为:
$$D_2=Q_1,\qquad D_1=Q_0,\qquad D_0=\overline Q_2\overline Q_1+\overline Q_2Q_0.$$
- 写出状态转移表。
- 画出状态图。
- 判断能否自启动,并说明功能。
答案与解析
| 现态 $Q_2Q_1Q_0$ | 次态 $Q_2^+Q_1^+Q_0^+$ |
|---|---|
| 000 | 001 |
| 001 | 011 |
| 010 | 100 |
| 011 | 111 |
| 100 | 000 |
| 101 | 010 |
| 110 | 100 |
| 111 | 110 |
主循环为:
000 → 001 → 011 → 111 → 110 → 100 → 000。
非工作状态 010、101 分别会进入主循环,因此可以自启动。功能是 6 进制格雷码计数器。
21. 设计 110 序列检测器
8 分设计一个同步 Mealy 型序列检测器,输入为 $X$,输出为 $Z$。当输入序列中出现连续的 110 时,在读入最后一个 0 的同一拍输出 $Z=1$。允许重叠。要求:
- 画状态图。
- 用状态 $S_0=00,S_1=01,S_2=11$ 分配,未用状态 $10$ 进入 $00$,用 D 触发器写出 $D_1,D_0,Z$。
答案与解析
状态含义:$S_0$ 无有效前缀;$S_1$ 已看到 1;$S_2$ 已看到 11。
按 $S_0=00,S_1=01,S_2=11$,未用状态 $10$ 对 $X=0,1$ 均转 $00$。可得:
$$\boxed{D_1=Q_1Q_0X}.$$
$$\boxed{D_0=X(\overline Q_1\overline Q_0+Q_1Q_0)}.$$
$$\boxed{Z=Q_1Q_0\overline X}.$$
检查:在 $S_2=11$ 且输入 $X=0$ 时输出 1,正好检测到 110。
22. 设计指定循环序列计数器
8 分用 4 个 D 触发器设计同步时序电路,使状态 $Q_3Q_2Q_1Q_0$ 按如下序列循环:
0000 → 0001 → 0011 → 0111 → 1111 → 1110 → 1100 → 1000 → 0000
要求:未列出的 8 个状态全部转入 0000。写出 $D_3,D_2,D_1,D_0$ 的最简与或式。
答案与解析
D 触发器满足 $D_i=Q_i^+$。列完整状态表,把未用状态的次态指定为 0000,然后化简可得:
$$\boxed{D_3=Q_0Q_1Q_2+Q_2Q_3\overline Q_0}.$$
$$\boxed{D_2=Q_1Q_2Q_3+Q_0Q_1\overline Q_3}.$$
$$\boxed{D_1=Q_0Q_1Q_2+Q_0\overline Q_2\overline Q_3}.$$
$$\boxed{D_0=Q_0Q_1\overline Q_3+\overline Q_1\overline Q_2\overline Q_3}.$$
23. 用 74LS163 改接模 12 计数器
5 分设 74LS163 是 4 位同步二进制计数器,清零端 $\overline{CLR}$ 为同步低有效,计数使能均接有效,置数端保持无效。要求改接为模 12 计数器,计数序列为 0–11。请说明应译码哪个状态,并写出 $\overline{CLR}$ 的逻辑表达式。
答案与解析
同步清零要在状态 11,即二进制 1011 时让 $\overline{CLR}=0$,使下一个有效时钟沿回到 0000。
若状态输出为 $Q_3Q_2Q_1Q_0$,则状态 1011 的译码项为:
$$Q_3\overline Q_2Q_1Q_0.$$
清零低有效,所以:
$$\boxed{\overline{CLR}=\overline{Q_3\overline Q_2Q_1Q_0}}.$$
24. 移位寄存器序列发生器与自启动
6 分用 4 位移位寄存器产生循环序列状态:
0111 → 1111 → 1110 → 1100 → 1000 → 0000 → 0001 → 0011 → 0111
设状态写作 $Q_3Q_2Q_1Q_0$,采用左移结构:
$$D_3=Q_2,\quad D_2=Q_1,\quad D_1=Q_0,\quad D_0=F(Q_3,Q_2,Q_1,Q_0).$$
- 若把未用状态作为无关项,求最简 $F$。
- 检查是否自启动。
- 给出一种能自启动的反馈函数。
答案与解析
主循环中,需要 $F=1$ 的现态为:
0000, 0001, 0011, 0111。
若把其他未用状态作为无关项,可化得:
$$\boxed{F=\overline Q_3}.$$
但此时不自启动。因为未用状态会形成另一个循环:
0010 → 0101 → 1011 → 0110 → 1101 → 1010 → 0100 → 1001 → 0010。
一种可自启动的指定方式是让未用状态逐步进入主循环,可取:
$$\boxed{F=Q_0\overline Q_1+Q_0\overline Q_2+Q_0\overline Q_3+\overline Q_1\overline Q_2\overline Q_3}.$$
此时未用状态都会在有限步内进入主循环。
六、可编程逻辑电路(10 分)
25. PROM / PLA / PAL 阵列可编程性
3 分填写下表:PROM、PLA、PAL 的与阵列和或阵列是否可编程。
| 器件 | 与阵列 | 或阵列 |
|---|---|---|
| PROM | ||
| PLA | ||
| PAL |
答案与解析
| 器件 | 与阵列 | 或阵列 |
|---|---|---|
| PROM | 固定 | 可编程 |
| PLA | 可编程 | 可编程 |
| PAL | 可编程 | 固定 |
记忆:PROM 是“固定译码器 + 可编程或阵列”;PLA 最灵活;PAL 用可编程与阵列配固定或阵列,速度和结构更规整。
26. ROM 容量扩展
3 分已有 $32K\times 8$ 的 ROM 芯片,要构成 $2M\times 8$ 的 ROM,需要多少片?单片 $32K\times 8$ 有多少根地址线、多少根数据线?
答案与解析
$32K=2^{15}$,所以单片有 15 根地址线;字长为 8,所以有 8 根数据线。
$2M=2\cdot 2^{20}=2^{21}$,需要的片数:
$$\frac{2M\times 8}{32K\times 8}=\frac{2^{21}}{2^{15}}=2^6=\boxed{64\text{ 片}}.$$
27. PLA 实现 8421 码到格雷码
4 分输入为 4 位自然二进制/8421 码 $B_3B_2B_1B_0$,输出为格雷码 $G_3G_2G_1G_0$。写出输出方程,并说明用 PLA 实现时至少需要哪些乘积项。
答案与解析
二进制转格雷码:
$$\boxed{G_3=B_3},$$
$$\boxed{G_2=B_3\oplus B_2=\overline B_3B_2+B_3\overline B_2},$$
$$\boxed{G_1=B_2\oplus B_1=\overline B_2B_1+B_2\overline B_1},$$
$$\boxed{G_0=B_1\oplus B_0=\overline B_1B_0+B_1\overline B_0}.$$
若直接按与或式实现,乘积项可为:
$B_3$,$\overline B_3B_2$,$B_3\overline B_2$,$\overline B_2B_1$,$B_2\overline B_1$,$\overline B_1B_0$,$B_1\overline B_0$,共 7 个乘积项。
附加挑战题(不计分,但很像历年题)
A. 用 8 选 1 与 4 位 2 选 1 构成 12 选 1
加练已有一个带使能端的 8 选 1 MUX,以及一个“四位 2 选 1”数据选择器。试构成 12 选 1 MUX,输入为 $D_0\sim D_{11}$,选择端为 $S_3S_2S_1S_0$。
参考思路
核心想法:先用 $S_3$ 在每一对 $(D_i,D_{i+8})$ 中选择低 8 路或高 4 路中的一个,再交给 8 选 1。
- 四位 2 选 1 的四组输入接 $(D_0,D_8),(D_1,D_9),(D_2,D_{10}),(D_3,D_{11})$,选择端接 $S_3$,输出为 $X_0\sim X_3$。
- 8 选 1 的数据端接 $X_0,X_1,X_2,X_3,D_4,D_5,D_6,D_7$。
- 8 选 1 的选择端接 $S_2S_1S_0$。
- 当 $S_3=0$ 时,选择 $D_0\sim D_7$;当 $S_3=1$ 且 $S_2S_1S_0=000\sim011$ 时,选择 $D_8\sim D_{11}$。其余 $S_3=1$ 且 $S_2S_1S_0=100\sim111$ 为无效选择,可用使能端屏蔽或作为无关。
B. 画波形并标注 $t_{pdQ},t_{su}$
加练给出如下理想波形骨架。请在纸上补画 D 触发器输出 $Q$,并标出 CP 上升沿到 $Q$ 变化的延迟 $t_{pdQ}$,以及下一个上升沿前数据必须稳定的建立时间 $t_{su}$。
参考思路
D 触发器只在有效边沿采样 D。输出 Q 不会在 D 改变时立即改变,而是在 CP 有效边沿之后经过 $t_{pdQ}$ 才改变。每个有效边沿到来之前,D 必须提前至少 $t_{su}$ 保持稳定;有效边沿之后还要满足保持时间 $t_h$。
做完后自查:这 10 件事必须会
- 看到 $\Sigma m + \Sigma d$ 能立刻画 K 图,知道无关项只能“有利时使用”。
- 知道 $\overline AB+AC$ 的静态 1 冒险发生在 $B=C=1,A$ 翻转时,补 $BC$。
- 能用译码器把函数写成最小项之和;能用 MUX 把一个变量留到数据端。
- 知道普通 TTL 输出不能随便并联;OC 门要上拉;三态门共享总线必须互斥使能。
- 最高频率会写 $T_{clk}\ge t_{pdQ}^{max}+t_{comb}^{max}+t_{su}$。
- 保持时间会看 $t_{pdQ}^{min}+t_{comb}^{min}\ge t_h$。
- D 触发器设计时,直接令 $D_i=Q_i^+$。
- 时序分析题按“激励方程 → 状态方程 → 状态表 → 状态图 → 自启动 → 功能”写,不要跳步。
- 用 74LS163 同步清零改模时译码 $N-1$;异步清零通常译码 $N$。
- 记住 PROM / PLA / PAL:PROM 固定与可编程或,PLA 两边可编程,PAL 可编程与固定或。