《电子技术基础(数字部分)》第 4 章 组合逻辑电路

目录

4.1 组合逻辑电路的分析

4.1.1 组合逻辑电路的定义

4.1.2 组合逻辑电路的分析方法

4.2 组合逻辑电路的设计

4.2.1 组合逻辑电路的设计过程

4.2.2 组合逻辑电路的优化实现

(1)单输出电路

(2)多输出电路

(3)多级逻辑电路

4.3 组合逻辑电路中的竞争-冒险

4.3.1 产生竞争-冒险的原因

4.3.2 消去竞争-冒险的方法

(1)发现并消去互补项

(2)增加乘积项以避免互补项相加

(3)输出端并联电容器

4.4 常用组合逻辑电路模块

4.4.1 编码器

(1)编码器的定义与功能

(2)普通编码器

(3)优先编码器

4.4.2 译码器/数据分配器

(1)译码器的定义与功能

(2)二进制译码器

① 2线-4线译码器

② 3线-8线译码器

③ 二进制译码器的应用

(3)二-十进制译码器

(4)七段显示译码器

(5)数据分配器

4.4.3 数据选择器

(1)数据选择器的定义和功能

(2)用数据选择器实现逻辑函数

① 简单逻辑函数的实现

② 采用香农展开定理分解逻辑函数后实现

(3)用数据选择器构成查找表LUT

(4)用数据选择器构成移位器

① 基本移位器

② 桶形移位器

(5)在信号传输系统的应用

4.4.4 数值比较器

(1)数值比较器的定义和功能

① 1位数值比较器

② 两位数值比较器

(2)4位数值比较器模块及扩展

① 4位数值比较器

② 数值比较器的扩展

4.4.5 算术运算电路

(1)半加器和全加器

① 半加器

② 全加器

(2)多位数加法器

① 串行进位加法器

② 超前进位加法器

③ 加法器的层次化扩展

(3)减法运算

4.5 组合逻辑的可编程电路实现

4.5.1 PLD的电路表示﹑编程技术及分类

(1)PLD的电路表示

① 基本门电路的表示方式

② 连接方式

③ 编程连接技术

④ 浮栅MOS管编程原理简介

(2)PLD的分类

4.5.2 组合逻辑电路的PLD实现

(1)可编程逻辑阵列PLA

(2)可编程阵列逻辑PAL

4.6 用Verilog HDL描述组合逻辑电路

4.6.1 组合逻辑电路的行为级建模

4.6.2 分模块、分层次的电路设计


                   

数字系统中常用的各种数字部件,就其结构和工作原理而言可分为两大类:组合逻辑电路时序逻辑电路

本章首先介绍组合逻辑电路的定义、分析方法、设计方法。并阐述竞争-冒险产生的原因及消除方法。

然后讨论常用的几种组合逻辑电路模块的功能及基本应用,它们包括编码器、译码器、数据选择器、数据分配器、数值比较器、算术运算单元等。

最后介绍组合逻辑电路的Verilog HDL描述以及用可编程逻辑器件PLD的实现方法。

4.1 组合逻辑电路的分析

4.1.1 组合逻辑电路的定义

对于一个逻辑电路,其输出状态在任何时刻只取决于同一时刻的输入状态,而与电路原来的状态无关,这种电路被定义为组合逻辑电路

没有“状态存储电路”存储之前的输入产生的输出信息

组合逻辑电路的一般框图如图4.1.1所示,其输出与输入之间的逻辑关系可用如下的逻辑函数来描述,即

式中,A1、A2…An为输入变量。

组合逻辑电路的结构具有如下的特点

(1)输出、输入之间没有反馈延迟通路;

(2)电路中不含具有记忆功能的元件。

4.1.2 组合逻辑电路的分析方法

分析组合逻辑电路的目的是,对于一个给定的逻辑电路,确定其逻辑功能

分析组合逻辑电路的步骤大致如下:

(1)根据逻辑电路,从输入到输出,写出各级逻辑函数表达式,直到写出输出信号与输入信号的逻辑函数表达式;

(2)将各逻辑函数表达式化简和变换,以得到最简单的表达式;

(3)根据简化后的逻辑表达式列出真值表;

(4)根据真值表和简化后的逻辑表达式对逻辑电路进行分析,最后确定其功能。

下面举例说明组合逻辑电路的分析方法。

例1:分析图示组合逻辑电路的逻辑功能

(1)确定逻辑表达式:……

(2)确定真值表:……

(3)确定逻辑功能:分析真值表后可知——当A、B、C三个输人变量的取值中有奇数个1时,L为1,否则L为0。

所以该电路称为奇校验电路,用于检查输入的3位二进制数据的奇偶性。

应用:传输数据全奇校验,接收到偶数个1,则必有数据出错。

如果在上述电路的输出端再加一级反相器,当输人电路的二进制数据中含有偶数个1时,输出为1,则称此电路为偶校验电路

波形图可以比较直观地反映输入与输出之间的逻辑函数关系,对于比较简单的组合逻辑电路,也可用画波形图的方法进行分析。为了避免出错,通常是根据输入波形的变化分段,然后逐段画出输出波形,例如,第一段的输入信号A、B、C的值均为0,代入表达式中得出Z的值,然后得出L的值,如图4.1.3所示。最后根据波形图确定输入和输出的逻辑功能。

奇偶校验电路是一种检测数据传输是否正确的最简单方法。通常在被传输的数据前面或者后面增加一位校验位

数据传输前,校验位被设置为0或1以满足——奇校验时,含校验位的待传数据中1的个数为奇数;偶校验时,含校验位的待传数据中1的个数为偶数。传输后,在接收端通过检测1的个数,便可判断传输是否有错。因此,奇偶校验有奇偶校验位产生电路校验电路两部分组成。具体电路设计参见习题4.2.4。

例如,原始数据为101 1000,如果采用奇校验,且后缀校验位的方式,则为101 1000 0;如果采用偶校验,则为101 1000 1。

奇偶校验只能检测出奇数个错误,而且不能确定哪一位出错。发生错误时只能扔掉全部数据,重新传输。

例2:分析图示组合逻辑电路的逻辑功能

(1)确定逻辑表达式:

Y=A⊕B,Z=A⊕C

(2)确定真值表:……

(3)确定逻辑功能:分析真值表可知——输出最高位X与输入最高位A相等。当A为0时,输出Y、Z分别与所对应的输入B、C相同;而当A为1时,输出Y、Z分别是输人B、C取反。

这个电路逻辑功能是对输入的二进制码求反码

最高位为符号位,0表示正数,1表示负数,正数的反码与原码相同——A为0则直接输出B、C;

