第4章组合逻辑电路_第1页
第4章组合逻辑电路_第2页
第4章组合逻辑电路_第3页
第4章组合逻辑电路_第4页
第4章组合逻辑电路_第5页
已阅读5页,还剩154页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章 组合逻辑电路,数字电路按照逻辑功能可以分为组合逻辑电路(CombINational Logic Circuit)和时序逻辑电路(Sequential Logic Circuit)两大类。组合逻辑电路简称组合电路,时序逻辑电路简称时序电路。在比较复杂的数字系统中,通常既包含组合逻辑电路又包含时序逻辑电路。本章主要讨论组合逻辑电路。,第4章 组合逻辑电路,组合逻辑电路特点及表示方法 SSI组合电路的分析与设计 常用组合逻辑电路 MSI组合电路的设计 组合逻辑电路的竞争与冒险,4.1 组合逻辑电路特点,所谓的组合逻辑电路是指,任意时刻的输出现状态取决于该时刻输入信号的状态,而与信号作用之前电

2、路的状态无关。 电路不包含有记忆性的元件,组合逻辑电路在结构上也不存在输出到输入的反馈通路。 组合电路通常是由各种门电路构成。,F1=f1(x1, x2, xn) F2=f2(x1, x2, xn) Fm=fm(x1, x2, xn),4.2 小规模集成电路构成的组合电路的分析与设计,分析方法:组合逻辑电路的分析就是根据给定的逻辑电路推导归纳出其逻辑功能。 设计方法:设计就是从给定的逻辑要求出发,求出逻辑图。,4.2.1 分析方法,组合逻辑电路的分析过程图,分析步骤,根据逻辑图从电路的输入到输出逐级写出逻辑表达式,得到表示输出与输入关系的逻辑表达式。 利用公式化简法或卡诺图化简法将得到的表达式

3、化简或变换。有时为了使电路的逻辑功能更加直观,还需要列出输出与输入之间的逻辑真值表。 根据函数表达式或逻辑真值表确定组合电路的逻辑功能。,【例4-1】试分析图所示电路的逻辑功能。,解:(1)写表达式 由图所示电路写出逻辑表达式: F=(AB)(AC)(BC)=AB+AC+BC,(2)列真值表 根据表达式确定电路的逻辑功能并不容易,所以再列出真值表。,(3)确定逻辑功能 由真值表中看出,当3个输入变量中有两个或两个以上为1时,输出为1,否则为0。因此该电路为3人表决电路,即当多数同意时,表决通过。,例4-2,试分析图4-2所示电路的逻辑功能。,解: 由图4-2写出逻辑表达式,列出真值表,例4-2

4、,说明有效电平为高电平,且由输出状态便知道输入代码值,此种功能称为译码功能。,确定逻辑功能:由真值表看出,例4-2,A1A0=00时,F0=1,其余为0 A1A0=01时,F1=1,其余为0 A1A0=10时,F2=1,其余为0 A1A0=11时,F3=1,其余为0,=A1A0,电路的逻辑功能,例4-2,若逻辑图为图4-3所示,则电路为低有效电平译码器。,例4-2,交互,例4-3,试分析图4-4所示电路的逻辑功能,解:写出逻辑表达式,列出真值表,例4-3,确定逻辑功能,由表看出, A1A0=00时,F=D0; A1A0=01时,F=D1; A1A0=10时,F=D2; A1A0=11时,F=D

5、3。,电路具有选择数据输入功能。,4.2.2 设计方法,设计步骤,(1)列真值表。由文字描述的逻辑命题直接写出逻辑函数表达式相对困难,但列出真值表却比较方便。首先根据命题分析事件的因果关系,确定输入变量和输出变量。一般把事件的起因定为输入变量,把事件的结果作为输出变量。然后对逻辑变量进行赋值。所谓逻辑赋值,就是用二值逻辑的0、1分别代表输入变量和输出变量的两种不同状态。最后根据给定事件的因果关系列出真值表。 (2)写逻辑函数式。由真值表很容易写出对应的逻辑函数表达式,这样,便将一个实际的逻辑问题抽象成一个逻辑函数了。,设计步骤,(3)逻辑函数化简或变换。逻辑函数化简或变换与选择的器件型号有关。

6、当用小规模集成门电路进行设计时,为了获得简单的设计结果,需要将逻辑函数化简。当所用器件的种类有所限制时,则要将函数表达式变换成与器件种类相适应的形式。 (4)画逻辑电路图。根据简化或变换的逻辑函数表达式画出逻辑电路图。,【例4-4】某大楼的自动电梯系统有5部电梯,其中3部是主电梯,2部为备用电梯。当上下人员拥挤,主电梯全被使用时,才允许使用备用电梯。备用电梯的使用采用两级控制。试用与非门设计一个监控主电梯运行的逻辑电路,当任何2部及以上主电梯运行时,产生一个备用电梯准备运行的控制信号;当3部主电梯都在运行时,则产生另一控制信号,使备用电梯主电源接通,处于可运行状态。,解:根据题意,设输入变量A

