4.1组合逻辑电路的分析4.2组合逻辑电路的设计4.3组合逻辑电路中的竞争冒险4.4若干典型的组合逻辑集成电路4.5组合可编程逻辑器件4.6用VerilogHDL描述组合逻辑电路《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧1.熟练掌握组合逻辑电路的分析方法和设计方法;2.掌握编码器、译码器、数据选择器、数值比较器的逻辑功能及其应用;3.掌握加法器的功能及其应用;4.学会阅读MSI器件的功能表,并能根据设计要求完成电路的正确连接;5.正确理解可编程逻辑器件。教学基本要求《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧4.1组合逻辑电路的分析目的:确定已知电路的逻辑功能。步骤:组合逻辑电路逻辑表达式最简表达式真值表逻辑功能化简变换由逻辑图逐级写出各输出端的逻辑表达式化简和变换各逻辑表达式列出真值表根据真值表归纳逻辑电路的功能《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧例:分析如图所示逻辑电路的功能。ABC=1=1ZL解:(1)写输出表达式CBACZLBAZ)((2)列真值表(3)归纳逻辑功能三输入变量有奇数个1时,输出L=1,否则为0,即输入三位二进制码含奇数个1时,输出1为有效信号——称奇校验电路。《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧&&&&&&1&&ABLCZ1Z2Z3例:分析以下逻辑电路的功能。解:(1)写输出表达式ABZ1ABAZ2ABBZ3BABABABABBAAABBABAZZZZL)()(3232ABZC1(2)列真值表(3)分析功能半加器:即A、B为加数,S是它们的和,C是向高位的进位。一个逻辑函数其真值表(最小项表达式)是唯一的,而其逻辑功能实现电路不是唯一的。与非门构成的半加器由异或门及与门(与非门)实现的半加器AB=1&&SCSCCOAB半加器符号(被加数)(加数)(半加和)(进位)AB=1&&SCSCCOAB半加器符号(被加数)(加数)(半加和)(进位)《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧AiBiCi-1=1SiCi=1&000&&000&&000&例:分析以下逻辑电路的功能解:(1)写输出表达式:1iiiiCBASii1iiiii1iiii)()(BACBABACBAC(2)列真值表(3)归纳功能电路具有全加功能,Ai、Bi为加数,Ci-1为低位向本位进位数,Si为和,Ci为本位向高位的进位。ii1iSCCBASiCiCOCO=11AiBiCi-1CICOSiCiCi-1AiBi全加器符号《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧4.2组合逻辑电路的设计目的:已知功能,求(设计)电路。目标:电路简单,所用器件的数目和种类应尽量少(视具体情况而定)。化简最简(或最变换问题实际逻辑逻辑图真值表逻辑表达式合理)表达式步骤:根据功能要求设输入、输出变量,列真值表(逻辑抽象)根据真值表写输出表达式化简逻辑函数(根据真值表填卡洛图,化简逻辑函数)根据简化的逻辑表达式画出电路图《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧例:某车间有3台设备,如有1台出现故障时黄灯亮,两台出现故障时红灯亮,三台都出现故障时红黄灯都亮,设计一个显示车间设备故障情况的电路,并用与非门加以实现。解:设3台设备分别为A、B、C(输入变量),有故障为1,无故障为0;黄、红灯分别为X、Y(输出变量),亮为1,不亮为0。列真值表:ABCXY000000011001010011011001010101110011111101011010XABC000111100100100111YABC0001111001化简变换逻辑函数表达式XABCABCABCABCABCABCABCABCYACBCABACBCAB《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧XABCABCABCABCABCABCABCABCYACBCABACBCAB111&&&&&&&&&&&&&&&&&&ABCXY画逻辑电路图《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧CBACBACBACBABACABBAABCCBACBACBAX)()()()(()()()YABCABCABCABCABABCABCCABCABAiBiCi-1=1SiCi=1&000&&000&&000&用其他门实现实际上就是一个全加器《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧例:设计一个裁决电路,1名主裁,3名副裁,主裁通过记2票,副裁通过记1票,设计一个少数服从多数的裁决电路,用与非门实现。解:(1)设输入变量为A(主)、B、C、D(副),输出变量为L,通过为1,不通过为0。列真值表:(2)填卡洛图,化简00000010LABCD000111101111011100100111BCDACADABBCDACADABBCDACADABL⑶画逻辑图ABCDL00000000100010000110010000101001100011111000010011101011011111001110111110111111&&&&&0&&&&00&ABCDL《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧1.设计一个电话机报警信号控制电路。电路有I0(火警)、I1(盗警)和I2(日常业务)三种输入信号,通过排队电路分别从L0、L1、L2输出,在同一时间只能有一个信号通过。如果同时有两个以上信号出现时,应首先接通火警信号,其次为盗警信号,最后是日常业务信号。试按照上述轻重缓急设计该信号控制电路。要求用集成门电路74LS00(每片含4个2输入端与非门)实现。练习题2.设计一个判断输入4位二进制数的数值范围的电路,要求电路能够判断输入数值的范围(0~5;6~10;11~15)。《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧4.3组合逻辑电路中的竞争冒险前面在分析和设计组合逻辑辑电路时,都没有考虑门电路延迟时间对电路的影响。实际上,由于延迟时间的存在,当一个输入信号经过多条路径传送后又重新会合到某个门上,由于不同路径上门的级数不同,或者门电路延迟时间的差异,导致到达会合点的时间有先有后,从而产生瞬间的错误输出。这一现象称为竞争冒险。4.3.1.产生竞争冒险的原因1&AAAL不考虑门的延时:0AAL考虑延时:AAL1AAAL1不考虑门的延时:1AAL考虑延时:AAL“1”冒险“0”冒险《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧竞争由于逻辑门存在延时时间,信号经由不同的路径达到某一会合点的时间有先有后的现象。冒险由于竞争而引起电路输出发生瞬间错误现象称为冒险。冒险表现为输出端出现了原设计中没有的窄脉冲,常称其为毛刺。“0冒险”和“1冒险”统称冒险。冒险现象的识别可采用代数法来判断一个组合电路是否存在冒险,方法为:写出组合逻辑电路的逻辑表达式,当某些逻辑变量取特定值(0或1)时,如果表达式能转换为:AALAAL则存在“1”冒险则存在“0”冒险《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧ACB&A&≥1&BCL=AC+BCCCCBCpdtA=B=11LAC0冒险(a)(b)若输入变量A=B=l,则有CCL,因此,该电路存在0冒险。ACB&A&≥1&BCL=AC+BCCCCBCpdtA=B=11LAC0冒险(a)(b)例:判断图示电路是否存在冒险。逻辑函数))((CBBAL是否存在冒险。《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧4.3.2竞争冒险的消除方法1.增加乘积项以避免互补项相加。在电路中,存在冒险现象。如在其逻辑表达式中增加乘积项AB,使其变为就不会产生冒险。CBACLABCBACL2.发现并消去互补相乘项。))((CBBALBCACBAL在逻辑式中存在冒险现象。如将其变换为则在原来产生冒险的条件A=C=0时,L=0,不会产生冒险。3.输出并联滤波电容由于竞争冒险产生的干扰脉冲的宽度一般都很窄,在可能产生冒险的门电路输出端并接一个滤波电容(一般为4~20pF),利用电容两端的电压不能突变的特性,使输出波形上升沿和下降沿都变的比较缓慢,从而起到消除冒险现象的作用。《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧4.4若干典型的组合逻辑集成电路4.4.1编码器4.4.2译码器/数据分配器4.4.3数据选择器4.4.4数值比较器4.4.5算术运算电路《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧4.4.1编码器1.编码器(Encoder)的定义与分类编码:赋予二进制代码特定含义的过程称为编码。如:8421BCD码中,用1000表示数字8。ASCII码中,用1000001表示字母A等。编码器:具有编码功能的逻辑电路。编码器的逻辑功能:能将每一个编码输入信号变换为不同的二进制的代码输出。如:BCD编码器-将10个编码输入信号分别编成10个4位码输出。8线-3线编码器-将8个输入的信号分别编成8个3位二进制数码输出。《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧一般而言,N个不同的信号,至少需要n位二进制数编码。N和n之间满足关系:2n≥N。编码器分类:普通编码器和优先编码器普通编码器:任何时候只允许输入一个有效编码信号,否则输出就会发生混乱。优先编码器:允许同时输入两个以上的有效编码信号。当同时输入几个有效编码信号时,优先编码器能按预先设定的优先级别,只对其中优先权最高的一个进行编码。《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧2.编码器的工作原理(1)普通编码器(4线-2线编码器)输入4个信号,要求有4个状态,输出取n位,使2n≥4,且n为最小正整数,n=2,2位二进制(输出)代码。I0I1I2I3Y1Y04输入二进制码输出真值表输入输出I0I1I2I3Y1Y0100000010001001010000111逻辑表达式321032101IIIIIIIIY321032100IIIIIIIIY《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧逻辑电路图321032101IIIIIIIIY321032100IIIIIIIIY1111&00&&00&&00&&00&=11=11I0I1I2I3Y1Y0分析①当I0~I3中某一个为1时,输出Y1Y0即为对应的代码;②当输入中有2个或2个以上的输入同时为1或全部为0,输出出现错误编码。输入输出I0I1I2I3Y1Y0100000010001001010000111《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧(2)优先编码器定义:能够识别请求信号的优先级别并进行编码的逻辑部件。优先编码器举例(4线-2线)真值表输入输出I0I1I2I3Y1Y0100000×10001××1010×××111分析对于I0,只有当I1、I2、I3均为0,且I0为“1”时,输出才为00;对于I3,无论其他3个入端输入如何,只要I3输入有效电平“1”,输出即为11。I3比I0优先,且它们的优先次序为:高I3、I2、I1、I0低。《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧逻辑表达式3321IIIY33210IIIIY包含了无关项,故比前面的非优先编码器简单。输入输出I0I1I2I3Y1Y0100000×10001××1010×××111当I0=1,I1~I3均为0和I0~I3均为0时Y1Y0都是00,这两种情况无法区分。问题《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧左边十个按键代表输入的十个十进制数符号0~9,输入低有效,即某一按键按下,对应的输入为0。输出(A,B,C,D)对应的4位8421码。(3)键盘输入8421BCD码编码器逻辑图《数字电子技术基础》第四章组合逻辑电路主讲:何玉钧输入输出S9S8S7S6S5S4S3S2S1S0ABCDGS1