常用的中规模组合逻辑标准构件
集成电路规模的划分
- 小规模集成电路SSI
74系列,1-12门 - 中规模集成电路MSI
12-99门,预先封装 - 大规模集成电路LSI
大约100-9999门,存储器 - 超大规模集成电路VLSI
大于9999门,处理器
数据选择器(MUX)
定义
数据选择器是多路输入、单路输出的组合逻辑构件,通常称为多路转换器或多路开关。
内部结构在之前讲过了,这里就不提了。
结构分析
这里多了一个使能输入ST非,顾名思义就是使其能发挥作用的引脚。那么是0有效还是1有效呢?这得看符号,ST上有个非,所以是0有效,否则就是1有效。
(ST为0时这个数据选择器才能发挥作用)
各个引脚功能总结:
逻辑表达式(以四个数据输入为例,即n=2)
可以看出A1A0的是非情况组成一个二进制的数,其中A1是最高位,A0是最低位,这个二进制的数的值与D的下标对应,那么当A输入为mi时Di路会被输出。
多个组件合并使用
这个ST的功能使得我们能够将多个数据选择器组合起来。
电路图如下
红色为通道选择端,黄色为数据输入端,蓝色为数据输出端。
其中A2这个通道选择端可以决定那个组件工作,而且一次只能有一个组件在工作(这个也是后面其他组件合并使用的关键),这样就达到了三个通道选择端控制8个数据输入端的效果,并且由A2A1A0状态组成的二进制数的值对应D的下标,这与上面单个组件保持一致。
这个四个组件组合使用的关键也是让一个时刻只有一个组件在工作,所以这里采用了译码器(特定位置输出0,其余为1)
由A3A2A1A0状态组成的二进制数的值也必须与D的下标相对应
由数据选择器构成组合逻辑电路
这里,我们要用数据选择器实现一些组合逻辑的功能。
一般有两种思路,一是代数法,二是卡诺图法
代数法
就是写出两者的逻辑表达式,然后通过对比后对相应的引脚进行赋值,适用于:当通道选择段个数m小于要实现的逻辑的变量个数n时
比如,我要实现下面这个组合逻辑的功能
观察两者的逻辑表达式:
对比发现XY与A1A0对应比较好,剩下的D0,D1,D2,D3与Z,Z非加Z,Z非加Z,Z非对应,所以结果为Z,1,1,Z非
卡诺图法
就是画出两者的卡诺图表达式,然后通过对比后对相应的引脚进行赋值。
适用于:当通道选择段个数m大于等于要实现的逻辑的变量个数n时
比如:
m=n
通道选择段个数3大于逻辑的变量个数2.
画出卡诺图
一对比发现只要把对应位置的D赋值为0或1就行了。
再比如:
m>n
第一步,由于组合逻辑的变量个数n小于逻辑选择器的通道选择端的个数,所以我们要弃用多余的通道选择端的引脚,比如就弃用A2(对应最高位),怎么弃用呢,按道理说赋值为0或1都行,但是赋值为1的话会导致接VCC的引脚增多,所以我们赋值为0.
第二步,我们根据目标组合逻辑的最小项对应的D给赋值为1,其余赋值为0,当然也可以画卡诺图去找(这样更方便)
比如这里就是01,10,11对应的是001(D1),010(D2),011(D3)
最后的电路图为:
习题
题一
8路实现
首先这个属于m>n 的情况,所以我们弃用A2赋值为0,再把对应的D赋值为1,这里的话01对应D1,10对应D2,最后结果为:
我们可以弃用其他的引脚,其对应结果为:
题二
逻辑表达式为
列出真值表:
可以看出这就是一个全加器。
数据分配器(DMUX)
定义
DMUX的功能与MUX相反,它是单路输入、多路输出的组合逻
辑构件。
公共数据线上的数据按要求(由选择控制端决定)送到不同单元输出。
没有数据输出的端口为1.
分析
利用数据选择器和数据分配器设计实现8路数据传输的逻辑电路
选择Di的数据,从fi输出
译码器
定义
将具有特定含义的一组(n位)二进制码辨认出来,并转换为一组(m位)高低电平信号。主要有二进制译码器、显示译码器。
显示器译码器就是,现在我有根数码管里面有七条灯管,然后我的这个显示译码器就是我输入3他就输出数码管上显示三所需要亮的灯的编号,然后这个结果输给数码管的7个引脚,数码管上就亮起了3这个数字。
显示译码器
显示器译码器就是,现在我有根数码管里面有七条灯管,然后我的这个显示译码器就是我输入3他就输出数码管上显示三所需要亮的灯的编号,然后这个结果输给数码管的7个引脚,数码管上就亮起了3这个数字。
真值表:
以Ya为例设计电路:
逻辑表达式为a=m0+m2+m3+m5+m6+m7+m8+m9
画出卡诺图,选定合适的无关项,得到化简结果
重点说说二进制译码器:
二进制译码器分类
这里的2,4;3,8;4,16指的是2个选择端,4个输出端,3个选择端,8个输出端……
下面以3,8的为例讲一下主要的东西:
这个外面的圈是非门(对应Y,G上面的横线)
稍微解释一下这个逻辑表达式,Yi非就是输出端,有7个,每个输出端只有在数据选择端选中它时才会输出0,不然输出1,所以是mi非。选择端AnAn-1……与输出端编号相对应。
真值表
组合使用
关键也是要实现每次只能让一个组件工作。
给出答案:
一个译码器的使能由三个门控制,这里保证一个肯定能通过,剩下两个,一个用于整体的使能,另一个用于切换,由于用于切换的两个门选的还不一样,我只要给出一个信号就只有一个能工作,连额外的非门也不需要了。
实现组合逻辑
对于数据选择端个数m小于目标逻辑变量个数n的情况我应该是无能为力的
m=n
这个的话,只要把对应的引脚接好,然后我们把对应的输出引脚取非后再接到一个或门或者直接接入与非门。
比如
m>n
弃用一些引脚,然后把对应的引脚接好,然后我们把对应的输出引脚取非后再接到一个或门或者直接接入与非门。
编码器
定义
编码器:把输入的每一个高低电平信号编成一个对应的二进制代码。(m位不同的信号,至少需要n位二进制数编码。
可以分为普通编码器和优先编码器
普通编码器
任何时刻只允许输入一个编码信号(一次只能一根输入线有信号),输出该信号对应的值。
编码表
九个输入线,四个输出线,一次只能有一个输入线有信号,输出其对应的值。
逻辑表达式
优先编码器
允许多个已具有优先顺序排队的输入信号同时有效,只对优先级最高的一个输入信号进行编码。
就是允许多个信号线输入,但是输出的是优先度最高的那个输入相对应的输出值。
比如一个优先编码器:
图示为:
Yes非的话好像是有输入就为0,否则是1,Ys是是能后有输入为1没有输入为0
逻辑表达式:应该是类似
这样的。
比如Y2非=
数据比较器
定义
完成两个位数相同的二进制数码大小比较的组合逻辑电路。
- 数据输入 a3 —a0,b3 —b0:用做比较的数据(4位)
- 级联输入 a<b,a=b,a>b:扩展连接时使用。(实现4位以上数码比较时,输入低位芯片的比较结果)比如8位比较,低四位比完后结果从这里输入给高四位的比较器
- 比较结果输出 A<B,A=B,A>B:三个输出中只有一个高
电平,它代表两个数据的比较结果。
11行输入与输出关系:
前8行:高位比完不用再看地位。
后三行:高四位比完了,发现一样,那结果就有第四位的另一个比较器的结果决定,所以,可以看到,输出与联机输入一致。也就是这样一个图:
组合使用
串联
上面提到过了,就是低四位的结果传给高四位,不断的传下去。
缺点很明显,由于电路存在延迟,而下一次计算还必须等上一次算完才能算,这样搞耗时长
并联
把高四位作为一组,接下去四位再做为一组每组的结果再作为输入输到下一层的数据比较器当中,再四个一组,不断地继续下去。
这样的话延迟的问题好点了,但是用的组件增加了。
应用
可以用于中断执行的控制,当一个中断来袭,只有当他的优先级比现在在执行的中断程序高,cpu才会为其计算。这一比较的过程由数据比较器实现。
加法器
定义
计算机或其他数字系统中对二进制数据进行运算处理的基本组合逻辑电路。
一位半加器
全加器
一位的:
多位的实现思路
- 并行加法器:两个n位数相加,由n个全加器组成,每个全加器的输入为Ai,Bi,Ci-1。 (A,B的n位同时提供给全加器)
缺点是延迟太高。2n级延迟
下一次的计算要等上一次的进位算完才能算。 - 超前进位
就是进位同时产生
设计思想:每位的进位信号Ci只与加数Ai、被加数Bi以及最低位进位C0有关,而与相邻低位的进位Ci-1无关。
进位产生变量就是Ai+Bi是否产生进位,进位传递变量是本次进位是否受到上次进位的影响
代入消去ci-1后得
电路图
一个简单的代入却带来了电路图的巨大改变。
加法器实现组合逻辑
加上三就行了
奇偶校验器
一种检验信息传输可靠性的机制,通过传输的数据中的1的个数来判断,奇校验值数据中的1的个数是奇数个,偶校验值数据中的1的个数是偶数个。
比如我们约定好是奇校验,然后一次传8位,其中7位用于传数据,剩下一位用于校准,使得8位数中1的个数是奇数,然后你拿到数据进行检验,统计1的个数,如果是奇数个,那就说明数据是可靠的。
奇偶校验器就是检查1个数是奇数个还是偶数个的电路。
实现原理就是全部位异或嘛,利用异或遇到1置反,遇到0不变的原理,设定一个初始值,再查看输出值就可以确定1的个数是奇数个还是偶数个。