7、、B、C表示3部主电梯的运行状态,输出变量F1、F2分别表示备用电梯的准备运行信号和备用电梯的主电源接通信号。状态赋值如下:对于输入来说,1代表主电梯正在运行,0代表主电梯没有运行;而输出变量中1表示控制信号有效,0表示控制信号无效。得到的输出变量与输入变量之间的真值表 。,由真值表画出卡诺图如图所示。,化简及变换得逻辑表达式: F1=AB+AC+BC=(AB) (AC) (BC), F2=ABC =(ABC) 根据F1、F2的表达式,用与非门实现的逻辑电路图如图所示。,注意,由于赋值不同,可得到不同的真值表,因而可得到不同的逻辑关系。因此应根据状态赋值去理解0,1的具体含义。 列真值表时,不

8、会出现或不允许出现的输入信号状态组合和输入变量取值组合可以不列出,如果列出,则可在相应输出处记上“”号,以示区别,化简时可作约束项处理。,某工厂有A、B、C三个车间,各需电力10KW,由厂变电所的X,Y两台变压器供电。其中X变压器的功率为13KVA(千伏安),Y变压器的功率为25KVA。为合理供电,需设计一个送电控制电路。控制电路的输出接继电器线圈。送电时线圈通电。不送电时线圈不通电。线圈动作电压12V,线圈电阻300欧。,例4-5,解: 设A、B、C为输入变量,X、Y为输出逻辑函数。 A、B、C工作用1表示,不工作用0表示;送电用1表示,不送电用0表示。 则三个车间的工作情况及变压器是否供电

9、,列于表4-4中。(一个车间工作时,X供电,两个车间工作时,由Y供电,三个车间同时工作时,X、Y同时送电)。,例4-5,写逻辑函数表达式,例4-5,化简、变换,例4-5,画逻辑图 由线圈动作电压12V,线圈电阻300欧算得线圈动作时,流过线圈电流等于40mA,一般的逻辑门不可能带40mA电流。为此,X、Y需经集电极开路非门取反之后驱动线圈,逻辑图如图3-4示。,例4-5,例4-5,逻辑图,【例4-6】试利用VHDL语言设计一个判定电路。3名裁判中1人为主裁判,2人为副裁判,在主裁判同意情况下,只要有1名副裁判同意比赛成绩就有效。否则,比赛成绩无效。,解:根据命题的因果关系,设输入变量A、B、C

10、分别代表主裁判、第一副裁判、第二副裁判的判决,输出函数F代表最后的判决结果。裁判同意用1表示,不同意用0表示;成绩有效用1表示,成绩无效用0表示。,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ABCtoY IS PORT( A, B, C:IN STD_LOGIC; Y:OUT STD_LOGIC); END ABCtoY; ARCHITECTURE ctrl OF ABCtoY IS SIGNAL sel:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN sel=A,4.3 编码器,编码是指用文字、符号和数码等来表

11、示某种信息的过程,在数字系统中,通常是将信息编成若干位二进制代码。实现编码的数字电路称为编码器(Encoder)。 编码器是组合逻辑电路中的一种类型,虽然可以由逻辑门构成,但已有中规模集成电路芯片。 编码器的逻辑功能是把输入的每一个高、低电平信号编成一组对应的代码。针对二进制编码的组合电路称为二进制编码器(Binary Encoder)。而对十进制数进行编码时常用BCD码,与之相应的编码器称为二-十进制编码器。,4.3.1 二进制编码器,二进制编码器是编码器中常见的一种,由于n位二进制代码有2n个取值组合,可以表示2n种信息,因此二进制编码器的输入信号个数N与输出二进制数位数n的关系满足N2n

12、,故通常编码器的输入端比输出端个数多。 编码器在编码过程中要求在任何时刻只能对一个输入信号进行编码,否则输出将发生混乱。编码器的输出代码可以是原码形式,也可以是反码形式,原码指的是与十进制数数值对应的二进制码,而把原码各位值取反得到的码称为反码。,【例4-4】试用小规模集成电路设计一个输入为低电平有效、输出为反码的3位二进制编码器。 解:3位二进制编码器可以有8个输入信号。设A0 ,A1,A7 分别为低电平有效的8个输入信号;Y0、Y1和Y2为3位输出代码,其构成的编码表示为Y2 Y1 Y0。根据题意列出真值表。,例4-4的真值表,由真值表写出输出函数表达式为 Y0=(A0)+(A2)+(A4

13、)+(A6)= (A0 A2 A4 A6) Y1=(A0)+(A1)+(A4)+(A5)= (A0 A1 A4 A5) Y2=(A0)+(A1)+(A2)+(A3)= (A0 A1 A2 A3),由与非门组成的3位二进制编码器的逻辑电路图如图所示。,4.3.2 二进制优先编码器,优先编码器(Priority Encoder)电路中,允许在多个输入端同时输入有效编码信号,但它会根据规定好的优先顺序,选择其中优先级别最高的有效输入信号进行编码。这种编码器广泛应用于计算机系统中的中断请求和数字控制的排队逻辑电路中。,A0A3,其中A3具有最高优先级别,而优先级最低的是A0;若存在多个有效输入,则输出

