概述
教材:数字设计基础与应用 第二版 邓元庆 关宇 贾鹏 石会 编著 清华大学出版社
源文档高清截图在后
2.2 常用的MSI组合逻辑模块
1、一些常用的组合逻辑电路模块具有特定的逻辑功能,构成这些模块通常需要数十个逻辑门,因此被称为MSI(中等规模集成电路)模块。这些功能模块是实现更大规模数字系统的单元电路。
2、加法器:实现两个二进制数加法运算的电路。加法器按功能分类:
1.一位加法器:①半加器;②全加器。
2.多位加法器:①串行进位;②并行进位。
3.BCD加法器(十进制)
加法器分为无符号加法器和带符号加法器。
3、不考虑低位进位的实现两个1位二进制数相加的电路称为半加器。它有两个输入端A、B和两个输出端C、S。S是和输出(sum),C是进位输出(carry)。S和C组成相加结果0~2。HA是Half adder的缩写。
由真值表得:半加器的两个输出函数的表达式为C = AB,S = A⊕B,且用一个与门和一个异或门就可以实现半加器。
4、考虑低位进位的实现两个1位二进制数相加的电路称为全加器。它有三个输入端Ai、Bi、Ci和两个输出端Ci+1、Si。Ai、Bi是两个参与加运算的二进制位,Ci是相邻的低位加法器送来的进位,Si是本位的和输出,Ci+1是向高位的进位输出。与全加器的真值表对应的一种函数表达式为:Si = Ai + Bi + Ci,Ci+1 = AiBi + AiCi + BiCi。CI和CO分别是进位输入和进位输出的定性符,FA是Full adder的缩写。
5、串行进位加法器:将n个一位全加器串行级联,得到两个n位二进制数的加法电路。电路的优点是电路简单、连接方便。但由于最高位的运算必须等到所有低位运算依次结束,送来进位信号之后才能进行,所以缺点是时延较大,电路的工作速度较慢。Ai和Bi代表参与加运算的A和B的第i个二进制位。
6、超前进位并行加法器的设计思想是:进位信号Ci+1与和数信号Si同时产生,不必逐级传送进位信号, 从而提高运算速度。
设4位超前进位全加器的两个二进制数为:
则4位超前进位全加器的布尔表达式为:
设
Gi为进位生成项(因为这一项是由参与运算的两个加数的第i位相加而得的,可能需要向高位进位),Pi为进位传递项(传递低位的进位),即有
(C0是向最低位进位的信号,其值为0)
C4的表达式说明,最低位的进位C0可以直接传送到最高位C4上,Si和信号和Ci+1进位信号是同时产生的,不必逐级传送,所以大大加快了运算速度。74LS283四位超前进位加法器,利用此原理实现的。
(74283逻辑图)
现代计算机中,一般把32位或64位加法运算直接用一个全加器实现,大大提升了运算速率。
在计算机中,二进制数的加、减、乘、除等算术运算都是化作加法进行的,计算机的运算速度的评估指标之一也是每秒完成加法运算的次数。因此加法器是数字电路中非常重要的逻辑电路,多位二进制加法器还能实现BCD码的加、代码转换、 数码比较、奇偶校验等功能。
7、数值比较器(magnitude comparator)简称比较器,用于比较两个数的大小,并给出>、=、<三种结果。只能比较2个1位二进制数的比较器称为半比较器。2个多位二进制数比较的方法是从高位开始逐位比较,若高位不同,则直接给出结果;否则结果由低位比较决定。各个位都相等则两个数相等。除了最低位是半比较器,其它各位数的比较都应该采用全比较器。全比较器也是1位二进制数的比较器,但比较的2个位相等时,全比较器的比较结果由低位送来的结果决定。多个全比较器级联就可以构成多位二进制数的比较器。
这是4位二进制数比较器7485及其功能表。可以看出,高位相等时,比较结果由低位决定。当比较本级比较器负责的位就比较出不同的位的时候,比较更低位的比较器的结果不起作用。当本级比较器的每一位都相等,再根据更低位的结果来得到最终的比较结果。光是4位比较器就有11个输入端,列出完整的真值表(共2048行数据)是不经济的,所以这里用功能表代替。功能表的最后两行的级联输入和输出没有对应的物理意义。
这两个示例分别是7485的串行和并行级联方式。可以看出,同样比较一个16-bit的二进制数,如果串行级联,最坏情况是:高12位都相等,每一级的7485都需要等待低一级传回的结果。这样就需要4倍单片7485的延迟才能比较完毕。如果并行级联,则最多只需要2倍单片7485的延迟就可以完成。
8、书本的例2-6是通过4位全加器芯片7483实现的1位8421码的加法的例子。8421只表示十进制的0到9,两个1位8421码相加的最大值是18。所以真值表有19行,分别代表相加的结果0到18。芯片会将两个数按二进制相加,输出结果是二进制转8421码后的结果。当和为0到9时,8421码和对应二进制码相同。当和超过9时,进位就要输出1,观察此时可能的二进制码(1010~1111)可以发现:最高位(第3位)一定是1,末3位中的第0位可以任取,而第1位和第2位至少有一个为1。所以进位DC的表达式为:DC = C4 + S3(S2 + S1)。当进位(十位)输出1时,代表个位的8421码的输出是对应的二进制码加6(忽略高位溢出)。实现电路如下。可以看出,当相加结果为16到18时,二进制和会发生进位,此时十位输出1。此外,当相加结果为10到15时,通过两个与门也可以令十位输出1。可以看出这两个与门输出的结果符合刚才的进位的表达式。注意与十位直接相连的门是或门。当进位输出1时,A3A2A1A0 = 0110 = 610。而B3B2B1B0则输出二进制和的末三位作为8421码的个位。
9、编码(coding),是指将一组字符或信号用若干二进制位表示的过程。例如8421码就是用4位二进制码表示10个阿拉伯数字的一种编码。编码器(encoder)是实现编码的数字电路。对每个有效的输入,编码器输出一组对应的二进制代码。
最基本的一个编码器是2n-n编码器,又称二进制编码器。书本53页的8线-3线编码器把8个输入信号(0~7)转换成对应的二进制数。可以看出其输出Y0、Y1、Y2分别代表二进制的第0、1、2位。输入端的高低电平可以通过按键来控制。但是,当没有键被按下(I0 = I1 = …… = I7 = 0)时,输出却和I0 = 1时相同。而且,如果有多个键同时按下,编码器的输出是混乱的。优先编码器可以解决这些问题。优先编码器(priority encoder)的特点是:多个输入信号同时有效时,编码器只对优先级最高的输入进行编码。比如8线-3线优先编码器74148。该芯片的所有IO都是低电平有效信号。 叫做使能输入信号(enable input),八个输入信号,下标大的优先。编码器除了三位输出以外还有使能输出信号 和组选择输出信号 。由功能表可以看出,当使能输入为高电平,或使能输入虽然为低电平但八位输入全部是高电平时,输出信号均认为无效。当GS = 1即 时,输出信号才被视为有效。 是用于级联低位芯片的使能输出,当级联扩展时连接到低位编码器的 上。当该编码器使能且无有效编码输入(见功能表第二行)时,使能输出为0,下一级编码器的使能输入为0,可以输出有效信号。
优先编码器常用于优先中断系统和键盘编码。
上图是两片8线-3线优先编码器74148级联。当下标最大的低电平输入落在低位的编码器时,高位编码器的使能输出为0,使得低位编码器可以输出对应的信号。与门能够让一个编码器输出低电平时最终的输出就变成低电平。当下标最大的低电平输入落在高位的编码器时,使能输出为1,低位编码器输出无效(按功能表,三位输出和组选择输出会全部输出1),高位编码器输出相应的低电平,经过与门后输出。
只要采用合理的连接,用16-4线二进制编码器可构成各种BCD码编码器(可能输出反码)。
10、解码器(译码器,decoder)执行与编码器相反的操作。编码器输入n位取值,共有2n种组合。能够输出这全部组合的译码的,称为全译码器;否则称为部分译码器。二进制译码器又称为唯一地址译码器,每次译码输出仅有一位输出有效 ,即将一系列输入的编码代码转换成与之一一对应的有效信号。
下图是3位自然二进制码的全译码器74138及其功能表。仅G1G2A’G2B’ = 100时,该译码器才使能。
通常二进制译码器每一个译码输出都是译码输入端的一个最大项或者最小项,因此二进制译码器本质上就是全部输入信号的全部最大项或者最小项发生器。
两片74138可以构成4线-16线译码器,其电路图如下。当G’ = 0时,G2B’ = 0;当A3 = 1时,高位解码器的G1 = 1,输出有效;低位解码器的G2A’ = 1,输出无效。否则,高位解码器无效而低位解码器有效。然后,A2,A1,A0并联到两片74138的输入端,只有输出被判定有效的那一枚芯片可以输出有效信号。
上图为用74X139和74X138构成5-32线译码器。每一篇74138的E3端接高电平,而1/274HC139的四个输出端是对5位二进制数的高2位的解码,2位为00、01、10、11时,四个输出端Y0、Y1、Y2、Y3只有一个端是低电平,相应的74HC138产生有效输出。而5位输入的低3位则直接并联到4片74HC138的输入端A0、A1、A2上。所有3-8线译码器的E2端则统一接地(始终为低电平)。
显示译码器是用来驱动显示器件,以显示数字或字符的MSI部件。最常见的一种LED七段显示器通过七个半导体发光管段的亮/灭组合,实现十进制字符0~9的显示。半导体发光管的连接有两种方式:共阴极七段显示器的段驱动为高电平有效,共阳极七段显示器的段驱动是低电平有效。
7448七段显示译码/驱动器对8421BCD码先译码,然后驱动数码显示部件显示数字,7448输出高电平有效,与共阴极七段显示器配合使用。7448除了有译码驱动功能外还有四个辅助功能:
试灯输入/LT 灭灯输入/BI 灭零输入/RBI 灭零输出/RBO
通常我们不会利用7段显示译码器在单个位上输出10到15。BI的优先级最高,当BI = 1时立刻强制熄灭全部LED。灭零模式用于不显示高位的0,而在上图电路中,个位和十分位的0不会熄灭。一般在启动时,BI = 0,LT = 1,进入试灯模式,无论输入如何,所有LED全亮。当需要熄灭高位的0时,令最高位的RBI = 0,然后把除了个位以外的整数位从次高位开始每个位的RBI接入高一位的RBO。当存在高位的0时,自动不予显示。
二进制译码器的常见应用:
①作地址译码器 ②带使能端的译码器可作数据分配器 ③实现组合逻辑函数
译码器的基本应用是是在计算机存储器和输入输出系统中作地址译码器。计算机中,大量设备采用总线结构。特定时刻由哪个设备占用总线是由地址译码器选择的。上图中,(k + 1) 个设备共用一组数据总线DB(data bus),只有设备被通过EN端输入使能信号时,设备才输出使能。使能信号可以通过译码器产生,地址译码器通过对计算机地址总线AB(address bus)的全部或部分地址线译码,产生不重叠的地址译码作为输入到特定设备的使能信号。
11、数据选择器(data selector),或称MUX(multiplexer,多路转换器或多路开关)用于从多路输入信号中选择一路信号输出,其中输出哪一路输入信息取决于地址控制信号。
以8选1数据选择器74151为例,G’ = 0时芯片被选中(使能),输出信号Y是根据输入地址的二进制码A2A1A0决定的,A2A1A0为某个特定值i时,就输出对应的Di的值。其中W = Y’。表达式中包含A2A1A0的所有最小项,与八个地址端一一对应。这种特性可以用于实现特定的逻辑函数。
上图则是四个4选1数据选择器扩展为16选1的数据选择器的电路图。输入地址A3A2A1A0,A3A2与A1A0分别决定右边一块芯片和左边四块芯片选择哪个地址传来的值作为输出。
数据选择器(多路开关)是一种通用性较强的中规模集成构件,它主要应用有以下四方面:
①在数据传输时,实现并-串转换;
②作数据选择,实现多路信号分时传送(单向总线);
③实现各种组合逻辑函数;
④与计数器配合能产生序列信号,为电路提供控制信号。
12、数据分配器(DX或DMUX)用于将一路输入信号分配到不同的输出通道,其中将输入信号输出到哪一路取决于地址控制信号。在常用的MSI电路中没有单独的数据分配器芯片,由于具有使能端的译码器具有与数据分配器相似的结构且能实现数据选择功能,因此通常用具有使能端的译码器实现数据分配功能。
上图是74138实现的1线-8线分配器的电路图,G2B = D是串行数据的输入端D,A2A1A0是地址输入,当A2A1A0取不同的值时,输出来自D的数据的端口就不同。另外两个使能端G1和G2A则是用户自定义用途。G2A和G2B的输入可以对调,D除了放在这两个端子以外还可以放在G1端,但要求反。
3-8译码器74138具有3个使能端,但4-16译码器74154只有2个。可见,74138的应用会更广。很多时候这些常见简单芯片的引脚一共有偶数个,比如74138如果只给两个使能端,加上3个地址端和8个输出端就一共13个针脚,如果补上一个使能端就一共有14针。74154则有22针。3-8线译码器74138可以扩展成4-16甚至5-32译码器。至于为何只将74138引出3个使能端而不是给74154添加更多的使能端,原因之一是这样更加节省成本。芯片的设计是需要多个方面综合考虑的。
13、数据选择器可以实现各种逻辑函数。以下是几个例子:
(1)试用八选一数据选择器74LS151实现逻辑函数F1(A,B,C)=∑(m1,m2,m4,m7)。
根据74LS151的引脚图,我们可以将3个变量A、B、C接入地址端A2A1A0,然后将D1、D2、D4、D7接1而D0、D3、D5、D6接0即可。
(2)虽然有的数据选择器只有n个地址位,但是仍然可以用它们实现部分多于n个变量的逻辑函数。例如:
用4选1路选择器74LS153实现三变量函数W(X, Y, Z) = ∑m(1, 2, 3, 4, 5, 6)。
首先用表达式比较法(代数法)将要实现的逻辑函数整理成与MSI组合逻辑模块的逻辑函数相似的表达式。
待实现的目标函数:
74LS153的逻辑函数:
然后对应地令地址位A1 = X,A0 = Y,数据位D0、D1、D2、D3分别为Z,1,1,Z’即可。
(3)用(2)的方法,利用4选1数据选择器实现逻辑函数F(A, B, C, D) = ∑m(0, 5, 7, 9, 14, 15)。
法一 首先为了和MUX的逻辑函数进行比照,应该把F写成最小项表达式的形式:
4选1数据选择器只有2个地址端,所以令A1 = A,A0 = B,数据端D0、D1、D2、D3分别为C’D’,D,C’D,C。这时候还需要在D0和D2之前各补充一个与门来将输入的数据进行与运算再输入对应的数据位。
法二 降维卡诺图法
将卡诺图的一维作为地址位的取值,而另一维作为剩余变量的取值。然后,只沿非地址位方向进行化简。上图可以看出,当地址位的值分别为0、1、3、2时,对应的非地址位应为C’D’,D,C’D,C。因为我们不沿着地址位方向化简,所以这个方向的取值可以不按循环码排列。
(4)用降维卡诺图法化简下列函数(用4选1数据选择器实现):
如图,纵向为地址维,横向为非地址维。沿非地址维化简,将偶数个Φ和1相连的部分都圈起来(Φ参与化简时朝对化简更有利的方向化简,所以这里可以令Φ全部为1)。可见,当地址位的值分别为0、1、3、2时,对应的非地址位应为C’、1、D、1。
(5)用降维卡诺图法化简下列函数(用8选1数据选择器实现):
最后
以上就是粗暴墨镜为你收集整理的【梳理】数字设计基础与应用 第2章 组合逻辑电路的分析与设计 2.2 常用的MSI组合逻辑模块(多图)的全部内容,希望文章能够帮你解决【梳理】数字设计基础与应用 第2章 组合逻辑电路的分析与设计 2.2 常用的MSI组合逻辑模块(多图)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复