负数的数值部分是在原码的基础上逐位求反——A为1则将B、C取反后输出。——异或逻辑!

4.2 组合逻辑电路的设计

组合逻辑电路的设计与分析过程相反,对于提出的实际逻辑问题,得出满足这一逻辑问题的逻辑电路。

电路设计的首要任务是满足功能要求,其次是优化,也称为最小化,即用指定的器件实现逻辑函数时,力求成本低并且工作速度快。

前面介绍的用代数法和卡诺图法来化简逻辑函数,是为了获得最简的逻辑表达式。根据最简表达式获得最低成本电路(门数量最少不一定最低成本,种类也是关键)。

电路的实现可以采用各种门电路,也可以利用数据选择器等基本模块,或者可编程逻辑器件。因此,逻辑函数的化简也要结合所选用的器件进行,有时还需要一定的变换,以便满足优化实现的要求。这一节主要介绍用门电路实现组合逻辑电路

4.2.1 组合逻辑电路的设计过程

组合逻辑电路的设计步骤大致如下:

(1)明确实际问题的逻辑功能。许多实际设计要求是用文字描述的,因此,需要确定实际问题的逻辑功能,并确定输入、输出变量数及表示符号;

(2)根据对电路逻辑功能的要求,列出真值表;

(3)由真值表,写出逻辑表达式

(4)简化(卡诺图化简)和变换逻辑表达式

(5)用门电路画出逻辑图

下面举例说明设计组合逻辑电路的方法和步骤。

例1:设计一个逻辑电路实现如下功能

(1)明确逻辑功能,列出真值表

(2)根据真值表,列出逻辑表达式

(3)化简逻辑表达式

(4)用门电路实现逻辑电路

例2:设计一个逻辑电路实现如下功能

(1)明确逻辑功能,列出真值表

(2)卡诺图化简

(3)根据逻辑表达式,用门电路实现逻辑电路

从以上逻辑表达式和逻辑图可以看出,用异或门代替与门、或门能使逻辑电路比较简单。在化简和变换逻辑表达式时,注意综合考虑,使各式中的相同乘积项尽可能多,使某些输出作为另一些逻辑门的输人。

例如,利用B2作为B1的一个输人,B1又作为B0的一个输入,这样可以减少门电路的数目,降低实现电路的成本。

4.2.2 组合逻辑电路的优化实现

逻辑函数的优化实现的主要目的是用指定芯片中特定资源实现逻辑函数,使电路的成本最低。

逻辑电路的成本是由电路中总的逻辑门数量加上所有逻辑门的输入端数来表示

前面介绍的组合逻辑电路的设计过程中,对满足功能要求的逻辑函数进行代数法或卡诺图法化简,通常得到最简与-或式。可以用与门、或门构成最简的两级与-或结构电路。

但实际电路设计不仅要满足功能要求,还要确保能够用指定的芯片实现。因此要对逻辑函数的最简与-或式进行变换,变换成能够满足限定条件的形式。

但当变量数比较多时,手工化简变得很困难,故由EDA工具实现优化。EDA工具的优化策略和实现过程庞大而复杂,由计算机在后台完成。作为人门,这一节简单介绍EDA 工具实现优化综合时用到的一些技术。

(1)单输出电路

(2)多输出电路

(3)多级逻辑电路

4.3 组合逻辑电路中的竞争-冒险

前面进行组合逻辑电路的分析和设计时,都没有考虑逻辑门的延迟时间对电路产生的影响,并且认为电路的输入和输出均处于稳态的逻辑电平。实际上,信号经过逻辑门电路都需要一定的时间。由于不同路径上门的数目不同,导致信号的传输时间不同。或者传输路径上门的数目相同,而各个门延迟时间有差异,也会造成信号的传输时间不同。因此,电路在信号电平变化瞬间,可能与稳态下的逻辑功能不一致,产生错误输出,这种现象就是电路中的竞争-冒险

我的理解:在暂态,B和~B经过不同的路径到达后面的某一个同一个门。

4.3.1 产生竞争-冒险的原因

下面通过两个简单电路的工作情况,说明产生竞争-冒险的原因。

图4.3.1(a)所示的与门在稳态情况下,当A=0,B=1或者A=1,B=0时,输出L始终为0。如果信号A、B的状态从A=0,B=1同时翻转为A=1,B=0,则L能保持0不变。但是,由于前级门电路的延迟差异或其他原因,致使B从1变为0的时刻,滞后于A从0变为1的时刻,即在很短的时间间隔内,A、B同时为1,则与门的输出端就会出现一个高电平窄脉冲(干扰脉冲),如图4.3.1( b)所示,图中考虑了与门的延迟。

同理,图4.3.2( a)所示的或门在稳态情况下,当A=0,B=1或者A=1,B=0时,输出L始终为1。而当A从0变为1时刻,滞后于B从1到0的时刻,则在很短的时间间隔内,或门的两个输人端均为0,使输出出现一个低电平窄脉冲,如图4.3.2(b)所示。

下面进一步分析组合逻辑电路产生的竞争-冒险。图4.3.3( a)所示的逻辑电路中,它的输出逻辑表达式为L=AC+BC。由此式可知,当A和B都为1时,表达式简化成两个互补信号相加,即L=C+~C,此时,该电路可能存在竞争-冒险。由图4.3.3(b)所示的波形图可以看出,在C由1变0时,C由0变1有一延迟时间,G2和G3的输出AC和B~C分别相对于C和~C均有延迟,AC和B~C经过G4的延迟而使输出出现一负跳变的窄脉冲。

综上所述,在一定条件下,当一个逻辑门的两个输入端的信号同时向相反方向变化,而变化的时间有差异的现象,称为竞争

两个输入端可以是不同变量所产生的信号,但其取值的变化方向是相反的,参见图4.3.1和图4.3.2中的AB及A+B。也可以是在一定条件下,门电路输出端的逻辑表达式简化成两个互补信号相乘或者相加,即L=A·~A或者L=A+~A,如图4.3.3所示。

由竞争而可能产生输出干扰脉冲的现象称为冒险

在考虑延迟的条件下,若与门的两个输入A和~A,其中一个先从0变1时,则A·~A会向其非稳定值1变化,此时会产生冒险;若或门的两个输入A和~A,其中一个先从1变0时,则A+~A会向其非稳定值0变化,也会产生冒险。两者之间存在对偶关系。

值得注意的是,有竞争现象时不一定都会产生干扰脉冲,如图4.3.2( a)中,如果B从1变为0时刻滞后A的变化,则输出不会产生冒险

4.3.2 消去竞争-冒险的方法

针对上述分析,可以采取以下措施来消去竞争-冒险现象。