14、Y1、Y0为最高优先级有效输入的编码;输出使能Eo为一标志信号,当没有有效输入时,Eo输出为低电平。,4线2线优先编码器的框图,4线2线优先编码器的真值表,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY encoder IS PORT( a: IN STD_LOGIC_VECTOR (3 DOWNTO 0); y: OUT STD_LOGIC_VECTOR (1 DOWNTO 0); eo:STD_LOGIC); END encoder; ARCHITECTURE encoderp OF encoder IS BEGIN PROCESS(a)

15、; BEGIN IF a(3)=1 THEN y=“11”; eo=1;,VHDL描述的优先编码器源程序,ELSIF a(2)=1 THEN y=“10”; eo=1; ELSIF a(1)=1 THEN y=“01”; eo=1; ELSIF a(0)=1 THEN y=“00”; eo=1; ELSIF a=“0000” THEN y=“00”; eo=0; END IF; END PROCESS; END encoderp;,VHDL描述的优先编码器源程序,中规模集成芯片74HC148是具有使能输入和使能输出功能的8线-3线优先编码器。其输入为低电平有效,输出编码为反码形式。,74HC1

16、48的真值表,【例4-5】某医院有4间病房,分别是一、二、三、四号病室,每室设有一个呼叫按钮,同时在护士值班室对应地装有一、二、三、四号4个指示灯。假设这4个病室有轻重缓急之分,一号病室最优先,其次为二号病室,四号病室最后。试用74HC148及必要的门电路设计满足上述控制要求的逻辑电路,给出控制4个指示灯状态的高、低电平信号。,解:由命题可知,逻辑电路有4个输入变量,4个输出函数。假设4个输入变量I0、I1、I2和I3分别对应一、二、三、四号病室的呼叫按钮电平,且规定0代表按钮被按下,1表示没被按下;4个输出函数F0、F1、F2和F3分别对应一、二、三、四号指示灯的信号,且规定灯亮用1表示,灯

17、灭用0表示。将I0、I1、I2和I3分别对应接到74HC148的A3A0端,74HC148的编码结果由Y2Y1Y0端组合输出,由于Y2不变,只列出Y1Y0的编码输出与F0、F1、F2和F3的真值表。,例4-5的逻辑电路图,例4-5的真值表,4.3.3 二-十进制优先编码器,二-十进制编码器是将代表十进制数的10个输入信号分别变成对应的BCD代码输出的电路。,74HC147的引脚图,二-十进制优先编码器74HC147的真值表,74HC147允许同时有多个输入端送入编码信号,且只对优先级最高输入的进行编码,其中A9优先级最高,之后依次降低。编码输入信号为低电平有效,编码输出为反码形式。当A1 A9

18、各输入均为高电平的无效编码信号时,输出Y3Y2Y1Y0均为1,恰好是对A0的编码,故74HC147中省去了A0输入线。,4.4 译码器,译码为编码的逆过程,是把特定含义的输入二进制代码译成对应的输出高、低有效电平信号。 实现译码功能的逻辑电路称为译码器(Decoder)。译码器是多输入、多输出电路,其输入、输出间存在一对一的映射关系。 译码器是一种常见的组合功能电路,而且已有许多不同型号的集成译码器。,4.4.1 二进制译码器,二进制译码器(Binary Decoder)的输入是一组二进制代码,输出是一组高、低电平信号。若译码器有n个输入端,则最多有2n个输出端,这种译码器被称为n线-2n线译

19、码器。 实际应用时常常使用集成的译码器。74HC138是最常用的集成译码器之一。,74HC138有3个译码输入端A2、A1和A0,8个译码输出端F0 F7,因此称为3线-8线译码器。S1、S2、S3是74HC138的3个使能输入端。当使能输入S1=1,S2= S3=0时,译码器处于工作状态,否则译码器被禁止。即无论输入A2、A1、A0为何状态,译码器输出均为高电平,表示无译码输出。,74HC138的引脚图,74HC138的真值表,11111111 11111111 01111111 10111111 11011111 11101111 11110111 11111011 11111101 11

20、111110, 000 001 010 011 100 101 110 111,代码输入,0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0,使能输入,译码输出,F0 F1 F2 F3 F4 F5 F6 F7,A2 A1 A0,S1 S2+S3,当使能输入S1=1,S2 = S3=0时,74HC138工作。该译码器输出的逻辑函数表达式为 F0=(A2A1A0) F1=(A2A1A0) F2=(A2A1A0) F3=(A2A1A0) F4=(A2A1A0) F5=(A2A1A0) F6=(A2A1A0) F7=(A2A1A0) 输出F0 F7分别对应者二进制码A2A1A0的所

