【数字电子技术 Digital Electronic Technology 5】—— 组合逻辑电路设计题解题技巧归纳

不知道在学完数电第四章——组合逻辑电路之后,大家一开始有没有跟我一样的感觉:这些芯片功能是啥??那些控制信号是啥??我应该怎么连接??但是,当题目做的有了一定的量之后,发现考来考去无非是几种类型,下面博主就和大家一起总结一下,也当作自己的复习

1. 编码器

74HC148优先编码器

和普通编码器有类似之处,它也是对输入的二进制信号进行编码,但是它允许多个高电平输入,但是只会对优先级最高的输入进行编码,正常工作时应使S’ = 0。
下面是它的功能表:

关于编码器的题型解读:
最常见的就是用几篇编码器连成一个更多位的编码器了,比如用4片8线-3线编码器组合成32线-5线编码器,这种问题不难:我们把编码器从高位芯片到低位芯片串联起来(比如说高位芯片的S’接到下一个低位芯片的 Y s Y_s' 端这样),至于输出里面多出来的两位应该怎么连出来呢?
我们需要从 Y E X Y_{EX}' 引出:
我们看看啊,本来我们的输出是不是 Y 2 Y 1 Y 0 Y_2Y_1Y_0 三位对吧,我们现在考虑 Y 4 Y 3 Y_4Y_3 :因为4片芯片串联在了一起,所以最低位(我们约定为第4个芯片)所能够编码的二进制数的范围就是:0~7;第3个芯片所能够编译的二进制数的范围就是8 ~ 15,同理后面两个芯片的范围依次是:16 ~ 23、24 ~ 31。

那么我们就想啊,如果 Y 4 Y 3 Y_4Y_3 = 11,那么表示输入的信号最小就是11000 = ( 24 ) 10 (24)_{10} ,属于第一个芯片的工作范围,那么此时应该让第一个工作,其他芯片工作但无有效输入,即:

Y E X 1 Y_{EX1}' Y E X 2 Y_{EX2}' Y E X 3 Y'_{EX3} Y E X 4 Y'_{EX4} Y 4 Y_4 Y 3 Y_3
0 1 1 1 1 1

Y 4 Y 3 Y_4Y_3 = 10,那么输入的最小值就是16,最大值为10111 = ( 23 ) 10 (23)_{10} ,属于第二个芯片的工作范围,那么应该只让2芯片有有效输入:

Y E X 1 Y_{EX1}' Y E X 2 Y_{EX2}' Y E X 3 Y'_{EX3} Y E X 4 Y'_{EX4} Y 4 Y_4 Y 3 Y_3
1 0 1 1 1 0

后面的情况类似,这样,我们就可以通过真值表得到新增的输出 Y 4 , Y 3 Y_4, Y_3 Y E X Y'_{EX} 的关系,从而用门电路表示出来

2. 译码器

【基本功能】这是比较常见的3线-8线译码器,输入是一个三位二进制数: A 0 A 1 A 2 A_0A_1A_2 ,然后把这个三位二进制数译成0~7其中一个十进制数,并且在对应位置输出 Y Y'
【正常工作条件】 S 1 S_1 = 1, S 2 + S 3 S_2' + S_3' = 0时,该译码器才会正常工作
【输出表达式】:这个是很重要的,译码器的输出 Y Y' 满足: Y i = ( m i ) Y_i' = (m_i)'
例如: Y 0 = ( A 0 A 1 A 2 ) Y_0' = (A_0'A_1'A_2')' Y 5 = ( A 0 A 1 A 2 ) Y_5' = (A_0A_1'A_2)'

关于译码器的题型解读:

  1. 用几片译码器连接成一个更大的译码器
  2. 用译码器产生给定的逻辑函数式

举个例子我来试着把它说明白:
一,试用两片3线-8线译码器组成一个4线-16线译码器
在这里插入图片描述
首先,译码器原本就是有三个输入 D 0 , D 1 , D 2 D_0,D_1,D_2 的,这些我们不用管,直接把他们连起来就行,现在重点来看看第四个输入,也就是最高位的输入 D 3 D_3 :我们这里定义芯片(2)位高位芯片,那么, D 3 D_3 = 1时,输入的四位二进制数最小就是1000,译出来就是8,因此,我们应该让(2)芯片工作,而(1)芯片禁止工作。 而结合我们刚刚说的,当 S 1 S_1 = 1、 S 2 + S 3 S_2'+S_3' = 0时,译码器正常工作,因此, S 1 S_1 直接接 D 3 D_3 这里就有了一个通法:当我们有新增的输入时,我们就先看当这个新增的输入为1时,二进制数最小是多少,然后看这个最小的二进制数对应的十进制数在那个芯片的范围,就把这个新增信号和该芯片的 S 1 S_1 连在一起
然后, S 2 , S 3 S_2',S_3' 接在 D 3 D_3 也满足了当 D 3 D_3 = 1时,(1)芯片不工作

二,用3线-8线译码器74HC138设计一个多输出的组合逻辑电路,电路的逻辑函数式为:

这种题目的套路是:
将每一个输出化简为最小项之和:
Z 1 = A B C + A B C + A B C + A B C = m 6 + m 4 + m 3 + m 5 Z 2 = A B C + A B C + A B C = m 7 + m 3 + m 1 Z 3 = A B C + A B C + A B C = m 3 + m 2 + m 5 Z 4 = A B C + A B C + A B C + A B C = m 2 + m 4 + m 0 + m 7 Z_1 = ABC'+AB'C'+A'BC+AB'C = m_6 + m_4 + m_3 + m_5\\ Z_2 = ABC+A'BC+A'B'C = m_7 + m_3 + m_1\\ Z_3 = A'BC+A'BC'+AB'C = m_3 + m_2 + m_5\\ Z_4 = A'BC'+AB'C'+A'B'C'+ABC = m_2 + m_4 + m_0 + m_7\\
那么,我们就可以写出译码器的输出: Z 1 = ( Y 6 Y 4 Y 3 Y 5 ) Z 2 = ( Y 7 Y 3 Y 1 ) Z 3 = ( Y 3 Y 2 Y 5 ) Z 4 = ( Y 2 Y 4 Y 0 Y 7 ) Z_1 = (Y_6Y_4Y_3Y_5)'\\ Z_2 = (Y_7Y_3Y_1)'\\ Z_3 = (Y_3Y_2Y_5)'\\ Z_4 = (Y_2Y_4Y_0Y_7)'\\

3. 数据选择器

我们来看看双四选一数据选择器的样子:

其实它只用一班也是可以的,就是变成四选一的数据选择器,我们就以上面一半的四选一为例分析
【各个引脚的作用】 D 10   D 13 D_{10}~D_{13} 是数据的输入端, A 1 , A 0 A_1,A_0 是选通地址输入端(作为确定选择哪一个的信号), Y 1 Y_1 是选择之后的输出
【正常工作条件】: S 1 S_1' = 0
【输出表达式】这个是相当重要的: Y = D 10 ( A 0 A 1 ) + D 11 ( A 0 A 1 ) + D 12 ( A 0 A 1 ) + D 13 ( A 0 A 1 ) Y = D_{10}(A_0'A_1') + D_{11}(A_0'A_1) + D_{12}(A_0A_1') + D_{13}(A_0A_1)
记忆方法:括号()里面的地址项是最小项!外面就是按照 m i m_i 的这个i的顺序乘上输入

关于数据选择器器的题型解读:

  1. 用几片数据选择器组成更大的数据选择器
  2. 用数据选择器产生给定的逻辑函数式

一,用双四选一数据选择器组成8选1数据选择器:
我们知道四选一数据选择器有2个地址输入,而八选一数据选择器有3个地址输入,因此,这多出来的一个地址输入就要从 S S' 里面拿来:由于数据选择器正常工作的要求是 S = 0 S' = 0

下面的四选一是选高位数的,当 A 2 A_2 = 1时,数据最小就是100,也就是4,在下面那片数据选择器,因此,我们就要保证上面那篇数据选择器不工作。这就是本题的思路了

二,分别用四选一和八选一实现下面的逻辑函数:

首先,先把函数式化为最小项之和:
Y = A B C + A B C + A B C + A B C + A B C + A B C = A B C + B C + A B C + A B C Y = AB'C+AB'C'+ABC'+AB'C'+A'B'C'+ABC\\ = AB'C + B'C'+ABC'+ABC
由于我们要先使用四选一数据选择器,那么,有两个地址输入端,我们选BC好了,那么Y可以化为:
Y = 1 ( B C ) + A ( B C ) + A ( B C ) + A ( B C ) Y = 1*(B'C')+A(B'C) + A(BC') + A(BC)

如果使用八选一,那么情况就不一样了,因为我们将要有3个地址输入端了,这样A,B,C就得全部用上,这样一来,D的数值也就随之确定了,Y可以写成这样的形式:
Y = 1 A B C + 0 A B C + 0 A B C + 0 A B C + 1 A B C + 1 A B C + 1 A B C + 1 A B C Y = 1*A'B'C' + 0*A'B'C +0*A'BC'+ 0*A'BC + 1*AB'C' + 1*AB'C + 1*ABC' + 1*ABC

4. 超前进位加法器

【各引脚的功能】 A 0   A 3 A0~A_3 , B 0   B 3 B_0~B_3 是两个加数, C I CI 是来自前一位的进位, C O CO 是向高位的进位, S 0   S 3 S_0~S_3 表示当前各位置的和(这里特别提醒一下:如果只是用了一篇超前进位加法器芯片,也就是说没有低位向高位的进位,又或者说这个芯片就是做的最低位的加法运算时,那么这个芯片的CI端要接地!!

超前进位加法器老是喜欢考察:用加法器实现减法。但是大家不用害怕,减法是可以变为加法的,方法就是把减数写成补码的形式,再和原来的被减数相加

大家还记得一个二进制数的补码怎么求吗?正数的:原码=反码=补码;而对于负数,补码等于其数值位按位j取a反,然后+1

首先来说说怎么实现按位取反:我们可以用异或门实现,异或门就是可以用来取反的
那么+1怎么实现?我们可以令CI = 1,即低位有向高位进1,那不就完成+1的操作了吗?

5. 数值比较器

我们来看看最后一个数值比较器:

【各引脚的功能】 A 0   A 3 A_0~A_3 , B 0   B 3 B_0~B_3 分别是待比较的两个三位二进制数, I I 表示低位比较的结果(因为我们比较是先从低位开始比较的)注意:如果没有低位了,我们就可以令 I ( A = B ) = 1 , I ( A > B ) = I ( A < B ) = 0 I_{(A=B)} = 1,I_{(A>B)} = I_{(A<B)} = 0 ,Y表示比较的结果

常考的题型:

  1. 用多个数值比较器连接成一个更大的数值比较器
  2. 用一个数据比较器比较三个数的大小等等

一,用两片四位二进制数比较器连接成一个八位二进制数比较器

在这里插入图片描述

6.组合逻辑电路的竞争冒险现象:

这里先暂时简单提一下:如果这个组合逻辑电路输出的逻辑函数式可以化为: Y = A A Y = AA' 或者是 Y = A + A Y = A + A' 的形式,那么说明该组合逻辑电路存在竞争冒险现象。

6.1 消除竞争冒险现象的方法:

  1. 接入滤波电容
  2. 引入选通脉冲
  3. 修改电路逻辑设计
发布了98 篇原创文章 · 获赞 283 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44586473/article/details/103337806