(1)发现并消去互补项

例如,函数式F=(A+B)(~A+C),在B=C=0时,F=A·~A。若直接根据这个逻辑表达式组成逻辑电路,如图4.3.4(a)所示,则可能出现竞争-冒险。

如将该式变换为F=A~A+AC+~AB+BC=AC+~AB+BC,这里已将A~A消掉。根据这个表达式组成逻辑电路,如图4.3.4( b)所示,就不会出现竞争-冒险。

(2)增加乘积项以避免互补项相加

对于图4.3.3(a)所示的逻辑电路的输出L=AC+B~C,其卡诺图如图4.3.5所示,两个相邻包围圈①②之间存在相邻最小项m6和m7,当A=B=1时,使得L=C+~C。如果增加一个包围圈AB,使输出变为L=AC+B~C+AB,则A=B=1时,L=C+~C+1,不会只出现互补项相加的情况。而此时电路中,G5输出为1,使G4输出亦为1,这就消除了C的状态变化对输出状态的影响,从而消去了竞争-冒险,如图4.3.6所示。

(3)输出端并联电容器

对于工作速度不高的逻辑门构成的电路,为了消去竞争-冒险产生的干扰窄脉冲,可以在输出端并联一滤波电容,其容量为4~20 pF之间。若在图4.3.3(a)所示电路的输出端并联电容C,其输出端等效电路如图4.3.7(a)所示,Ro是逻辑门电路的输出电阻。

当A=B=1,C的波形与图4.3.3相同的情况下,得到如图4.3.7(b)所示的波形图。显然,电容对输出窄脉冲起到平波的作用,消除输出端出现的逻辑错误,但同时也使输出波形上升沿或下降沿变得缓慢

以上介绍了产生竞争-冒险的原因和克服竞争-冒险的方法。现代数字电路或数字系统的分析与设计,可以借助计算机进行时序仿真,检查电路是否存在竞争-冒险现象。仿真时,由于逻辑门电路的传输延迟时间是采用软件设定的标准值或设计者自行设定的值,与电路的实际工作情况有差异,最终要在实验中检查验证。因此,要能很好地解决这一问题,还必须在实践中积累和总结经验。

4.4 常用组合逻辑电路模块

在大规模可编程器件普遍应用之前,许多具有特定功能的常用组合逻辑电路被制成了单个的中规模集成芯片,为构建数字系统提供了极大方便。在现代数字系统设计中,这种中规模芯片已经被淘汰,但它们作为基本模块在系统设计中仍被广泛采用。本节将从功能模块而非集成芯片的角度介绍这些电路。这些模块包括编码器、译码器、数据选择器、数据分配器、数值比较器、算术运算单元等。

4.4.1 编码器

(1)编码器的定义与功能

数字系统中存储或处理的信息,常常是用二进制码表示的。用一个二进制代码!!!表示特定含义的信息称为编码。具有编码功能的逻辑电路称为编码器

图4.4.1所示为二进制编码器结构图,它有n位二进制码输出,与2^n个输入相对应。编码器有普通编码器优先编码器之分。

每次只有一路输入信号有效,每路有效输入信号对应一种输出信号组合

普通编码器任何时刻只允许一个输入信号有效,否则将产生错误输出。优先编码器允许多个输入信号同时有效,输出是对优先级别高的输入信号进行编码。

(2)普通编码器

4线-2线普通编码器功能表如表4.4.1所示。

根据功能表可以设计出编码器电路。4个输入I0~I3为高电平有效,输出是2位二进制代码Y1Y0

任何时刻I0~I3中只能有一个取值为1,并且有一组对应的二进制代码输出。

除表中列出4个输入变量的4种取值组合有效外,其余12种组合所对应的输出均应为0

由真值表可以得到如下逻辑表达式:

在任何时刻只有一个输人为1的前提下,可以进一步简化式(4.4.1),将表4.4.1中没有列出的12种组合所对应的输出看作无关项,此时可得

式(4.4.2)是考虑了无关项的简化结果,比式(4.4.1)简单。根据式(4.4.2)的逻辑表达式画出逻辑图如图4.4.2所示。

应当特别注意,这一电路实现正常编码时,对输入信号有严格的限制,即任何时刻I0~I3中只能并且必须有一个取值为1。

上述编码器还存在一个问题,当电路所有的输入为0时,输出Y1、Y0为0。而当I0为1时,输出Y1、Y0也全为0,即输入条件不同而输出代码相同。这两种情况在实际中必须加以区分,解决的方法将在下面例题中介绍。

或非门:输入全0时输出为1;否则输出0——有一个高电平,就会输出低电平

与非门:输入全1时输出为0;否则输出1——有一个低电平,就会输出高电平

功能表总结:

① 一开始与非门输入全1,输出全0,GS也为0

② 无论~S0为0,还是A、B、C、D中哪个为1都会使GS前的与非门的输入端有一个为0,输出1。

③ 

对功能表和逻辑电路进行分析——

① 该编码器为输入低电平有效,因此用带非号的变量表示;

② 在按下~S0到~S9中任意一个键时,即输入信号中有一个为低电平时,ABCD输出信号为该键的BCD编码,同时GS=1,表示有信号输入

③ 只有~S0到~S9均为高电平时GS=0,表示无信号输入,此时的输出代码0000为无效代码。

由此解决了前面4线-2线编码器存在的问题——输入条件不同而输出代码相同的问题。

(3)优先编码器

在实际应用中,经常会遇到两个以上的输入同时为有效信号的情况。因此,必须根据轻重缓急,事先规定好这些输入编码的先后次序,即优先级别。识别这类请求信号的优先级别并进行编码的逻辑电路称为优先编码器。

8线-3线优先编码器功能如表4.4.3所示。

该编码器有8个信号输人端I7~I0,3位二进制码输出端Y2Y1Y0,输,入和输出均以高电平作为有效电平。

从功能表可以判断输入l7~l0的优先级别——例如,当I7为1的,无论其他输入是否为有效输入电平,输出Y2Y1Y0为111是对l7进行的编码,说明I7的优尤级别最高。只有当其I7~I1均为0,而I0为1时,输出 Y2Y1Y0为000是对I0进行的编码,说明I0的优先级别最低。

此外,为便于多个编码器级联扩展,还设置了高电平有效的输入便能项EI和输出使能端EO,以及优先编码工作状态标志GS

当EI=1时,编码器工作;而当EI=0时,禁止编码器工作,此时不论8个输入端为何种状态,3个输出端均为低电平,且GS和EO均为低电平。