21、有最小项的非。,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY decoder_38 IS PORT( a2,a1,a0,s1,s2,s3: IN STD_LOGIC; f:OUT STD_LOGIC_VECTOR (0 TO 7); END decoder_38; ARCHITECTURE decoder_38p OF decoder_38 IS SIGNAL a :STD_LOGIC_VECTOR (2 DOWNTO 0); BEGIN a=a2 PROCESS(a,s1,s2,s3) BEGIN IF (s1 AND NOT s2 AN

22、D NOT s3) = 1 TNEN,74HC138译码器的VHDL源程序,CASE a IS WHEN “000” = f f f f f f f f f =“11111111”; END CASE; ELSE f=“11111111”; END IF; END PROCESS; END decoder_38p;,74HC138译码器的VHDL源程序,例:用2片3线-8线译码器74HC138扩展成4线-16线译码器。,图中(1)号74HC138的输出对应于4线-16线译码器的8个输出端07,(2)号片的输出则对应于另8个输出端815。74HC138有3个代码输入端,2片74HC138的A2、

23、A1、A0相应地接到一起作为4线-16线译码器的I2、I1、I0端。而4线-16线译码器需要有4个代码输入端,因此利用74HC138一个使能控制端作为第4个代码输入端。,对于4线-16线译码器来说,其输入代码要分为两种情况:当输入代码I3 I2 I1 I0为00000111时,(1)号片译码,(2)号片不译码;当I3 I2 I1 I0为10001111时,(2)号片译码,(1)号片不译码。因此用I3接2片74HC138的使能端,即I3接(2)号片的S1端及(1)号片的S2 端。 假设4线-16线译码器也设置有使能输入端S,将S分别接至(1)号片和(2)号片的S3端。当S=0时译码,S=1时禁止

24、译码。,【例4-6】试用74HC138实现一个多输入、多输出的逻辑函数,其中 Y0(A,B,C)=ABC Y1(A,B,C)=A(BC)+BC 解:将逻辑函数表达式写成最小项形式: Y0(A,B,C)=ABC+ABC+ABC+ABC Y1(A,B,C)=ABC+ABC+ABC+ABC 设74HC138的输入端A2、A1、A0分别接变量A、B、C,即A2=A,A1=B,A0=C,则其输出对应A、B、C所有最小项的非。,将上面最小项表达式改写成74HC138的输出变量表示: Y0(A,B,C)= A2 A1 A0+ A2A1A0 + A2A1A0 + A2A1A0 =( F1 F2 F4 F7)

25、Y1(A,B,C)= A2 A1 A0+ A2A1A0 + A2A1A0 + A2A1A0 =( F1 F2 F3 F7),4.4.2 二-十进制译码器,二十进制译码器又称做4线-10线译码器,其输入为BCD码的10个代码,输出则是10个高、低电平信号。对于BCD码以外的输入,则译码器无译码输出。,二十进制译码器74HC42的引脚图,二-十进制译码器74HC42的真值表,0111111111 1011111111 1101111111 1110111111 1111011111 1111101111 1111110111 1111111011 1111111101 1111111110,000

26、0 0001 0010 0011 0100 0101 0110 0111 1000 1001,代码输入,译码输出,A3 A2 A1 A0,F0 F1 F2 F3 F4 F5 F6 F7 F8 F9,4.4.3 半导体数码管和七段字形译码器,七段数码管(简称LED)是由7个条形发光二极管排列组合而成,它有7个发光段,分别对应a,b,c,d,e,f,g。 七段数码管有共阳极和共阴极两种类型。共阴极LED使用时公共端阴极通常接地,a,b,c,d,e,f,g为高电平时点亮对应的发光段。而共阳极LED的阳极接在一起,公共端阳极通常接+5V电源,a,b,c,d,e,f,g为低电平时点亮对应的发光段。,4.

27、4.3 半导体数码管和七段字形译码器,(a)共阳极形式 (b)共阴极形式 (c)共阴极结构 (d)共阳极结构,4.4.3 半导体数码管和七段字形译码器,若要使用共阴极数码管来显示某字形,则需要有输出高电平有效的译码器去驱动。而共阳极数码管则需要有输出低电平有效的译码器去驱动。,7448的引脚功能图,0 1 2 3 4 5 6 7 8 9 熄灭 灭0 测试,1111110 0110000 1101101 1111001 0110011 1011011 0011111 1110000 1111111 1110011 0000000 0000000 1111111,1 1 0 0 0 0 1 1 0

28、 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1,7448功能表,试灯输入LT,灭灯输入BI,显示数 字符号,abcdefg,输 出,LT RBI A3 A2 A1 A0 BI/RBO,输 入,灭零输入RBI,7448使用时,应注意如下附加功能: 为了检查数码管各段是否能正常发光,设置了试灯输入LT 。只要LT 0,BI =1,无论A3,A2,A1,A0输入为何种状态,若驱动的数码管正常,则7段应

29、全亮。灭灯输入BI是为控制数码管显示的灭灯所设置的,只要BI0,共阴极数码管7段全熄灭。灭零输入RBI是专为多位数字显示时灭掉不需显示的0而设定的,该功能是在译码工作情况下,在RBI0作用下,当A3A2A1A00000时,共阴极数码管的0熄灭。灭零输出RBO和灭灯输入BI共用一端,RBO和RBI配合使用,可以实现多位数码显示的灭零控制。,7448驱动共阴LED的电路图,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY display_7448 IS PORT( lt : IN STD_LOGIC; bi : IN STD_LOGIC; rbi:

30、 IN STD_LOGIC; rbo: OUT STD_LOGIC; a: IN STD_LOGIC_VECTOR(3 DOWNTO 0); segout:OUT STD_LOGIC_VECTOR (6 DOWNTO 0); END display_7448; ARCHITECTURE display_7448p OF display_7448 IS BEGIN,共阴极七段译码器7448功能的VHDL语言源程序,PROCESS(lt,bi,rbi,a) BEGIN IF (lt=1 AND bi=1 AND rbi=1 AND a= “0000”) THEN segout=“1111110”;

31、 ELSIF (lt=1 AND bi=1 AND a=“0001”) THEN segout=“0110000”; ELSIF (lt=1 AND bi=1 AND a=“0010”) THEN segout=“1101101”; ELSIF (lt=1 AND bi=1 AND a=“0011”) TNEN segout=“1111001”; ELSIF(lt=1 AND bi=1 AND a=“0100”) THEN segout=“0110011”;,共阴极七段译码器7448功能的VHDL语言源程序,ELSIF (lt=1 AND bi=1 AND a=“0101”) THEN seg

32、out=“1011011”; ELSIF (lt=1 AND bi=1 AND a=“0110”) THEN segout=“0011111”; ELSIF (lt=1 AND bi=1 AND a=“0111”) THEN segout=“1110000”; ELSIF (lt=1 AND bi=1 AND a=“1000”) THEN segout=“1111111”; ELSIF (lt=1 AND bi=1 AND a=“1001”) THEN segout=“1110011”;,共阴极七段译码器7448功能的VHDL语言源程序,ELSIF bi=0 THEN segout=“0000

33、000”; ELSIF (lt=1 AND rbi=0 AND a=“0000”) THEN segout=“0000000”; rbo=0; ELSIF (lt=0 AND bi=0) THEN segout=“1111111”; END IF; END PROCESS; END display_7448p;,共阴极七段译码器7448功能的VHDL语言源程序,4.5 数据分配器与数据选择器,4.5.1 数据分配器 在数字系统中,有时需要将一路数据分时地传输到多路通道中去。实现这种功能的电路,叫做数据分配器(Demultiplexer),简称DEMUX。 数据分配器在地址选择控制端作用下,电路

34、具有单输入、多输出形式。,开关K受地址输入A、B控制,将数据D分配到选定的通道中去。例如,AB=01时,将D送到W1通道。,数据分配器的原理示意图,数据输出端,数据输入端,地址选择输入端,四路数据分配器的输入数据D根据地址选择A、B控制端的不同,被分配到相应的输出通道上,其函数表达式为 W0=DAB, W1=DAB, W2=DAB, W3=DAB,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY demux_4 IS PORT( d:IN STD_LOGIC; a:IN STD_LOGIC; b:IN STD_LOGIC; w:OUT STD_

35、LOGIC_VECTOR (3 DOWNTO 0); END demux_4; ARCHITECTURE demux_4p OF demux_4 IS BEGIN PROCESS(a,b,d) BEGIN,用VHDL实现的四路数据分配器程序,IF(a=0) AND (b=0) THEN w(0)= D; w(1)=0; w(2)=0; w(3)=0; ELSIF(a=0) AND (b=1) THEN w(0)= 0; w(1)=D; w(2)=0; w(3)=0; ELSIF(a=1) AND (b=0) THEN w(0)= 0; w(1)=0; w(2)=D; w(3)=0; ELSIF

36、 (a=1) AND (b=1) THEN w(0)= 0; w(1)=0; w(2)=0; w(3)=D; END IF; END PROCESS; END demux_4p;,用VHDL实现的四路数据分配器程序,4.5.2 数据选择器,数据选择器(Multiplexer)与数据分配器相反,是在地址选择信号的控制下,分时地从多路输入数据中选择一路作为输出的电路。 数据选择器又叫多路开关,简称MUX。,数据选择器原理示意图,在E=0的条件下,当地址选择输入A1A0为不同代码时,输入通道D3 D0中的不同数据可以送至输出端F。当E=1时,数据选择器禁止工作。,4选1数据选择器的函数表达式为: F

37、 = A1A0D0 + A1A0D1 + A1A0D2 + A1A0D3,数据输出端,数据输入端,地址选择输入端,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux_4 IS PORT( d:IN STD_LOGIC_VECTOR (3 DOWNTO 0); a1,a0:IN STD_LOGIC; e_l:IN STD_LOGIC; f:OUT STD_LOGIC); END mux_4; ARCHITECTURE mux_4p OF 7 mux_4 IS SIGNAL sel: STD_LOGIC_VECTOR (1 DOWNTO 0)

38、;,用VHDL实现的四选一数据选择器程序,BEGIN sel=a1,用VHDL实现的四选一数据选择器程序,74HC253是由两个完全相同的4选1数据选择器构成。1D01D3、2D02D3是两组独立的数据输入端;A1、A0是公共地址输入端,1F、2F分别是两组4选1数据选择器的输出端;1OE和2OE分别是两组三态使能控制端,当使能端为1时,选择器被禁止,即输出为高阻态。当使能1OE=0或2OE=0时,对应的4选1数据选择器的输出逻辑函数表达式为,F=A1A0D0+ A1A0D1+ A1A0D2+ A1A0D3,74HC253的引脚图,8个数据输入端为D7D0,数据输出端为F,A2、A1、A0为地

39、址选择输入端,E为使能输入端,OE为三态输出使能端。当使能输入E=0且三态输出OE=0时,数据选择器可以正常工作。,CD4512的引脚图,【例4-7】试用8选1数据选择器CD4512实现逻辑函数F(A,B,C)=m (1,3,7) 解:用数据选择器实现逻辑函数时通常采用两种方法:一种是函数表达式对比,另一种为真值表对比。 (1)函数表达式对比 8选1数据选择器的输出逻辑函数为 F=A2A1A0D0+A2A1A0D1+A2A1A0D2+A2A1A0D3 +A2A1A0D4+A2A1A0D5+ A2A1A0D6+ A2A1A0D7,令A=A2,B=A1,C=A0,则被实现的逻辑函数为 F(A,B,

40、C)= m (1,3,7) = A2A1A0 + A2A1A0 + A2A1A0 比较两个表达式,可得 D1= D3= D7=1, D0= D2= D4= D5= D6=0 F=A2A1A0D0+A2A1A0D1+A2A1A0D2+A2A1A0D3 +A2A1A0D4+A2A1A0D5+ A2A1A0D6+ A2A1A0D7,(2)真值表对比 将数据选择器的真值表与被实现逻辑函数真值表列在一起并对比,求出D0D7的值。,例4-7用CD4512实现的逻辑图,【例4-8】试用双4选1数据选择器74HC253设计一开关控制电路。要求用3个双位开关控制一盏灯,改变任何一个开关的状态都能控制电灯的亮灭。

41、 解:设3个双位开关分别用A、B、C表示,用0和1分别表示开关的两个状态;电灯用F表示,灯亮用1表示,灯灭用0表示。假设ABC=000时,F=0。从这个状态开始,单独改变任何一个开关的状态,灯F的状态都要变化。根据题意列出的真值表。,由真值表写出逻辑表达式为: F=ABC+ ABC+ ABC+ABC,在双4选1数据选择器74HC253中, 令1OE =0,A1=A,A0=B,则得到 1D0=1D3=C 1D1=1D2=C ,例4-8的逻辑图,4.6 数值比较电路,在数字系统和计算机中,经常需要比较两个数的大小或是否相等,完成这一逻辑功能的电路称为数值比较电路(Magnitude Compara

42、tor)。,CD4585是用来比较两个4位二进制数A和B的大小的。而A3、A2、A1、A0和B3、B2、B1、B0是两个比较数据的输入端,(AB)、(Ab)、(ab)、(a=b)为级联输入端。,比较原理,两个4位二进制数进行比较时,应首先进行最高位即A3与B3比较,若A31,B30,也就是A3B3,此时就可断定AB;反之AB。如果A、B的最高位数码相同,则必须比较次高位,按此方法依次比较下去,就可得出A与B的比较结果。,4位数值比较器的逻辑函数表达式为: (AB) =A3B3 + ( A3B3)A2B2 + ( A3B3)( A2B2)A1B1 +( A3B3)( A2B2)( A1B1)A0

43、B0 +( A3B3)( A2B2)( A1B1)( A0B0)(ab) (AB) =A3B3 + ( A3B3)A2B2 + ( A3B3)( A2B2)A1B1 +( A3B3)( A2B2)( A1B1)A0B0 +( A3B3)( A2B2)( A1B1)( A0B0)(ab) (A=B) = ( A3B3)( A2B2)( A1B1)( A0B0)(a=b),注:只要两数最高位不等,就可以判断两数大小。其余各位可以为任意值。,若高位相等,则需要比较低位。,若A、B两数各位均相等,输出状态取决于级联输入状态。,AiBi AiBi=1 AiBi AiBi=1 Ai = Bi (AiBi)

44、=1,4位数值比较器集成电路CD4585可以比较方便地实现扩展,例如用2片CD4585可以实现8位比较器,其中高位CD4585的级联输入端(ab)、(aB)、(AB)、(A=B),而低位CD4585的级联输入端与单片使用时接法相同。,四位比较器的级联,两片CD4585构成的八位数值比较的逻辑图,实现逻辑图,注意:低位片级联端接入的电平。,4.7 算术运算电路,4.7.1二进制加法运算 1. 半加器和全加器 (1)半加器 假设两个一位二进制数Ai和Bi相加,Si为半加器的和,Ci+1为进位输出。不考虑低位产生的进位,而只考虑两个一位二进制数相加的运算电路称为半加器(Half Adder)。,由真

45、值表得到半加器的逻辑函数式为 Ci+1=Ai Bi Si =AiBi,(2)全加器 在两个一位二进制数Ai和Bi相加时,要考虑相邻低位的进位Ci,即将两个一位二进制数相加的同时,再加上来自低位的进位信号,这种电路称为全加器(Full adder)。,全加器的真值表,和,加数,被加数,低位来的进位,向高位的进位,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY adder_1 IS PORT( ai, bi,ci:IN STD_LOGIC; si,co:OUT STD_LOGIC); END adder_1; ARCHITECTURE adder

46、 _1p OF adder _1 IS SIGNAL h: STD_LOGIC; BEGIN h= ai XOR bi; si= h XOR ci; co= (ai AND bi) or (h AND ci); END adder _1p;,用VHDL设计的一位全加器,2加法器,实现多位二进制数加法运算的电路称为加法器。 主要有逐位进位加法器和超前进位加法器。,(1)逐位进位加法器,将n个全加器按照图所示的方式级联,电路中全加器的个数与加数的位数相同,把低位进位输出端接到相邻高位的进位输入端,则该电路中只有低位进位产生后,高位相加的结果才能建立起来。这种结构的电路称为串行进位加法器。逐位进位加

47、法器具有电路简单、连接方便等优点,但运算速度明显受到限制。,(2)超前进位加法器,图为中规模4位超前进位加法器74283的引脚功能图。74283是由4个全加器和超前进位电路组成。4位进位信号的逻辑表达式函数为 Ci+1=fi (A0, A1, A2, A3, B0, B1, B2, B3,C0) 式中i取值03。,74283的引脚功能图,(2)超前进位加法器,根据全加器可知各位和数表达式为 由于只要知道A3、A2、A1、A0,B3、B2、B1、B0和C0就可以得到各级进位信号,因此利用74283进行加法运算时,和数信号和进位信号是同时产生的,不必逐级传送,所以提高了运算速度。,【例4-9】试用

48、4位二进制加法器74283设计一个将8421BCD码转换为余3码的逻辑电路。 解:假设8421BCD用A3A2A1A0表示,余3码用F3F2F1F0表示。8421BCD码与余3码的关系为: F3F2F1F0 = A3A2A1A0+0011 所以74283的一组数据输入 为A3A2A1A0,另一组数据 输入为0011。,4.7.2二进制减法运算,对于减法运算来说,减去一个负数相当于加上一个正数。因此在数字系统和计算机中,二进制减法运算通常变为加法运算。由于正、负数都可以用补码表示,因此可以变减法运算为补码加法运算了。,1.用补码完成减法运算,X与Y的减法运算可以写成X-YX+-Y的补码加法运算。

49、,2.求反电路,在求补运算时,先要进行求反,而求反计算是可以通过由异或门组成的求反电路实现。,当M=1时输出为输入的反码; 当M=0时输出与输入相同。,输出结果,输入数据,控制端,3.由74283构成的二进制减法电路,输入数据A3A2A1A0为被减数的原码,B3B2B1B0为减数的原码,输出数据F3F2F1F0的绝对值不大于7。,4.7.3二进制乘法运算,一位乘法器(Multiplier)的真值表同与门操作是一样的,因此可以用与门实现一位乘法器。多位乘法器可以由一位乘法器设计而成。两个无符号二进制数的乘积可以根据乘数的数位计算位积,再将一系列位积相加。,一位乘法器真值表,0 0 0 0 1 0

50、 1 0 0 1 1 1,an bn pn=anbn,假设被乘数a=a3a2a1a0,乘数b=b3b2b1b0,a和b均为无符号整数。图中每个体现相乘的小方格表示一位乘法器,而位积相加时则采用全加器进行,每行上的全加器形成了4位串行加法器。将所有位的乘积加在一起就得到乘积结果p7p0,占8位。,4.7.3二进制乘法运算,4.7.4 算术逻辑单元,算术逻辑单元(Arithmetic Logic Unit,ALU)可以做加法、减法等算术运算,还可以实现与、或、非、异或、数码比较等逻辑运算,是一种集多种运算功能于一体的运算电路。,【例4-10】试用VHDL设计一个逻辑框图功能如下表所示的一位算术逻辑

51、单元。其中M端为方式控制输入端,M1执行算术运算,M0执行逻辑运算。S1、S0为操作选择输入端,Ai、Bi是参加操作的两个数据输入端,Ci是算术运算的进位输入端,Ci+1是进位输出端,Fi为算术运算或逻辑运算结果输出端。,ALU执行的逻辑运算,ALU执行的算术运算,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSINGED.ALL; ENTITY alu IS PORT (a:IN STD_LOGIC; b:IN STD_LOGIC; c_in:IN S

52、TD_LOGIC; m:IN STD_LOGIC; s1:IN STD_LOGIC; s2:IN STD_LOGIC; c_out:OUT STD_LOGIC; f:OUT STD_LOGIC ); END alu;,【例4-10】VHDL程序,ARCHITECTURE a OF alu IS SIGNAL s:STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL cs:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN s=s2 PROCESS(a,b,c_in,m,s1,s2) BEGIN IF m=0 THEN,【例4-10】VHDL程序,CASE

53、 s IS WHEN “00”=ffffNULL; END CASE; c_out=0;,【例4-10】VHDL程序,ELSIF m=1 THEN CASE cs IS WHEN “000”=ffff=(NOT a) XOR b XOR c_in; c_out=(NOT a) AND b) OR (NOT a) XOR b)AND c_in );,【例4-10】VHDL程序,WHEN “100”=ffffNULL; END CASE; ELSE NULL; END IF; END PROCESS; END a;,【例4-10】VHDL程序,集成算术逻辑单元74LS381的引脚功能图如下所示,其

