1、第二章 计算机的逻辑部件,基本内容,在计算机中,几乎所有部件(除了存储单元与外部设备)都是由逻辑电路和触发器构成的,即使是存储器和外部设备,其控制部分也是由逻辑电路和触发器构成的。 2.0 三种基本逻辑操作及Boole代数 2.0 逻辑函数的化简 2.0 逻辑门的实现 2.1 计算机中常用的组合逻辑电路 2.2 时序逻辑电路,2.0 三种基本逻辑操作及Boole代数,基本概念 逻辑代数是1847年由英国数学家乔治布尔(George Boole)首先创立的,所以通常人们又称逻辑代数为布尔代数。 逻辑代数与普通代数有着不同概念,逻辑代数表示的不是数的大小之间的关系,而是逻辑的关系,它仅有两种状态即
2、:0,1。它是分析和设计数字系统的数学基础。 真值可以在逻辑电路中表示为二进制数或电平,这种相似性同样扩展到它们,所以布尔代数在电子工程和计算机科学中同在数理逻辑中一样有很多实践应用。在电子工程领域专门化了的布尔代数也叫做逻辑代数,在计算机科学领域专门化了布尔代数也叫做布尔逻辑。,布尔代数也称为开关代数或逻辑代数,和一般代数一样,可以写成下面的表达式: Y=f(A,B,C,D) 但它有两个特点: (1) 其中的变量A,B,C,D等均只有两种可能的数值:0或1。布尔代数变量的数值并无大小之意,只代表事物的两个不同性质。如用于开关,则:0代表关(断路)或低电位;1代表开(通路)或高电位。如用于逻辑
3、推理,则:0代表错误(伪);1代表正确(真)。(2) 函数f只有3种基本方式:“或”运算,“与”运算及“反”运算。下面分别讲述这3种运算的规律。,2.1 三种基本逻辑操作及Boole代数,基本概念 逻辑代数除了用布尔代数表示外,还常常采用另外几种工具来表述,它们是真值表法、逻辑图法、卡诺图法、波形图法、点阵图法和硬件设计语言法。 真值表用表格来表示逻辑函数,它是由逻辑变量的所有可能取值组合及其对应的逻辑函数值所构成的表格。,F=A+B,?,2.0 三种基本逻辑操作及Boole代数,基本概念 逻辑图是用规定的图形符号来表示逻辑函数运算关系的网络图形。,2.0 三种基本逻辑操作及Boole代数,基
4、本概念 卡诺图是一种几何图形,用来简化逻辑函数表达式,并将表达式化为最简形式的有用工具。,2.0 三种基本逻辑操作及Boole代数,基本概念 波形图是用电平的高、低变化来动态表示逻辑变量值变化的图形。,2.0 三种基本逻辑操作及Boole代数,布尔运算符-与逻辑(AND Logic) 与逻辑又叫做逻辑乘,可以用表达式的形式表示为:F=AB=AB式中的小圆点“”表示逻辑变量A和B的与运算。书写时小圆点常常省去。工程应用中,与运算采用逻辑与门电路来实现。与运算可以推广到任意多变量的情况。F=ABC=ABC,布尔运算符-与逻辑(AND Logic) 真值表,2.0 三种基本逻辑操作及Boole代数,
5、与逻辑(AND Logic) 例如:银行保险库的门上有两把锁,有两位管理员甲、乙各掌管一把钥匙,需要约定两人同时打开各自的一把锁时,他们才能进入保险库。 这是生活中进行逻辑与运算的一个例子。,2.0 三种基本逻辑操作及Boole代数,或逻辑(OR Logic) 或逻辑又叫做逻辑加,可以用表达式的形式表示为:F=AB 工程应用中,或运算采用逻辑或门电路来实现。 或运算可以推广到任意多变量的情况。F=ABC例如:家门上有一把锁,家人每人各自带一把钥匙。那么任何时候,家人无论谁均可以单独进入房间,而不必等另外的人。这是生活中进行逻辑或运算的例子。,2.0 三种基本逻辑操作及Boole代数,或逻辑(O
6、R Logic)真值表,2.0 三种基本逻辑操作及Boole代数,非逻辑(NOT Logic) 非逻辑,可以用表达式的形式表示为:F=A 式中,逻辑变量A上方的小短线“”表示非运算。 工程应用中,非运算用非门(反相器)电路来实现。逻辑图符中,用小圆圈“”表示非运算。,2.0 三种基本逻辑操作及Boole代数,非逻辑(NOT Logic)真值表,2.0 三种基本逻辑操作及Boole代数,布尔函数,2.0 三种基本逻辑操作及Boole代数,复合逻辑运算 与非逻辑(NAND Logic) 或非逻辑(NOR Logic) 与或非逻辑 异或逻辑 同或逻辑,2.0 三种基本逻辑操作及Boole代数,各种逻
7、辑门的图形符号,2.0 三种基本逻辑操作及Boole代数,布尔代数的基本定律,2.0 三种基本逻辑操作及Boole代数,布尔代数运算的基本规则 一、代入规则 任何一个含有变量A的等式,如果将所有出现 A 的位置都代入同一个逻辑函数,则恒等式成立。 【例1】B(A+C)BA+BC,现将所有出现A的地方都代入函数A+D,则有 B(A+D)+CB(A+D)+BCBA+BD+BC 二、 反演规则 它是使用摩根定律,来求一个逻辑函数 F 的非函数 的规则:将 F 表达式中的与()换成或(+),或(+)换成与();将原变量换成非变量,非变量换成原变量; 将逻辑1换成0,0换成l。 注意:变换中必须保持先与
8、后或 的顺序,否则将会出错。,2.0 三种基本逻辑操作及Boole代数,【例2】F F 错,2.0 三种基本逻辑操作及Boole代数,对偶规则 某个逻辑恒等式成立,则对偶式也成立,称为对偶规则。 F 是一个逻辑表达式,把F中的与()换成或(+),或(+换成与();1换成0,0换成1,所得的新的逻辑函数式叫F的对偶式,记为F。 注意:变换中必须保持先与后或 的顺序。,2.0 三种基本逻辑操作及Boole代数,利用布尔代数化简逻辑函数 为什么要化简逻辑函数?为什么采用与-或表达式?,利用最简逻辑表达式构成逻辑电路时,可节省器件,降低成本,提高系统的可靠性。,1.逻辑问题中与-或表达式比较常见; 2
9、.与-或表达式容易和其他形式的表达式相互转换; 3.目前采用的可编程逻辑器件多使用与-或阵列。,2.0 逻辑函数的化简,将一个逻辑函数变成一个形式更简单、与之等效的逻辑函数,称为化简。 由于每个逻辑表达式是和一个逻辑电路相对应的,因此表达式的化简也就能减少实现它的电路所用元件。 两种常用的化简方法: 公式化简法 卡诺图化简法。,2.0 逻辑函数的化简,同一个逻辑函数可以有多种不同的逻辑函数表达式。由于与或表达式是比较常见的,同时与或表达式容易和其他形式的表达式相互转换,所以一般所指的化简,是指要求化为最简的与或表达式,即 要求乘积项的数目是最少的。 且满足乘积项最少的条件下,要求每个乘积项中变
10、量的个数也是最少的。,2.0 逻辑函数的化简,公式化简法(利用基本定律和恒等式进行化简) 并项法:利用A+A=1的公式,将两项合并为一项,并消去一个变量。 如:A B CA B CA B(C+C)A B 吸收法:利用A+AB=A的公式,消去多余的项。如:ABABCD(EF)AB 消去法:利用A+AB=A+B的公式,消去多余的项。如:AB+AC+BCAB+(A+B)CAB+ABCAB+C 配项法:利用A= A(B+B),将它作配项用,然后消去更多 的项。如:F=AB+AC+BC,在第三项配以因子A+A,则有FAB+AC+(A+A)BC AB+AC+ABC+ABC(AB+ABC)(AC+ABC)A
11、BAC,逻辑函数化简实例,要求: (1)画出原始逻辑表达式的逻辑图及真值表;,(2)用布尔代数简化逻辑表达式;(3)画出简化逻辑表达式的逻辑图。,课堂练习,有原始逻辑函数表达式为 要求:(1)简化表达式; (2)画出简化逻辑表达式的逻辑图。,(2)简化逻辑表达式的逻辑图,2.1 计算机中常用的组合逻辑电路,组合逻辑电路 逻辑电路的输出完全由当前的输入决定,电路中没有存储单元 。2.1.1 三态电路2.1.2 异或门及其应用2.1.3 加法器2.1.2 算术逻辑单元(简称ALU)2.1.3 译码器2.1.4 数据选择器2.1.5 数据分配器,2.1.1 三态电路,什么是三态门? 三态门,是指逻辑
12、门的输出除有高、低电平两种状态外,还有第三种状态高阻状态的门电路 高阻态相当于隔断状态。 三态门都有一个EN控制使能端,来控制门电路的通断。 可以具备这三种状态的器件就叫做三态(门,总线,).,举例来说: 内存里面的一个存储单元,读写控制线处于低电位时,存储单元被打开,可以向里面写入;当处于高电位时,可以读出,但是不读不写,就要用高电阻态,既不是5v,也不是0v 计算机里面用 1和0表示是,非两种逻辑,但是,有时候,这是不够的。,比如说,他不够富有,但是他也不一定穷啊,她不漂亮,但也不一定丑啊,2.1.2 异或门及其应用,原码/反码输出电路(P13) 半加器(P13) 数码比较器(P13) 奇
13、偶检测电路(P14),2.1.3 加法器,加法器是计算机基本运算部件之一。 不考虑进位输入时,两数码Xn,Yn相加称为半加器。图(a)是其功能表。 由表写出半加和Hn的表达式如下:Hn=Xn Yn + XnYn=XnYn (2.12) 图(b)是它的逻辑图。半加器可用反相门及与或非门来实现,也可用异或门来实现。,2.1.3 加法器,若考虑低位进位输入Cn-1相加,则称为全加器。图(a)是其功能表。 全加和Fn和进位输出Cn的表示式分别为:FnXnYnCn-1+ XnYnCn-1+ XnYnCn-1+ XnYnCn-1Cn XnYnCn-1+ XnYnCn-1+ XnYnCn-1+ XnYnCn
14、-1,2.1.3 加法器,图(b)是其逻辑图。 FnXnYnCn-1+ XnYnCn-1+ XnYnCn-1+ XnYnCn-1 Cn XnYnCn-1+ XnYnCn-1+ XnYnCn-1+ XnYnCn-1 全加器还可用两个半加器来形成。 Fn是Xn、Yn相加再和Cn-1相加的结果 其表达式为:Fn=XnYnCn-1,2.1.3 加法器,将n个全加器相连可得n位加法器,但其加法时间较长。 这是因为其位间进位是串行传送的,本位全加和Fi必须等低位进位Ci-1来到后才能进行,加法时间与位数有关。,简单串行级联的4位全加器 又称为行波进位加法器,2.1.3 加法器,怎样才能提高加法器的工作速度
15、? 只有通过改变进位逐位传送的路径来解决。 解决办法之一是采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。我们称这种加法器为超前进位加法器。 超前进位产生电路是根据各位进位的形成条件来实现的。 只要满足下述两条件中任一个,就可形成C1: (1)X1,Y1均为“1”; (2)X1,Y1任一个为“1”,且进位C0为“1”。 由此,可写得C1的表达式为:C1=X1Y1+(X1+Y1)C0,2.1.3 加法器,只要满足下述条件中任一个即可形成C2: (1)X2,Y2均为“1”; (2)X2,Y2任一为“1”,且X1,Y1均为“1”; (3)X2,Y2任一为“1”,同时X1,Y1任一为“1
16、”,且C0为“1”。 由此可得C2表达式为:C2=X2Y2+(X2+Y2)X1Y1+(X2+Y2)(X1+Y1)C0 同理,可有C3,C4表达式如下:C3=X3Y3+(X3+Y3)X2Y2+(X3+Y3)(X2+Y2)X1Y1+(X3+Y3)(X2+Y2)(X1+Y1)C0C4=X4Y4+(X4+Y4)X3Y3+(X4+Y4)(X3+Y3)X2Y2+(X4+Y4)(X3+Y3)(X2+Y2)X1Y1+(X4+Y4)(X3+Y3)(X2+Y2)(X1+Y1)C0,2.1.3 加法器,下面我们引入进位传递函数Pi和进位产生函数Gi的概念。它们的定义为:Gi=XiYi 称为进位产生函数Pi=Xi+Y
17、i 称为进位传递函数G1的意义是:当X1,Y1均为“1”时,不管有无进位输入,定会产生向高位的进位。P1的意义是:当X1,Y1中有一个为“1”时,若有进位输入,则本位向高位传送进位,这个进位可看成是低位进位越过本位直接向高位传递的。,2.1.3 加法器,将P1、G1代入C1C4式,便可得:C1=G1+P1C0 (低位)C2=G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0 由图2.12可知,当全加器的输入均取反码时,它的输出也均取反码。据此,可把它们以“与非”、“或非”、“与或非”形式改写
18、成如下形式:C1=P1+G1C0C2=P2+G2P1+G2G1C0C3=P3+G3 G2+ G3G2P1+G3G2G1C0C4=P4+G4P3+G4G3P2+G4G3G2P1+ G4G3G2G1C0,2.1.3 加法器,四位超前进位加法器,用4片74181电路可组成16位ALU(图2.13)。 其中片内进位是快速的,但片间进位是逐片传递的,因此形成F0F15的时间还是比较长。,图2.13用4片ALU构成的16位ALU,如果把16位ALU中的每四位作为一组,用类似四位超前进位加法器“位间快速进位”的形成方法来实现16位ALU(由四片ALU组成)中的“组间快速进位”,那么就能得到16位快速ALU。
19、 推导过程如下:,和前面讲过的一位的进位产生函数Gi的定义相似,四位一组的进位产生函数GN为“1”的条件有以下四个中的任一个: (1) X3,Y3均为“1”,即G3=1; (2) X3,Y3中有一个为“1”,同时X2,Y2均为“1”,即P3G2=1; (3) X3,Y3中有一个为“1”,同时X2,Y2中有一个为“1”, 同时X1,Y1均为“1”,即P3P2G1=1; (4) X3,Y3中有一个为“1”,同时X2,Y2中有一个为“1”, 同时X1,Y1中有一个为“1”,同时X0,Y0均为“1”,即P3P2P1G0=1。 依此,可得GN的表达式为:GN=G3+P3G2+P3P2G1+P3P2P1G
20、0,四位一组的组进位传递函数PN为“1”的条件为: X3,Y3中有一个为“1”, 同时X2,Y2中有一个为“1”, 同时X1,Y1中有一个为“1”, 同时X0,Y0中有一个为“1”。 依此,可得PN的表达式为:PN=P3P2P1P0,把图2.14所示的第0片ALU向第片、第片向第片、第片向第片传送的进位分别命名为Cn+X、Cn+Y、Cn+Z (即C3 C7 C11),根据前面的推导可将式中的G1,G2, G3和P1 P2, P3分别换为 GN0, GN1, GN2和PN0, PN1, PN2,把C0换以Cn,即可得Cn+X 、 Cn+Y 、 Cn+Z 的表示式如下: Cn+X = GN0+PN
21、0Cn = GN0+ PN0Cn = GN0PN0+GN0Cn Cn+Y = GN1+PN1GN0+PN1PN0Cn = GN1+PN1GN0+PN1PN0Cn= GN1PN1+ GN1GN0PN0 +GN1GN0Cn Cn+Z = GN2+PN2 GN1+ PN2 PN1GN0+ PN2 PN1PN0Cn= GN2+PN2 GN1+ PN2 PN1GN0+ PN2 PN1PN0Cn= GN2PN2 + GN1GN0PN1+GN2GN1GN0PN0 +GN2GN1GN0Cn,由式Cn+X、Cn+Y、Cn+Z可知,只要74181型ALU能提供输出GN,PN,那么就可用三个与或非门和四片ALU相连
22、,实现16位快速ALU。 实现Cn+X、Cn+Y、Cn+Z式的逻辑电路就成为超前进位扩展器(74182芯片),图2-11是它的逻辑电路图,图中将P Ni、GNi分别用Pi、Gi表示。图中P、G输出可用于把4组16位快速ALU扩展成64位快速ALU。图2-13画出了用74181和74182芯片构成的16位快速ALU。,2.1.2 算术逻辑单元(ALU),图2.11 与74181型ALU连用的超前进位产生电路,2.4.2 算术逻辑单元(ALU),用两个16位74182和八个74181可级连组成32位ALU电路。,2.4.2 算术逻辑单元(ALU),用四个16位74182和十六个74181可级连组成
23、64位ALU电路。 怎样能更快?由于集成器件的集成度的提高,允许更多位的ALU集成在一个芯片内。例如AMD公司的AM29332为32位ALU,而在Intel公司的Pentium处理器中,32位ALU仅是芯片内的一部分电路。尽管器件不同,但基本电路原理还是相似的。,2.1.4 译码器,什么是译码器 实现译码器功能的组合逻辑称为译码器。它的输入是二进制的代码,输出是一组高低电平信号,每输入一组不同的代码,只有一个输出端呈现有效信号,故通常称为多一译码器。 译码是编码的逆过程,在编码时,每一种二进制代码,都赋予了特定的含义,即都表示了一个确定的信号或者对象。把代码状态的特定含义“翻译”出来的过程叫做
24、译码,实现译码操作的电路称为译码器。或者说,译码器是可以将输入二进制代码的状态翻译成输出信号,以表示其原来含义的电路。,译码:把某组编码翻译为唯一的输出,实际应用中要用到的有地址译码器和指令译码器。 译码器:有24译码器、38译码器(8选1译码器)和416译码器(即16选1译码器)等多种。 例如:38译码器,即8选1译码器的输入信号有三个:C、B、A(A为低位),三位二进制数可组成8个不同数字,因此可分别选中输出Y0 到Y7的某一个输出,故称为 8选1译码器。 称为:74LS138译码器,常用标准组件:双2:4线译码器 3:8线译码器 4:16线译码器 4:10线译码器,逻辑结构(74LS13
25、8为例) 74LS138是3:8译码器,内部结构见下图所示。,补充:编码器,什么是编码器。完成编码功能的数字逻辑电路称为编码器,其逻辑功能与译码器正好相反。 译码器实现“多对一”译码,而编码器实现“一对多”译码。,9个输入端:I9-I1中每个输入端接收一个代表十进制数符的信号,任意时刻所有输入线中只允许一个一个输入线上有信号。 4个输出端:D,C,B,A组成一组二进制码。 逻辑表达式如下: D= I8+ I9 C= I4+ I5+ I6+ I7 B= I2+ I3+ I6+ I7 A= I1+ I3+ I5+ I7 + I7 + I9 【例3】I9=1时,DBCA=1001=(9)10 I6=
26、1时,DBCA=0110=(6)10,2.1.5 数据选择器,我们在日常生活中常常会碰到这种多路选择器的情况,如家庭音响系统中在选择音源时,可以在CD、录音磁带、收音机中选择一路进行欣赏,这是将多个信号源中选择一路进行输出,但这例子中的信号是模拟信号,而这里主要讲的是数据信号。 逻辑功能是在选择信号的控制下,从多路数据中选择一种作为输出信号。又称多路开关或多路选择器。以四选一选择器为例:,数据分配器,数据传输过程中,常常需要将一路数据分配到多路装置中指定的某一路中,执行这种功能的电路叫数据分配器。下面以四路数据分配器为例进行说明:,2.2 时序逻辑电路,时序逻辑电路 如果逻辑电路的输出状态不但
27、和当时的输入状态有关,而且还与电路在此以前的输入状态有关,称这种电路为时序逻辑电路。 时序电路内必须要有能存储信息的记忆元件触发器。 触发器是构成时序电路的基础。,2.2 时序逻辑电路,时序逻辑电路内部有存储单元,其行为由输入和内部单元的值共同决定 可分为同步时序逻辑电路和异步时序逻辑电路,计算机中主要用同步电路。 在同步时序电路中,所有存储单元的变化由时钟统一触发。,时序逻辑电路,时序电路内必须要有能存储信息的记忆元件触发器。触发器是构成时序电路的基础。 触发器种类很多 按时钟控制方式来分:有电位触发、边沿触发、主从触发等方式。 按功能分类:有R-S型、D型、J-K型等功能。 同一功能触发器
28、可以由不同触发方式来实现。对使用者来说,在选用触发器时,触发方式是必须考虑的因素。因为相同功能触发器,若触发方式选用不当,系统是不能达到预期设计要求的。 下面将以触发方式为线索,介绍几种常用的触发器。,时序逻辑电路(按时钟控制方式来分),电位触发方式触发器 当触发器的同步控制信号E为约定“1”或“0”电平时,触发器接收输入数据,此时输入数据D的任何变化都会在输出Q端得到反映;当E为非约定电平时,触发器状态保持不变。鉴于它接收信息的条件是E出现约定的逻辑电平,故称它为电位触发方式触发器,简称电位触发器。 图2.16给出了被称为锁定触发器(又称锁存器)的电位触发器的逻辑图。 电位触发器具有结构简单
29、的优点。在计算机中常用它来组成暂存器。,时序逻辑电路(按时钟控制方式来分),电位触发方式触发器,图2.16 锁存器,时序逻辑电路(按时钟控制方式来分),2. 边沿触发方式触发器 具有下列特点的触发器称为边沿触发方式触发器,简称边沿触发器。触发器接收的是时钟脉冲CP的某一约定跳变(正跳变或负跳变)来到时的输入数据。在CP=1及CP=0期间以及CP非约定跳变到来时,触发器不接收数据。 常用的正边沿触发器是D触发器,图2.17给出了它的逻辑图及典型波形图。下面把边沿触发器和电位触发器作一比较。,时序逻辑电路(按时钟控制方式来分),2. 边沿触发方式触发器,时序逻辑电路(按时钟控制方式来分),边沿触发
30、器和电位触发器比较 电位触发器在E=1期间来到的数据会立刻被接收。但对于正沿触发器,在CP=1期间来到的数据,必须“延迟”到该CP=1过后的下一个CP正沿来到时才被接收。因此边沿触发器又称延迟型触发器。 边沿触发器在CP正跳变(对正边沿触发器)以外期间出现在D端的数据变化和干扰不会被接收,因此有很强的抗数据端干扰的能力而被广泛应用,它除用来组成寄存器外,还可用来组成计数器和移位寄存器等。 至于电位触发器,只要E为约定电平,数据来到后就可立即被接收,它不需像边沿触发器那样保持到约定控制信号跳变来到才被接收。,时序逻辑电路(按时钟控制方式来分),3. 主-从触发方式触发器(简称主-从触发器) 主-
31、从触发器基本上是由两个电位触发器级联而成的,接收输入数据的是主触发器,接收主触发器输出的是从触发器,主、从触发器的同步控制信号是互补的(CP和CP)。 图2.18(a)是主-从J-K触发器的原理图,触发器的输出Q,Q分别和接收K,J数据的输入门相连。在CP=1期间主触发器接收数据;在CP负跳变来到时,从触发器接收主触发器最终的状态。图2.18(b)是主-从J-K触发器功能表。主从触发器由于有计数功能,常用于组成计数器。,时序逻辑电路(按时钟控制方式来分),3. 主-从触发方式触发器(简称主-从触发器),时序逻辑电路(按功能分),RS触发器其它寄存器电路的基础,时序逻辑电路(按功能分),J-K触
32、发器电路符号:,JK:为控制输入端; CLK:为时钟信号; S:为置位信号端; CLR:复位信号端; Q:为输出信号端。,2.5.2-1 寄存器,计算机中常用部件,用于暂存二进制信息。 寄存器可由多个触发器组成。每个触发器存 1Bit,N个触发器储存N位二进制数据。 下图为由4个D触发器组成的四位缓冲寄存器。,Q3 D3 CLK,X3,Q2 D2 CLK,X2,Q1 D1 CLK,X1,Q0 D0 CLK,X0,控制端,2.5.2-2 移位寄存器,移位寄存器不仅具有存储数据的功能,而且还具有移位功能。所谓移位功能就是将移位寄存器中所存的数据,在移位脉冲信号的作用下,按要求逐次向左、右方进行移动。 从信号输入上分有串行输入和并行输入 从信号输出上分有串行输出和并行输出 下面以串行输入并行右移位寄存器为例进行说明:,X1 X2 X3 X4,移位脉冲 CLK,串行输入信号DIN,串行输入并行输出右移位寄存器波形图,2.5.3、四级二进制并行计数器,