只有在EI为1,且所有输入端都为0时,EO 输出为1,它可与另一个相同编码器的EI连接,以便组成更多输入端的优先编码器。此时前一个编码器使能但无输入,才使能后一个编码器!!!

GS的功能是,当EI为1,且至少有一个输入端有高电平信号输入时,GS为1,表明编码器输出有效编码,否则GS为0。

由此可以区分当电路所有输入端均无高电平输入,或者只有I0输入端有高电平时,Y2Y1Y0均为000的情况。

根据功能表推导出各输出端的逻辑表达式为:

由式(4.4.3)可以画出逻辑图(此处省略),逻辑符号如图4.4.4所示。

例1:

编码器(1)的优先级高于编码器(0):高8线有输入,会屏蔽来自低8线的输入(EO1=0,EI0=0)

4.4.2 译码器/数据分配器

在数字系统中,经常需要将一种代码转换为另一种代码,以满足特定的需要,完成这种功能的电路称为码转换电路——译码器、编码器

(1)译码器的定义与功能

译码是编码的逆过程,它的功能是将具有特定含义的二进制码转换成对应的输出信号,具有译码功能的逻辑电路称为译码器

译码器可分为两种类型。

一种是将一系列代码转换成与之一一对应的有效信号。这种译码器可称为二进制译码器唯一地址译码器,常用于存储器中单元地址的译码,即将每一个地址代码转换成一个有效信号,从而选中对应的单元。

多路输入——>一路输出

另一种是将一种代码转换成另一种代码,所以也称为代码变换器。(转码器)

图4.4.6表示二进制译码器(唯一地址译码器)的一般框图,它具有n个输入端、2^n个输出端和一个使能输入端。

在使能输入端为有效电平时,对应每一组输入代码,只有其中一个输出端为有效电平,其余输出端
则为相反电平。输出信号可以是高电平有效,也可以是低电平有效。

(2)二进制译码器

① 2线-4线译码器

2线-4线译码器有2个输入变量A1、A0,共有4种不同状态组合,因而这2路输入信号可以控制4路输出信号~Y0到~Y3

当输出为低电平有效时,真值表如表4.4.4所示。

另外~E为使能控制端,当E为1时,无论A1、A0为何种状态,输出全为1,译码器处于非工作状态,没有有效信号输出。

而当E为0时,对应于A1, A0的一种输入状态,其中只有一个输出端为0,其余各输出端均为1。

由此可见,译码器是通过输出端的逻辑电平来识别不同的代码的。

根据真值表可写出各输出端的逻辑表达式为

根据逻辑表达式画出逻辑图如图4.4.7( a)所示,对于这种特定功能模块,常用图4.4.7(b)所示逻辑符号表示。

逻辑符号说明

图4.4.7(c)框内画出逻辑符号的内部结构,框外部的~E、~Y0到~Y3作为变量符号,表示外部输入或输出信号名称,字母上面的"-"号说明该输入或输出是低电平有效。框内部的输入、输出变量表示其内部的逻辑关系,全部为高电平有效

当输入或输出为低电平有效时,符号框外部逻辑变量~E、~Y0到~Y3的逻辑状态与符号框内相应的E、Y0到Y3的逻辑状态相反。在推导表达式的过程中,如果低有效的输入或输出变量上面的“-”号参与运算,则在画逻辑图或验证真值表时,注意将其还原为低有效符号。

② 3线-8线译码器

一种3个使能控制端的3线-8线译码器的功能表如表4.4.5所示。图4.4.8是它的逻辑符号。

该译码器有3位二进制输入A2、A1、A0,它们共有8种组合状态,,即可译出8个输出信号~Y0到~Y7,输出为低电平有效。

此外,,还设置了3个使能输入端E3、~E2、~E1,为扩展电路的功能提供了方便

这里设由功能表可写出:

译码器的输出包含了输入A2、A1、A0组成的所有最小项。

功能表4.4.5中的前3行,是在使能输入信号控制下的禁止译码状态

74HC138是3线-8线CMOS集成译码器,其功能表和逻辑符号分别如表4.4.5与图4.4.8所示。

74HC139是双2线-4线CMOS集成译码器,其内部封装了两个独立的与图4.4.7(b)相同的译码器。

利用3线-8线译码器可以构成4线-16线、5线-32线或6线-64线译码器。

功能解析:

① B4B3=00,对应一个3-8译码器,其余3片为禁止译码状态;

② B4B3=01,对应一个3-8译码器,其余3片为禁止译码状态;

③ B4B3=10,对应一个3-8译码器,其余3片为禁止译码状态;

④ B4B3=11,对应一个3-8译码器,其余3片为禁止译码状态;

一级译码+二级译码=两级译码的5-32译码器

③ 二进制译码器的应用

二进制译码器常用于计算机中存储单元或其他一些设备的地址译码(唯一地址译码器)。例如微处理器通过3线-8线译码器识别连接的多个外部设备,如图4.4.10所示。微处理器的一部分地址总线作为译码器的控制输入,任何时刻译码器只能有一个输出为低电平,使与其连接的外部设备的片选信号~CS有效,允许该外部设备与微处理器进行数据交换,其余外部设备的数据均为高阻状态。

(3)二-十进制译码器

在第一章已经讨论过8421BCD 码,对应工0~9的十进制数,由4位二进制数0000~1001表示。由于人们不习惯于直接识别二进制数,所以采用二-十进制译码器来解决。这种译码器应有4个输入端,10个输出端。它的真值表如表4.4.7所示,其输出为低电平有效。当输入超过8421BCD码的范围时(即1010~1111),输出均为高电平,即没有有效译码输出。

根据真值表4.4.7,可以写出二-十进制译码器输出与输入的逻辑表达式:

由式(4.4.6)可以画出逻辑图(此处省略)。

二-十进制译码器应用电路如图4.4.11所示。电路的输出分别接标有十进制数的灯泡。当输入一组8421BCD 码时,对应输出端为低电平,点亮与之相连的灯泡。

(4)七段显示译码器

在数字测量仪表和各种数字系统中,都需要将数字量直观地显示出来。

数字显示电路通常由译码驱动器显示器等部分组成。

数码显示器就是用来显示数字、文字或符号的器件。

七段式数字显示器在日常生活中广泛使用。图4.4.12表示七段式数字显示器利用不同发光段的组合,显示0~9阿拉伯数字。

有些数码显示器增加了一段,作为小数点。

七段式数字显示器,也称为七段数码管。常见的七段显示器有发光二极管液晶显示器两种,这里主要介绍前者。

发光二极管构成的七段显示器有共阴极共阳极两种,如图4.4.13所示。