54、功能表如表所示。74LS381是4位算术逻辑运算单元,A和B是预定的输入状态,根据输入信号S2S0选择8种不同的功能。,74LS381的引脚功能图,74LS381的运算功能,4.8 奇偶校验电路,在数字系统工作过程中,常有大量的数据需要进行传输,而传输时又可能会产生错误,因此需要进行检验。奇偶校验电路(Parity Circuit)就是根据传输代码的奇偶性质,用于检查数据传输过程中是否出现错误的电路。,4.8.1 奇偶校验的基本原理,奇偶校验的基本方法就是在待发送的有效数据位之外再增加一位奇偶校验位(又称监督码)。,利用这一位将待发送的数据代码中含1的个数补成奇数(当采用奇校验)或者补成偶数(

55、当采用偶校验),形成传输码。,产生奇偶校验位(监督码),判断传输码中含1的个数奇偶性,4.8.1 奇偶校验的基本原理,在接收端通过检查接收到的传输码中1的个数的奇偶性判断传输过程中是否有误传现象。,传输正确则向接收端发出接收命令,否则拒绝接收或发出报警信号。,【例4-11】结合图所示的原理图,试设计3位二进制信息码的并行偶发生及校验电路。 解:假设3位二进制信息码用A、B、C组合表示,奇偶发生器产生的偶校验位用WE1表示,奇偶校验器的偶校验输出用WE2表示。 根据传输原理,列出3位二进制信息码的偶校验传输码表。由表可得奇偶发生器的偶校验输出表达式为 同理可得奇偶校验器的偶校验输出表达式为,4.

