摘要:本章将重点介绍组合逻辑电路的特点以及组合逻辑电路的分析方法和设计方法。首先讲述组合逻辑电路的共同特点和一般的分析方法和设计方法。然后就几种常用且经典的组合逻辑电路模块,从分析或设计的角度进行解读,并在模块的基础上,初步介绍如何用硬件描述语言描述组合逻辑电路。最后着重从物理概念上说明竞争-冒险现象及其成因,并扼要地介绍消除竞争-冒险现象的常用方法。
基本概念
组合逻辑电路:任何时刻,输出状态只决定于同一时刻的输入状态的组合,而与电路原来状态无关的的逻辑电路。
逻辑功能描述:对于任何一个多输入、多输出的组合逻辑电路,都可以用图1所示的框图表示。
图中、、···、表示输入变量,、、···、表示输出变量。输出与输入间的逻辑关系可以用一组逻辑函数表示:
组合逻辑电路的分析方法和设计方法
分析步骤:
- 由逻辑图逐级写出各输出端的逻辑表达式
- 化简(最简与或式)和变换各逻辑表达式
- 列出真值表
- 根据真值表和逻辑表达式对电路进行分析,并确定电路的功能
设计步骤:
- 进行逻辑抽象:分析问题的因果关系,确定输入输出变量,定义输入输出逻辑状态的含义,对给的的因果关系列真值表。
- 从真值表写出逻辑函数式。
- 选定器件类型
- 将逻辑函数化简或转换成适当的描述形式。
- 根据化解或转换后的逻辑式,画出逻辑电路的连接图
- 设计验证
- 工艺设计
若干常用组合逻辑电路
人们在实践中遇到的逻辑问题层出不穷,因而为解决这些逻辑问题而设计的逻辑电路也不胜枚举。其中有些逻辑功能电路经常、大量地出现在各种数字系统当中。这些逻辑功能电路包括编码器、译码器、数据选择器、数值比较器、运算器等。下面将对这些常用数字电路模块逐一进行介绍。
编码器
将二进制码按一定规律编排,使每组代码具有一特定的含义,称为编码。实现编码功能的逻辑电路称为编码器。
普通编码器
任何时刻只允许输入一个编码信号,否则输出将发生混乱。
优先编码器
在优先编码器电路中,允许同时输入两个以上的编码信号。不过在设计优先编码器时已经将所有的输入信号按优先顺序排了队,当几个输入信号同时 出现时,只对其中优先权最高的一个进行编码。
图5给出了8线-3线优先编码器74HC148的逻辑图。如果不考虑由G1、G2和G3构成的附加控制电路,则编码器电路只有图中虚线框以内这一部分。
功能分析:
- S’——片选端(选通输入端)
S’=0时,正常工作; S’=1时,所有输出为高电平。
- YS’——无编码指示端(选通输出端)
YS’=0时,表示电路工作,但无编码输入;
YS’=1,且S’=0时,表示电路工作且有编码。
- YEX’——扩展端
YEX’=0时,表示电路工作,且有编码输入;
YEX’=1,且S’=0时,表示电路工作但无编码。
二-十进制优先编码器
在常用的优先编码器电路中,除了二进制编码器以外,还有一类称为二-十进制优先编码器。
译码器
将具有特定含义的输入代码转换成相应的输出信号,称为译码。实现译码功能的逻辑电路称为译码器。
二进制译码器
输入:二进制代码; 输出:与代码一一对应的高低电平信号。
用二极管与门阵列组成的3线-8线译码器
用二极管与门阵列构成的译码器虽然比较简单,但也存在两个严重的问题。其一是电路的输入电阻较低而输出电阻较高,其二是输出的高低电平发生偏移。因此,通常只在一些大规模集成电路内部采用这种结构,而在一些中规模集成电路译码器中多采用三极管集成门电路结构。
用与非门组成的3线-8线译码器
二-十进制译码器74LS42
二-十进制译码器的逻辑功能是将输入CBD码的10个代码译成10个高、低电平输出的信号。
BCD-七段显示译码器7448
七段字符显示器:常见的有半导体数码管、液晶显示器两种。
数据选择器
在多路数据传送过程中,能够根据需要将其中任意一路挑选出来的电路,叫做数据选择器,也称为多路选择器或多路开关。
数据选择器CC14539
加法器
两个二进制数之间的算术运算无论是加、减、乘、除,目前在数字计算机中都是化作若干步加法运算进行的。因此,加法器是构成算术运算器的基本单元。
1位加法器
半加器:半加器是不考虑低位进位的一位二进制加法器。
全加器:全加器是考虑了低位进位的一位二进制加法器。
多位加法器
串行进位加法器:把全加器的进位输出接下一位全加器的进位输入,可构成串行多位加法器。
对于串行4位加法器,从数据给出到得出结果,约需4个全加器的延时,因为高位的加运算只有在低位运算结果(进位输出)得出后才能进行,所以速度较慢。
超前进位加法器:分析略。
数值比较器
在一些数字系统中,经常要求比较两个数值的大小。为完成这一功能所设计的各种逻辑电路称为数值比较器。
1位数值比较器
图17给出的是一种实用的1位数值比较器电路。
多位数值比较器
多位二进制比较,如果高位已比较出“>”或“<”, 低位不需要进一步比较, 否则要进一步比较低位数据。
层次化和模块化的设计方法
对于较复杂的组合逻辑电路,往往不适合用一组方程式直接描述它们的逻辑功能,因而需要用层次化和模块化的设计方法。
层次化的设计方法是指“自顶而下”对整个设计任务进行分层和分块的划分,降低每层的复杂度,简化每个模块的功能;或“自底向上”地对每一个有限复杂度的模块进行实现或调用。模块化的设计方法是指将经过设计和验证的能完成一定功能的逻辑电路封装成模块,在后续的设计中都可以反复使用。
这两种方法核心是首先将电路逐级分解为若干个简单的模块,然后再将这些模块设计好并连接起来。两种方法在设计实现中往往一起使用。
可编程逻辑器件
这点击这里初步了解,详见博主FPGA系列博客。
硬件描述语言
同上。
组合逻辑电路中的竞争-冒险现象
竞争冒险现象及其成因
竞争:将门电路两个输入信号同时向相反的逻辑电平跳变(一个从1变为0,另一个从0变为1)的现象称为竞争。
竞争-冒险:由于竞争而在电路输出端可能产生尖峰脉冲的现象称为竞争-冒险。
竞争-冒险产生的原因:1.信号A、B不可能突变,状态改变要经历一段极短的过渡时间。2.信号A、B改变状态的时间有先有后,因为它们经过的传输路径长短不同,门电路的传输时间也不可能完全一样。
检查竞争-冒险现象的方法
公式判定法、计算机辅助分析法、实验检验法。
消除竞争-冒险现象的方法
接入滤波电容:由于竞争-冒险而产生的尖峰脉冲一般都很窄(多在几十纳秒以内),所以只要在输出端并接一个很小的滤波电容,就足以把尖峰脉冲的幅度削弱至门电路的阈值电压以下。这种方法的优点是简单易行,而缺点是增加了输出电压波形的上升时间和下降时间,使波形变坏。
引入选通脉冲:在电路中引入一个选通脉冲p。如图20所示。
修改逻辑设计:当竞争-冒险是由单个变量改变状态引起时,则可用增加冗余项的方法予以消除。
参考链接
- 《数字电子技术基础》(第六版)高等教育出版社