共阴极电路:八个发光二极管的阴极连在一起接低电平(阴极接下拉电平),需要某一段发光,就将相应二极管的阳极接高电平(阳极控制端加高电平驱动发光)。

共阳极显示器的驱动则刚好相反。

为了使数码管能显示十进制数,必须将十进制数的代码经译码器译出,然后经驱动器点亮对应的段。

例如:对于8421BCD码的0011状态,对应的十进制数为3,则译码驱动器应点亮a、b、c、d、g各段。

显示译码器的功能就是将8421BCD码转换为段的驱动信号

常用的七段显示译码器有两类:一类译码器输出高电平有效信号,用来驱动共阴极显示器;另一类输出低电平有效信号,以驱动共阳极显示器。

下面介绍输出高电平有效的七段显示译码器(74HC4511)。

七段显示译码器功能表如表4.4.8所示。

当输入D3D2D1D0为8421BCD码时,输出高电平有效,驱动共阴极显示器。当输入为1010~1111六个状态时,输出全为低电平,显示器无显示。

该显示译码器设有三个辅助控制端LE、~BL、~LT,以增强器件的功能。

① 灯测试输入~LT

当~LT=0时,无论其他输入端是什么状态,所有输出a~g均为1,显示器显示字形8。该输入端常用于检查译码器本身及显示器各段的好坏(全段显示检测)。

② 灭灯输入~BL
当~BL=0,并且LT=1时,无论其他输入端是什么电平,所有输出a~g均为0,所以字形熄灭。该输入端用于将不必要显示的零熄灭,例如一个6位数字023.050,将首、尾多余的0熄灭,则显示为23.05,使显示结果更加清楚,参考习题4.4.10电路图。

③ 锁存使能输入LE

在~BL=~LT=1的条件下,当LE=0时,锁存器不工作,译码器的输出随输入码的变化而变化;当LE由0跳变为1时,输入码被锁存,输出只取决于锁存器的内容,不再随输入的变化而变化。有关锁存器的内容将在第五章介绍。

七段显示译码器( 74HC4511)与七段显示器的连接方式如图4.4.14所示。

动态显示电路:意即并非对同一数码管持续提供高/低电平

分析:如果每位显示器配一个显示译码器驱动,当显示器的位数比较多时,电路的复杂程度会增加。采用动态扫描方式,可以减少显示译码器数目,用较少的显示译码器独立驱动多个显示器,简化电路连线

图中4个显示器对应的a~g段分别接在一起(并联到a~g这7条总线,每条总线接4个分支),并与显示译码器的输出a~g分别相连。将要显示的BCD码表示的十进制数据组,分别送到显示译码器的输入端D3D2D1D0,2线-4线译码器的选择信号A1A0控制输出~Y0到~Y3,依次产生低电平,使4个显示器轮流显示。

位选择信号A1A0必须与显示的数据D3D2D1D0同步变化

例如要显示4位数5678,当D3D2D1D0=1000,A1A0=00时,~Y0=0,(0)位显示器显示8。当D3D2D1D0=0111,A1A0=01时,~Y1=0,(1)位显示器显示7,以此类推,对应的显示数据和被点亮的显示器如图(b)所示。

4个显示器刷新的周期为T,每个显示器被点亮的时间为T/4。虽然4个显示器是轮流被点亮的,但当刷新频率达到一定数值(如40 Hz,即T= 1/40 Hz=0.025 s)时,由于人眼的视觉暂留现象,会看到显示器同时在显示5678,不会有闪烁感,动态显示的效果和静态显示是一样的

通常人的视觉暂留时间为0.05 s,所以要求刷新周期T≤0.05 s,那么在T和驱动电流不变的情况下,显示器个数越多,一个刷新周期内同一显示器的点亮时间就越短,视觉亮度就会降低。

(5)数据分配器

数据分配是将公共数据线上的数据根据需要送到不同的通道上去,实现数据分配功能的逻辑电路称为数据分配器。它的作用相当于多个输出的单刀多掷开关,其示意图如图4.4.16所示。

数据分配器可以用带使能端的二进制译码器实现

如用3线-8线译码器可以把1个数据信号分配到8个不同的通道上去。用3线-8线译码器作为数据分配器的逻辑原理图如图4.4.17所示。

将~E2接低电平,E3作为使能端,~E1作为数据输入,A2、A1和A0作为选择通道地址输入。

例如,当E3=1,A2A1A0=010时,,而其余输出端均为高电平。

因此,当地址A2A1A0=010时,只有输出端~Y2得到与输入相同的数据波形。改变A2A1A0的取值可以将数据送到不同的输出端。

数据分配器的用途比较多,比如用它将一台PC机与多台外部设备连接,将计算机的数据分送到外部设备中。它还可以与计数器结合组成脉冲分配器,用它与数据选择器连接组成分时数据传送系统。

每个输出端有3种状态:0、1、z(高阻)

4.4.3 数据选择器

(1)数据选择器的定义和功能

数据选择是指经过选择,把多路数据中的某一路数据传送到公共数据线上,实现数据选择功能的逻辑电路称为数据选择器

它的作用相当于多个输入的单刀多掷开关,其示意图如图4.4.19所示。

在3.2.4节已经介绍了由传输门构成的2选1数据选择器

这里介绍将2选1数据选择器作为基本模块,构成更大规模的电路。

图4.4.20所示为与门和或门构成的2选1数据选择器电路及逻辑符号,该符号常在大规模逻辑电路中使用。

选择输入端(又称为地址输入端)S决定输出Y等于D0还是D1,真值表如表4.4.10 所示。输出的逻辑函数式为

可以用3个2选1数据选择器构成4选1数据选择器,如图4.4.21(a)所示。

它是两级电路,第1级两个数据选择器分别实现。第2级实现Y=,将Y0和Y1代入有:

图4.4.21(b)所示为其逻辑符号,其真值表如表4.4.11所示。

同样原理,可以构成更多输入通道的数据选择器。被选数据源越多,所需选择输入端的位数也越多,若选择输入端为n,可选输入通道数为2^n。

译码器与数据选择器都具有选择功能(多到一),因此可以用二进制译码器构成数据选择器。图4.4.22所示是由译码器、与门和或门构成的4选1数据选择器。译码器的输入作为通道选择端,其输出分别控制各个与门,以便选择D0、D1、D2或D3中的一个数据传送到输出端。

数据选择器的应用非常广泛,并且是构成FPCA 器件内部查找表(LUT)的基本单元。在数字系统中,用于移位运算的移位器由数据选择器构成。常用的数据选择器模块有2选1数据选择器、4选1数据选择器、8选1数据选择器、16选1数据选择器等。还有一些数据选择器具有三态输出功能,除了正常的0或1输出之外,当使能输入端为无效信号时,输出为高阻状态。利用这一特点,可以将多个数据选择器的输出端线与连在一起,共用一根数据传输线,而不会出现相互干扰问题。