56、8.1 奇偶校验的基本原理,(a) 发生电路,(b)校验电路,用VHDL设计的偶发生器程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY parity_even1 IS PORT (a,b,c: IN STD_LOGIC; we1: OUT STD_LOGIC); END parity_even1; ARCHITECTURE parity_even1p OF parity_even1 IS BEGIN PROCESS(a,b,c) BEGIN we1= a XOR b XOR c; END PROCESS; END parity_ev

57、en1p;,用VHDL设计的偶校验器程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY parity_even2 IS PORT (a,b,c: IN STD_LOGIC; we1: IN STD_LOGIC; we2: OUT STD_LOGIC); END parity_odd2; ARCHITECTURE parity_even2p OF parity_even2 IS BEGIN PROCESS(a,b,c,we1) BEGIN we2= NOR(a XOR b XOR c XOR we1); END PROCESS; END

58、 parity_even2p;,4.8.2 中规模集成奇偶发生器/校验器,AI是9位信息码的输入端,WOD是奇校验位输出端,WE是偶校验位输出端。,74HC280的引脚功能图,74HC280的功能表,74HC280既可做为奇偶发生器,也可做为奇偶校验器。图是一个由两片74HC280构成的8位偶校验系统,假设在传输中不会同时发生2位以上信息码的误传。在发送端若8位信息码AH中有偶数个1,奇偶发生器74HC280的WE1一定发出0信号。在接收端奇偶校验器74HC280的I端接收监督码位,若传输正确,奇偶校验器74HC280的WE2端应输出1信号,否则说明传输有错误。,4.9 中规模集成电路构成的组合电路的分析与设计,4.9.1 中规模集成电路构成的组合电路的分析 对于由中规模集成电路为核心构成的组合逻辑电路的分析,通常采用功能块电路分析方法。,分析步骤:,1、首先要对给定的逻辑电路图加以分析,根据电路的复杂程度和器件类型,将电路划分为一个或多个逻辑功能块。 2、其次要分析各功能块的逻辑功能。利用前面学过的常用集成电路的知识,分析各功能块逻辑功能。如果需要的话,可以写出每个功能块的逻辑函数式或功能表以辅助功能分析。 3、最后在对各功能块电路分析的基础上,对整个电路进行整

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论