(2)用数据选择器实现逻辑函数

① 简单逻辑函数的实现

以4选1数据选择器为例,它有2个选择输入S1、S0,和4个数据输人D0、D1、D2、D3,其输出与输入的关系式可以写成:

式中,mi是选择输入端S1、S0构成的最小项。数据输入作为控制信号,当Di=1时,其对应的最小项mi在表达式中出现,当Di=0时,对应的最小项就不出现。利用这一点将函数变换成最小项表达式,函数的变量接选择输入端,就可以实现组合逻辑函数。

由此可知,用一个具有n位选择输入的数据选择器,实现变量数不大于n+1的逻辑函数时,每一个数据输入端可以接0、1、单变量、非变量。当变量数大于n+1时,可以用多个数据选择器扩展使用,也可以附加其他门电路后连接到数据输入端。

② 采用香农展开定理分解逻辑函数后实现

前面例题都是通过真值表得到数据选择器数据输入端的表达式,当变量数比较多时,就不容易得出结果,这时可以采用香农展开定理对逻辑函数进行分解,得出数据端的逻辑表达式。

(3)用数据选择器构成查找表LUT

构成FPGA基本单元的逻辑块主要是查找表 LUT。LUT实质是一个小规模的存储器,以真值表的形式实现给定的逻辑函数。3输入LUT的结构及逻辑符号如图4.4.25所示,由7个2选1数据选择器组成3级电路,第1级的数据输入端接存储单元(存储单元在第7章介绍),每个存储单元可以存放一个逻辑值0或1,由编程决定存0还是1。用数据选择器扩展方法可以得到4输入的LUT,这时输入端需要16个存储单元。当输入端增加时,LUT使用的数据选择器呈几何增长。FPGA中 LUT的输入端数一般为4个,有的达到6个。

图4.4.26所示为3输入LUT实现例4.4.7中的函数L1=A~C+BC。根据表4.4.12所示真值表中L1的取值,对存储单元编程,即将L1的值写人LUT对应的存储单元。输入变量A、B、C接入选择端,根据它们的取值从8个存储单元中选择一个作为输出。

用FPGA实现大规模逻辑电路时,变量数比较多,首先要对复杂逻辑函数进行函数分解变换,以满足单个LUT对变量数的要求,然后通过多个LUT扩展实现复杂的逻辑函数

(4)用数据选择器构成移位器

在计算机等数字系统中除了算术运算和逻辑运算,通常还需要移位运算。在第六章介绍的移位寄存器的移位是在时钟脉冲控制下进行的,一个时钟脉冲只能移动一位。但在运算电路中常需要高速移位,这时便可采用组合逻辑电路构成的移位器。

① 基本移位器

由数据选择器构成的4位基本移位器如图4.4.27所示。

注意:这里二进制的选通标志10变成了十进制的2,以此类推……

选择变量S1S0控制移位器的操作类型。

当S1S0=00时,输入数据D3D2D1D0通过各数据选择器直接输出,Y3Y2Y1Y0=D3D2D1D0。

当S1S0=01时,Y3Y2Y1Y0=IRD3D2D1,将数据右移一位输出,IR的值移入最左边。

当S1S0=10时,Y3Y2Y1Y0=D2D1D0IL,将数据左移一位输出,IL的值移入最右边。

其中S1S0=11没有使用。

4位基本移位器的功能表如表4.4.14所示。

② 桶形移位器

能将数据移动多位,移出位被放置在右边(左移时)或左边(右移时),且能进行循环移位,具备这种功能的电路称为桶形移位器( barrel shifter)

一个4位桶形移位器如图4.4.28所示。

它由4个具有相同选择信号S1S0的4选1数据选择器构成。

当S1S0=00时,不移位,输入数据直接输出Y3Y2Y1Y0=D3D2D1D0。

当S1S0=01时,Y3Y2Y1Y0=D0D3D2D1,输入数据循环右移一位。

当S1S0=10时,Y3Y2Y1Y0=D1D0D3D2,输入数据循环右移两位。

当S1S0=11时,Y3Y2Y1Y0=D2D1D0D3,输入数据循环右移三位。

其功能表如表4.4.15所示。如果要构成n位桶形移位器,就需要n个n选1数据选择器,最多可移动n-1 位。

注意,这种桶形移位器也可看作循环左移的移位器。例如,循环右移三位与循环左移一位的结果相同(见表4.4.15功能栏括号中的描述)。

(5)在信号传输系统的应用

数据选择器又称为多路复用器,数据分配器又称为多路分配器(或解复用器)。

由多路复用器、多路分配器和总线连接构成的信号传输系统示意图如图4.4.29所示。

该系统将多个数据信号中的一路信号连接到总线,经过远距离传送后,由多路分配器再将总线上的数据分配到被选中的多个目的地之一。这种信息传输的基本原理在通信系统、计算机网络系统以及计算机内部各功能部件之间的信息传送等都有广泛的应用。

4.4.4 数值比较器

(1)数值比较器的定义和功能

在数字系统中,特别是在计算机中常需要对两个数的大小进行比较。

数值比较器就是对两个二进制数A、B进行比较的逻辑电路,比较结果有A>B、A<B以及A=B三种情况

① 1位数值比较器

1位数值比较器是多位比较器的基础。当A和B都是1位二进制数时,它们只能取0或1两种值,由此可写出1位数值比较器的真值表,如表4.4.16所示。

由以上逻辑表达式可画出图4.4.30所示的逻辑电路。

② 两位数值比较器

两位二进制数分别为A1A0和B1B0,用FA>B、FA<B和FA=B表示比较结果。

当高位(A1、B1)不相等时,无须比较低位(A0、B0),高位比较的结果就是两个数的比较结果。

当高位相等时,两数的比较结果由低位比较的结果决定。利用1位数值的比较结果,可以列出简化的功能表,如表4.4.17所示。

根据上式画出逻辑图,如图4.4.31所示。电路利用了1位数值比较器的输出作为中间结果

它所依据的原理是,如果两位数A1A0和B1B0的高位不相等,则高位比较结果就是两数比较结果,与低位无关。这时,高位输出FA1=B1=0,使与门G1、G2、G3均封锁,而或门都打开,低位比较结果不能影响或门,高位比较结果则从或门直接输出。

如果高位相等,即FA1=B1=1,使与门G1、G2、G3均打开,同时由FA1>B1=0和FA1<B1=0作用,或门也打开,低位的比较结果直接送达输出端,即低位的比较结果决定两数的大、小或者相等。

用以上的方法可以构成更多位的数值比较器。

(2)4位数值比较器模块及扩展

常用的比较器模块有4位数值比较器、8位数值比较器等。

① 4位数值比较器

4位数值比较器是对两个4位二进制数A3A2A1A0与B3B2B1B0进行比较,比较原理与2位比较器相同。先比较最高位A3和B3,如果它们不相等,则该位的比较结果作为两数的比较结果。若最高位A3=B3,则再比较次高位A2和 B2,以此类推。

显然,如果两数相等,那么,必须将比较进行到最低位才能得到结果。

可以得出:

74HC85是4位CMOS集成数值比较器,除了有8个数据输入端、3个输出端外,还有3个扩展输入端,可以与低位片的输出连接,以便组成位数更多的数值比较器。

若相比较的4位数不等时,直接输出比较结果;

如果相等时,输出由扩展端的输入决定。

若仅对4位数比较时,应对进行适当处理,即

② 数值比较器的扩展

数值比较器的扩展有串联和并联两种方式。图4.4.32表示4个4位数值比较器串联成为一个13位的数值比较器,低位比较器的输出FA>B和FA<B分别接高位比较器的A0和 B0。

(13位=3+3+3+4)

如果最高位比较器的前3位不相等,则直接得到结果;若高位片的前3位相等,则需要看相邻低位片的比较结果。以此类推,直到比较到最低位比较器才能得到结果。显然,串联比较速度较慢。

当位数较多且要满足一定的速度要求时,可以采取并联方式。图4.4.33表示16位并联数值比较器的原理示意图。

由图可以看出这里采用两级比较方法,将16位按高低位次序分成四组,每组4位,各组的比较是并行进行的。每组的比较结果再经第二级4位比较器比较后得出结果。显然,从数据输入到稳定输出只需2倍的4位比较器延迟时间,若用串联方式,则13位的数值比较器从输入到稳定输出最坏需要约四倍的4位比较器的延迟时间。

4.4.5 算术运算电路

(1)半加器和全加器

① 半加器

半加器和全加器是算术运算电路中的基本单元,它们是完成1位二进制数相加的一种组合逻辑电路。
只考虑了两个加数本身,而不考虑低位进位的加法运算,称为半加。实现半加运算的逻辑电路称为半加器

两个1位二进制的半加运算真值表如表4.4.18所示,其中A、B是两个加数,S表示和数,C表示进位数。

由真值表可得逻辑表达式

由此可画出由异或门和与门组成的半加器,如图4.4.34(a)所示,图4.4.34(b)是半加器的逻辑符号。

② 全加器

完成被加数、加数和来自低位的进位信号相加,并根据求和结果给出该位进位信号的运算称为全加。实现全加运算的电路称为全加器

根据全加器的功能,可列出它的真值表,如表4.4.19所示。

其中A和B分别是被加数及加数,Ci是低位进位数,S为本位和数(称为全加和)以及Co为向高位的进位数。

S和Co的逻辑表达式:

由式(4.4.11)可以画出1位全加器的逻辑图,如图4.4.36(a)所示,它是由两个半加器和一个或门构成的,图4.4.36(b)是它的逻辑符号。

(2)多位数加法器

① 串行进位加法器

若有多位数相加,则可采用并行相加串行进位的方式来完成。

例如,有两个4位二进制数A3A2A1A0和B3B2B1B0相加,可以采用4个全加器构成4位数加法器,其原理图如图4.4.37所示。

将低位的进位输出信号接到高位的进位输入端,因此,任1位的加法运算必须在低1位的运算完成之后才能进行,这种进位方式称为串行进位。这种加法器的逻辑电路比较简单,但它的运算速度不高。设门的延迟时间均为tpd,一位全加器的延时是3tpd,4位串行全加器的延时是12tpd。为提高速度,可以采用超前进位等方式。

② 超前进位加法器

由于串行进位加法器的速度受到进位信号的限制,人们又设计了一种多位数超前进位加法逻辑电路,使每位的进位只由被加数和加数决定,而与低位的进位无关

下面介绍超前进位的概念。由式(4.4.11),并考虑多位数值相加时,全加器的和数Si和进位Ci的逻辑表达式

和低位进位有关。

定义两个中间变量Gi和Pi

当Ai=Bi=1时,Gi=1,由式(4.4.13)得Ci=1,即产生进位,所以Gi称为产生变量。若Pi=1,则AiBi=0,由式(4.4.13)得Ci=Ci-1,即Pi=1时,低位的进位能传送到高位的进位输出端,故Pi称为传输变量。这两个变量都与进位信号无关。

将式(4.4.14)和式(4.4.15)代入式(4.4.12)和式(4.4.13),得

由式(4.4.17)得各位进位信号的逻辑表达式如下:

由式(4.4.18)可知,因为进位信号只与变量Gi、Pi和C-1有关,而C-1是向最低位的进位信号,其值为0,所以各位的进位信号都只与两个加数有关,它们是可以并行产生的。用与门和或门即可实现式(4.4.18)所表示的超前进位产生电路,如图4.4.38所示。

根据超前进位概念构成的4位加法器的结构示意图如图4.4.39所示。从输入加数、被加数到产生C0~C3,需要3级门延迟,再经过一级异或门便得到结果。整个电路的延时为4tpd。当扩展更多位时,电路的延迟时间几乎不再增加。

③ 加法器的层次化扩展

超前进位加法器大大提高了运算速度,但是随着加法器位数的增加,超前进位逻辑电路越来越复杂。为降低复杂度,可以采用分层次设计方法。以16位加法电路为例,将其分成4个4位加法器模块,每个模块内部采用超前进位方式,而模块之间采用串行进位,如图4.4.40所示。

一个模块的延时为4tpd,则4个模块串行连接电路的总延时为16tpd。当模块数量为n时,总延时为4ntpd。

为了进一步提高速度,可以采用2级超前进位方式。模块内部是第一级超前进位,在4个模块之间采用第二级超前进位连接方式,使得模块之间的进位信号也能快速产生,如图4.4.41所示:

(3)减法运算

由第1章介绍的二进制数算术运算可知,可以将减法运算转换成补码的加法运算。如果前面介绍的加法器既能实现加法运算,又可用于减法运算,就可以简化数字系统结构。

若n位二进制的原码为N原,则与它相对应的补码为

补码与反码的关系式为

设两个数A、B相减,利用式(4.4.19)和式(4.4.20)可得

式(4.4.21)表明,A减B可由A 加B的补码并减2^n完成。4位减法运算电路如图4.4.42(a)所示,具体原理如下。

由4个反相器将B的各位求反,并将进位输人端C-1接逻辑1以实现加1,由此求得B的补码。加法器(0)相加的结果为(A+B反+1)。

由于2^n=(10000)2,因此相加结果与2^n相减需要由加法器进位输出信号来完成。当进位输出信号为1时,它与2^n的差为0;当进位输出信号为0时,它与2^n的差值为1,同时还应发出借位信号。因此,只要将进位信号反相即实现了减2^n的运算,反相器的输出V为1时需要借位,故V也可作为借位信号。下面分两种情况分析图4.4.42(a)所示电路实现减法运算的过程。

① A-B≥0,设A=0101,B=0001

电路求补相加过程如下:

② A-B<0,设A=0001,B=0101

电路求补相加过程如下:

4.5 组合逻辑的可编程电路实现

早期通用型的小规模门电路和中规模组合逻辑集成器件的逻辑功能是固定的,所包含的逻辑门数量较少。当构造一个大型复杂的数字系统时,过多的器件可能导致功耗高,占用空间大和系统可靠性差等问题。

利用可编程逻辑器件(PLD)设计数字系统,可以较好地解决以上问题。PLD是一种可以由用户定义和设置逻辑功能的器件。该类器件具有逻辑功能实现灵活、集成度高、处理速度快和可靠性高等特点。

我们知道,任何组合逻辑函数都可以表示为与-或表达,,因此通过对与、或阵列编程就可以实现所需的组合逻辑功能。本节主要讨论以可编程的与、或阵列为基础的组合逻辑电路实现原理。

4.5.1 PLD的电路表示﹑编程技术及分类

(1)PLD的电路表示

由于PLD的与阵列、或阵列规模很大,为便于表达,其逻辑图采用一种与传统画法不同的简化表示方法,该方法的各种符号及含义如下。

① 基本门电路的表示方式

PLD中基本门电路符号如图4.5.1所示。图4.5.1(a)和图4.5.1 (b)分别为与门L1=ABC和或门L2=A+B+C。由于L3=A·~A·B·~B=0,图4.5.1(c)给出了与门输出恒等于0的简化画法。图4.5.1(d)中与门的所有输入项均不接通,保持“悬浮”的1状态,即L=1。图4.5.1(e)为具有互补输出的缓冲器。图4.5.1(f)为三态输出缓冲器。

② 连接方式

由图4.5.1看出,与门和或门的输入由水平线和垂直线的交叉连接来表示。每个交叉点称为“单元”,单元的连接方式共有三种情况,如图4.5.2所示:

③ 编程连接技术

在PLD中采用的可编程连接单元主要有熔丝型、反熔丝型、浮栅 MOS管型,如图4.5.3所示。

熔丝型PLD:没有编程时,单元由金属熔丝连通,如图4.5.3(a)所示。在编程时,用比工作电流大许多的电流,将不需要连通的熔丝烧断。因为熔丝单元会占用大的芯片面积,这类器件的集成度受到限制。在门阵列中表示“单元”连接状况的阵列图,称为熔丝图,并且这个名称被沿用下来。

反熔丝型PLD:可编程连接单元的结构如图4.5.3(b)所示。在多晶硅层和扩散层两个导体之间,有一层很薄的绝缘介质层,未编程时呈现高阻抗,相当于断开状态。编程时利用高压将介质层击穿,使上下两层导电材料连在一起,呈现导通状态。反熔丝单元占用芯片面积小,成本低,可靠性高。

熔丝型和反熔丝型PLD都只能进行一次编程,一旦编程后就不能再修改

浮栅MOS管型PLD中:单元的连接采用一种浮栅MOS管,如图4.5.3(c)所示。这种MOS管在绝缘层中还有第2个栅极,由于与其他部分绝缘,所以称为浮栅。浮栅上没有电荷的MOS管,与普通N沟道增强型MOS管一样,当栅极加正常逻辑高电平时,MOS管处于导通状态,否则截止。而经编程向浮栅上注入电子后,栅极在正常高电平作用下,MOS管仍然处于截止状态,亦即无论栅极加正常高电平还是低电平,MOS管始终相当于断开。如果以某种方式释放浮栅上的电子,也可以使MOS管恢复正常。浮栅MOS管是可以多次编程的连接单元。

④ 浮栅MOS管编程原理简介

浮栅MOS管还可细分为叠栅注入MOS管(stacked-gate injection metal oxide semicon-ductor,SIMOS管)、浮栅隧道氧化层MOS管( floating-gate tuned oxide,FLOTOX管)和快闪(flash)叠栅MOS 管。不同的浮栅MOS 管连接的PLD,编程信息的擦除方法也不同。SIMOS管连接的PLD,采用紫外光照射擦除;FLOTOX管和 Flash MOS管,采用电擦除方法。

……

(2)PLD的分类

PLD 的分类方法有多种。按照PLD门电路的集成度,可以分为低密度和高密度器件,1000门以下为低密度,例如可编程只读存储器(programmable read only memory,PROM)、可编程逻辑阵列( programmable logic array,PLA)、可编程阵列逻辑(programmable array logic,PAL)和通用阵列逻辑(generic array logic,GAL)等;1 000门以上的为高密度,如CPLD 、FPGA等。

按照PLD 的结构体系,可分为简单PLD(如 PAL、GAL),复杂可编程逻辑器件CPLD和现场可编程门阵列FPGA。CPLD 和 FPGA将在第8章介绍。

按照逻辑函数实现方式,可分为基于与、或阵列的PLD(如CPLD)和基于查找表LUT的PLD(如FPCA)。

按照PLD 中的与、或阵列是否可编程分为三种,分别如图4.5.7(a)、图4.5.7(b)和图4.5.7(c)所示, PROM的与阵列固定,或阵列可编程;PLA 的与阵列、或阵列均可编程;PAL和GAL等的与阵列可编程,或阵列固定。

4.5.2 组合逻辑电路的PLD实现

任何组合逻辑关系都可以变换成与-或表达式,因此通过PLD的与、或阵列可以实现任何一个逻辑函数。

从图4.5.7(a)可以看出,PROM 的与阵列是将输入变量的全部最小项译出来了,如果用它来实现逻辑函数,往往只用到一部分最小项,芯片的利用率不高,因此很少作为PLD器件使用。

(1)可编程逻辑阵列PLA

PLA就是为解决PROM实现逻辑函数时芯片利用率不高的问题设计的……

(2)可编程阵列逻辑PAL

……

4.6 用Verilog HDL描述组合逻辑电路

4.6.1 组合逻辑电路的行为级建模

4.6.2 分模块、分层次的电路设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值