第3章 逻辑电路基础 逻辑电路是设计计算机硬件的基础。逻辑代数是分析和设计逻辑电路的基本工具。构成逻辑电路的基本单元是逻辑门电路和触发器,逻辑电路包括组合逻辑电路和时序逻辑电路。计算机硬件中常用的组合逻辑电路有三态门、加法器、译码器、数据选择器等,常用的时序逻辑电路有计数器、锁存器、数据寄存器和移位寄存器等。 3.1逻辑代数基础 逻辑代数是研究逻辑变量及其相互关系的一门科学,是英国数学家乔治·布尔(Geoge Boole)于1849年提出来的,因此也称为 布尔代数。逻辑代数是分析和设计数字电路的基础。 3.1.1逻辑常量、逻辑变量 逻辑代数是二值代数,只有两个常量,分别用0和1表示,这里的0和1不表示数值的大小,而是表示对立的两种状态,如开关的断开和闭合、信号的有和无、电平的高和低。在数字系统中,用逻辑电平来表示0和1。逻辑电平指的是一定的电压范围,有高电平(H)和低电平(L)之分,高电平对应一种状态,而低电平则对应另一种不同的状态。正逻辑和负逻辑是对逻辑电平表示逻辑常量的一种约定,如果用高电平表示逻辑1,用低电平表示逻辑0,称为正逻辑表示; 反之,如果用高电平表示逻辑0,用低电平表示逻辑1,称为负逻辑表示。数字系统中一般采用正逻辑表示法。 逻辑代数中的变量称为逻辑变量,如逻辑变量F、A、B等,与普通代数的变量不同的是,任何逻辑变量的取值只有两种可能性: 0或1。 3.1.2逻辑代数的基本运算 1. 3种基本运算 逻辑代数包含3种基本的逻辑运算: 逻辑与运算、逻辑或运算以及逻辑非运算。 对于逻辑变量a,b,逻辑与运算可表示为a·b或a∧b或ab,只有当所有的逻辑变量取值为1时,结果才为1,否则为0。 逻辑或运算可表示为a+b或a∨b,只要有一个逻辑变量取值为1时,结果就为1,只有当所有的逻辑变量取值为0时,结果才为0。 逻辑非运算是一元运算,也称取反运算。对逻辑变量a,非运算可表示为a-,其结果是逻辑变量a取反,即0取反为1,1取反为0。对于一个逻辑变量,也称之为原变量,该变量取反后称为反变量,如a为原变量,a-为反变量。 逻辑代数3种基本逻辑运算的功能如表3.1所示。 表3.1逻辑代数的3种基本逻辑运算的功能 与运算或运算非运算 abababa+baa- 00000001 01001110 100101 111111 2. 复合运算 把与、或、非3种基本运算组合起来使用称为复合运算。常见的复合运算有与非、或非、与或非、同或、异或等。 与非运算是先将逻辑变量进行与运算,再将结果进行非运算。如逻辑变量A、B、C的与非表达式为 ABC。 或非运算是先将逻辑变量进行或运算,再将结果进行非运算。如逻辑变量A、B、C的或非表达式为 A+B+C。 与或非运算是将逻辑变量进行与运算,再将每个与项进行或非运算。如逻辑变量A、B、C、D的一种与或非表达式为 AB+CD。 异或和同或运算是两个变量与运算和或运算组成的复合运算,分别用和⊙表示。如逻辑变量A、B。 异或: AB=A+B 同或: A⊙B=AB+ 3.1.3基本逻辑公式、定理和规则 1. 逻辑公式 逻辑代数有一些常用的基本公式,这些公式是逻辑定理、逻辑规则的推导基础,也是逻辑化简的依据,公式本身可以通过真值表证明。逻辑代数的基本公式如表3.2所示。 表3.2逻辑代数的基本公式 公 式 名 称公式 交换律A+B=B+AA·B=B·A 结合律(A+B)+C=A+(B+C)(A·B)·C=A·(B·C) 分配律A·(B+C)=A·B+A·CA+(B·C)=(A+B)·(A+C) 吸收律A+AB=AA+B=A+BA(A+B)=AA(+B)=AB 包含律AB+C+BC=AB+C(A+B)(+C)(B+C)=(A+B)(+C) 互不律A+=1A·=0 0—1律A+0=AA+1=1A·1=AA·0=0 对合律=A 重叠律A+A=AA·A=A 反演律A+B=·AB=+ 2. 逻辑定理 定理1德·摩根(De Morgan)定理 (a) x1+x2+…+xn=x1·x2·…·xn (b) x1·x2·…·xn=x1+x2+…+xn 即n个变量的“或”的“非”等于各变量的“非”的“与”; n个变量的“与”的“非”等于各变量的“非”的“或”。 定理2香农(Shannon)定理 f(x1,x2,…,xn,0,1,+,·)=f(x1,x2,…,xn,1,0,·,+) 即任何函数的反函数(或称补函数),可以通过对该函数的所有变量取反,并将常量1换为0,0换为1,运算符“+”换为“·”,“·”换为“+”而得到。 例3.1已知函数 F=B+A(C+),求其反函数。 解: =B+A(C+)=B·A(C+) =(A+)·(A+C+)=(A+)((+B)+ D) =(A+)·(+B+D) 利用香农定理,可以直接写出 =(A+)·(+B+D) 定理3展开定理 (a) f(x1,x2,…,xi,…,xn)=xif(x1,x2,…,1,…,xn)+xif(x1,x2,…,0,…,xn) (b) f(x1,x2,…,xi,…,xn)=[xi+f(x1,x2,…,0,…,xn)]·[xi+f(x1,x2,…,1,…,xn)] 即任何布尔函数都可以对它的某一变量xi展开,可以按(a)式展开成“与或”形式,也可以按(b)式展开成“或与”形式。 3. 逻辑规则 规则1代入规则 对于任何一个逻辑等式,将其中任意一个变量所有出现的位置都以某个逻辑变量或逻辑函数同时取代后,等式依然成立。 规则2反演规则 在逻辑代数中,常将叫作逻辑函数F的反函数或补函数。反演规则是将一个逻辑函数表达式F中所有“与”运算符换为“或”运算符; 所有“或”运算符换为“与”运算符; 所有原变量换为反变量; 所有反变量换为原变量; “0”换为“1”; “1”换为“0”,所得新的逻辑表达式为原函数的反函数。获得反函数的规则就是反演规则。 规则3对偶规则 设F为一个逻辑表达式,若将F中的“与”运算符换为“或”运算符; 将“或”运算符换为“与”运算符; 将“1”换为“0”,将“0”换为“1”; 所得新的逻辑函数表达式称为F的对偶式,记作F′,获得对偶式规则称为对偶规则。 如果两个逻辑函数表达式相等,那么它们的对偶式也一定相等。 3.1.4逻辑函数 逻辑函数反映了逻辑变量之间的关系,在数字系统中,将逻辑变量作为输入,将运算结果作为输出,当输入变量的取值确定以后,输出的值便被唯一地确定下来,这种输出变量和输入变量间的逻辑关系称为逻辑函数。记为 Y=F(A1,A2,…,An) 其中A1,A2,…,An为输入逻辑变量,取值是0或1; Y为输出逻辑变量,取值是0或1,F为某种逻辑关系,这种逻辑关系由与、或、非3种基本运算决定。 逻辑函数常用逻辑表达式表示,其功能也可以通过真值表或卡诺图描述。 1. 真值表 真值表是一种由逻辑变量的所有可能取值组合及其对应的逻辑函数值所构成的表格。由于一个逻辑变量只有0和1两种可能的取值,故n个逻辑变量一共有2n种可能的取值组合,将这n种取值可能和每一种取值下的函数值用表格的形式表示出来就是真值表。 例3.2某奇偶性判断电路,输入变量为A、B、C,输出为F,该电路的功能是,当A、B、C中1的个数为奇数时,F为1,否则F为0。该电路实现的逻辑关系可用如表3.3所示的真值表表示。 表3.3三变量奇偶判断电路真值表 ABCF 0000 0011 0101 0110 1001 1010 1100 1111 在上面的例子中,对输入变量所有输入的组合都有确定的输出结果,但在实际问题中,往往存在这样两种情况: (1) 由于某种特殊限制,使得输入变量的某些取值组合根本不会出现。 (2) 虽然每种输入组合都可能出现,但其中的某些输入取值组合究竟使函数值为1还是为0,对输出没有影响。 这部分输入组合称为无关最小项,简称无关项,也称为约束项。在真值表中无关项对应的函数取值用d表示。包含无关项的逻辑函数称不完全确定的逻辑函数。 2. 逻辑表达式 逻辑表达式是由逻辑变量和与、或、非3种基本的逻辑运算组成的表达式。如 Y1=F(A,B,C)=B+A+ABC Y2=F(A,B,C)=(A+B+C)(B+) 上述逻辑函数Y1中,逻辑表达式由3个与项进行或运算组成,函数的这种形式称为与或表达式,其中,B、A和ABC由与运算组成,称为与项(也称为乘积项)。如果一个与项包含了该函数的所有变量,每个变量均以原变量或反变量的形式出现,且仅出现一次,这样的与项称为最小项(也称为标准积)。逻辑函数Y1中,与项ABC是最小项。 n个变量最多可以组成2n个最小项,为了方便使用,将最小项进行标号,用mi表示,下标i的编号规则: 把乘积项的原变量记作“1”,反变量计作“0”,把每个与项表示为一个二进制数,这个二进制数所对应的十进制数就是i 的值。如3个变量A、B、C最多可以组成8个最小项: ,C,B,BC,A,AC,AB,ABC。 这8个最小项相对应的简写形式分别是m0,m1,m2,…,m7。三变量全部最小项及编号如表3.4所示。 上述逻辑函数Y2中,逻辑表达式由两个或项进行与运算组成,函数的这种形式称为或与表达式,其中,(A+B+C)和(B+)由或运算组成,称为或项(也称为相加项),如果一个或项包含了该函数的所有变量,每个变量均以原变量或反变量的形式出现,且仅出现一次,这样的或项称为最大项(也称为标准和)。逻辑函数Y2中,或项(A+B+C)是最大项。 同样,n个变量最多可以组成2n个最大项,为了方便使用,将最大项进行标号,用Mi表示,下标i的编号规则: 把乘积项的原变量记作“0”,反变量记作“1”,把每个或项表示为一个二进制数,这个二进制数所对应的十进制数就是i 的值。如3个变量A、B、C最多可以组成8个最小项: ++,++C,+B+,+B+C,A++,A++C,A+B+,A+B+C。 这8个最大项相对应的简写形式分别是M7,M6,…,M0。三变量全部最大项及编号如表3.4所示。 表3.4三变量全部最小项和最大项及编号 变量最小项及编号最大项及编号 ABC编号最小项编号最大项 000m0M0A+B+C 001m1CM1A+B+ 010m2BM2A++C 011m3BCM3A++ 100m4AM4+B+C 101m5ACM5+B+ 110m6ABM6++C 111m7ABCM7++ 同一个逻辑函数可以有不同的表达式,但其标准形式是唯一的。逻辑函数的标准形式有两种,即标准与或式和标准或与式。 全部由最小项相或组成的逻辑表达式称为标准与或式,也称为标准积之和。如逻辑函数 F(A,B,C)=C+B+AC+ABC 该函数是标准与或式,包含4个最小项,可以简记为 F(A,B,C)=m1+m2+m5+m7=∑m(1,2,5,7) 全部由最大项相与组成的逻辑表达式称为标准或与式,也称为标准和之积。如逻辑函数 F(A,B,C)=(++C)(+B+C)(A+B+) 该函数是标准或与式,包含3个最大项,可以简记为 F(A,B,C)=M6M4M1=∏M(1,4,6) 逻辑函数的标准形式可以在一般形式的基础上利用逻辑公式进行逻辑变换得到,也可以在真值表的基础上直接得出。在真值表中,使函数取值为1的那些最小项相或,就构成了函数的“标准积之和”形式; 使函数取值为0的最大项相与,就构成了函数的“标准和之积”形式。如例3.2,根据表3.3可直接写出该函数的“标准积之和”形式和“标准和之积”形式,分别是 F(A,B,C)=C+B+A+ABC=∑m(1,2,4,7) F(A,B,C)=(A+B+C)(A++)(+B+)(++C)=∏M(0,3,5,6) 同一函数的最大项与最小项是互斥的,即如果真值表中的某一行作为函数的最小项,那么它就不可能是同一函数的最大项; 反之亦然。换句话说,一个布尔函数的最小项的集合与其最大项的集合互为补集。因此,若已知一布尔函数的“标准积之和”形式,根据互补的原则就可以很容易写出该函数的“标准和之积”形式。 3. 卡诺图 卡诺图是真值表的变形,与真值表一样,也是采用穷举的方法把输入变量所有输入组合及其函数值列举出来,所不同的是卡诺图是一种用二维小方格来构成图形,一个小方格对应一个最小项,n个变量的卡诺图包含2n个小方格。其中,2n个小方格构成卡诺图的规则是利用最小项的相邻性,所谓相邻最小项是指两个最小项只有一位不一样。具体的做法: 将全部变量按顺序分成两组,每一组变量按格雷码取值排列。图3.1(a)、图3.1(b)、图3.1(c)分别是二变量、三变量和四变量卡诺图。对于五变量及以上的卡诺图方格比较多,逻辑函数中用得较少。 图3.1卡诺图 用卡诺图表示逻辑函数一般分为两步,首先根据逻辑变量的个数画出卡诺图框架,然后将逻辑函数的最小项填到对应的小方格中,用1表示,其他方格用0表示或者不表示。 3.1.5逻辑函数化简 同一个逻辑函数往往有多种不同的逻辑表达式,有的简单,有的复杂,差别很大。在数字系统中,不同的表达式对应的硬件电路是不一样的,简单的表达式对应的硬件电路简单,实现起来不仅可以节省硬件成本,还可以提高电路的可靠性。因此,在进行逻辑电路设计时,对逻辑函数化简就显得十分重要。 逻辑代数中常用与或式衡量一个逻辑函数是不是最简,此时要求函数表达式中与项的个数要最少,每个与项中的变量数要最少。 1. 公式化简法 公式化简法是利用逻辑公式、定理和规则对逻辑函数进行等价变换,最终转化成最简的形式。 例3.3化简F=A+ABC+AC+CD 解: F=A+ABC+AC+CD =A(+BC)+C(A+D) =A(+B)+C(A+D) =A+AB+AC+CD =A(+C)+AB+CD =A+AB+CD =A+CD 理论上,不管一个逻辑函数包含多少个逻辑变量,利用公式化简法最终都可以将其化成最简,但是公式化简法技巧性太强,而且结果也不好判断是不是最简。 2. 卡诺图化简法 在卡诺图上,两个相邻的最小项有一个变量相异, 进行或运算可以消去这个变量,4个相邻的最小项有两个变量相异, 进行或运算可以消去这两个变量,以此类推,2n个最小项相邻有n个最小项相异,进行或运算可以消去这n个变量。 对四变量及以下卡诺图而言,相邻最小项在卡诺图上的位置有两种情况,即物理位置相邻和端点相邻。物理位置相邻是指同一行(或列)上的2n个靠在一起的最小项是相邻的,如图3.2所示的虚线圈内的最小项; 靠在一起的两两互为相邻的2n最小项是相邻的,如图3.2所示的实线圈内的最小项。 图3.2物理位置相邻最小项 端点相邻是指同一行(或列)上最左边和最右边(或最上边和最下边)的两个最小项是相邻的,如图3.3所示的虚线圈内的最小项; 端点上两两互为相邻的2n最小项是相邻的,如图3.3所示的实线圈内的最小项。 图3.3端点相邻最小项 利用卡诺图最小项相邻的特点,可以对逻辑函数进行化简。一般步骤是先将逻辑函数用卡诺图表示,然后在卡诺图上将相邻最小项圈起来,最后将每一个圈对应的最小项相或即可得到逻辑函数的最简与或式。其中,画圈原则: 圈包含的1的个数是2n,圈尽可能的大(消去的变量多,对应的与项包含的变量个数少),圈尽可能的少(对应的与项个数少),所有的1都要被圈进来。 另外,如果卡诺图中包含无关项d,由于无关项对应的输入变量取值组合根本不会出现,或者尽管可能出现,但相应的函数值是什么无关紧要,因此,在化简画圈时,无关项d可以根据需要取值0或者取值1。 例3.4用卡诺图化简逻辑函数F(A,B,C,D)=∑m(0,2,5,7,8,10)。 解: ① 逻辑函数F用卡诺图表示,如图3.4(a)所示; ② 找相邻最小项,画圈,如图3.4(b)所示,虚线圈是2个最小项相邻,实线圈是4个最小项相邻; ③ 写出每个圈所对应的与项,如图3.4(b)所示。 因此,逻辑函数化简后的结果为F=BD+。 图3.4卡诺图及化简 例3.5逻辑变量A、B、C、D输入8421码,如果8421码的值大于5则输出变量F为1,否则为0。画出逻辑函数F(A,B,C,D)的卡诺图并化简。 解: 8421码的编码范围为0000~1001,编码1010~1111为非法编码,即无关项。逻辑函数F(A,B,C,D)的卡诺图如图3.5(a)所示,化简方法如图3.5(b)所示。化简结果: F=A+BC。 图3.5卡诺图及化简 卡诺图化简法虽然简单,但只适用于逻辑变量不多的逻辑函数。 3.2逻 辑 电 路 逻辑函数描述的逻辑功能,在数字系统中最终可以通过逻辑门电路、集成电路或可编程逻辑电路实现。 3.2.1逻辑门电路 数字系统中,常用的门电路有与门、或门、非门、与非门和或非门等,分别实现逻辑函数中的与运算、或运算、非运算、与非运算和或非运算,图3.6是这些常用门电路的国家标准和国际电工委员会标准符号、美国传统符号和中国传统符号。 3.2.2门电路的实现 基本的逻辑门电路可以由二极管门电路、晶体管门电路、TTL门电路和CMOS门电路等构造。 1. 二极管门电路 二极管具有单向导电性,可用作开关电路,通过电压控制开关状态,当在两端加正向电压时导通,此时二极管可视为开关闭合状态,如图3.7(a)所示; 当加反向电压时截止,二极管可视为开关断开状态,如图3.7(b)所示。 利用二极管的单向导电性可以构成基本门电路,图3.8所示为两个二极管和一个电阻构成的最简单的与门电路,其中,A、B为两输入变量,Y为输出变量。表3.5为该与门电路真值表。 表3.5与门电路真值表和逻辑电平 ABY 电平逻辑值电平逻辑值电平逻辑值 L0L0L0 L0H1L0 H1L0L0 H1H1H1 图3.6基本逻辑门的图形符号 图3.7二极管的开关特性 图3.8二极管与门电路 2. 晶体管门电路 晶体管也可用作开关电路,通过基极电压ui控制开关状态,如图3.9(a)所示,当ui为高电平时,三极管饱和导通,uo为低电平; 当ui为低电平时,三极管截止,uo为高电平。图3.9(b)所示为晶体管构造的非门电路,A为输入变量,Y为输出变量。表3.6为该非门电路真值表。 图3.9晶体管开关电路和非门电路 表3.6非门电路真值表和逻辑电平 AY 电平逻辑值电平逻辑值 L0H1 H1L0 由二极管、晶体管等组成的逻辑门电路,结构简单、成本低,但存在严重的缺点,如输出高低电平的数值与输入高低电平的数值不相等,如果将这些门的输出作为下一级门的输入,将产生高低电平的偏移,因此,在实际应用中一般都采用集成门电路,常用的集成门电路分为TTL和CMOS两大类。 3. TTL门电路 晶体管晶体管逻辑(TransisterTransisterLogic,TTL)电路,是数字集成电路的一大门类,它采用双极型工艺制造,具有高速度和品种多等特点。 图3.10(a)所示为TTL与非门电路,电路由输入级、倒相级和输出级三个部分组成。其中D1、D2是钳位二极管,用于限制输入端出现的负极性干扰脉冲,分析时可暂不考虑。多发射极三极管可以等效为一个二极管组成的与门电路。设输入信号的高、低电平分别为3.6V和0.3V。 图3.10TTL与非门电路 当输入A、B至少有一个低电平,即输入端A、B中至少有一个为0.3V时,电路的工作情况如图3.10(b)所示,二极管D4、D5中至少有一个导通,使P点电位为1V,这时二极管D6和三极管T2、T4截止,其集电极电流都近似为0,二极管D3、三极管T3导通,假设T3导通时基极—发射极之间的压降uBE3为0.7V,则 输出电压为uF=VCC-uR2-uBE3≈uD3≈5V-0V-0.7V-0.7V= 3.6V,即输出为高电平。 当输入端A、B全为高电平时,电路的工作情况如图3.10(c)所示,D4、D5均不能导通,P点电位被钳制在2.1V,T2、T4饱和导通,T2的集电极电位近似为1V,T3、D5截止,此时,电路输出电压为0.3V,即输出为低电平。 因此,该电路的逻辑功能如表3.7所示,输出与输入之间的逻辑关系为F=AB。 4. CMOS门电路 CMOS门电路是在TTL门电路问世之后又一种广泛应用的数字集成器件。由于制造工艺的改进,CMOS门电路的性能超越TTL而成为占主导地位的逻辑器件。CMOS门电路的工作速度与TTL相当,而它的功耗和抗干扰能力则远优于TTL。此外,几乎所有的超大规模存储器件以及PLD器件都采用CMOS工艺制造,且费用较低。 表3.7与非门电路真值表和逻辑电平 ABY 电平逻辑值电平逻辑值电平逻辑值 L0L0L0 L0H1L0 H1L0L0 H1H1H1 图3.11(a)为CMOS非门电路,其中V1为P沟道增强型MOS管,衬底与源极相连接VDD。当栅源电压小于它的开启电压UGS1(TH)(UGS1(TH)<0V)时,管子导通。而V2为N沟道增强型MOS管,衬底也是与源极相连接地。当栅源电压大于它的开启电压UGS2(TH)(UGS2(TH)>0V)时,管子导通。当输入端A为高电平时(VA≈VDD),V1截止、V2导通,输出端F为低电平; 当输入端A为低电平时(VA≈0V),V1导通、V2截止,输出端F为高电平。所以电路输出与输入之间的逻辑关系为: F=。 图3.11(b)是低电平有效的CMOS三态非门电路。当 EN=1时,V1、V4截止,这时不论 A为何种状态,输出端F为高阻状态。当EN=0时,V1、V4导通,这时电路为非门电路,F=。 图3.11CMOS非门和三态门 3.2.3集成电路 集成电路(Integrated Circuit,IC)就是将半导体器件、电阻、电容及导线等都制造在一个半导体基片(通常是硅片)上,构成一个功能完整的电路,然后封装起来。与分立元件电路相比,集成电路具有体积小、重量轻、可靠性高、功耗低和工作速度快等优点,自20世纪50年代末以来,得到了广泛的应用。随着半导体技术和制造工艺的迅速发展,在单块硅片上集成器件的规模越来越大,集成电路的功能也日趋复杂和完善。通常把单块硅片上集成的三极管的个数称为集成度。 根据集成度的大小,集成电路分为小规模集成电路(SSI)、中规模集成电路(MSI)、大规模集成电路(LSI)和超大规模集成电路(VLSI)。随着集成度的提高,单个芯片的功能也越来越强。一般来说,SSI仅仅是器件(如门电路、触发器等)的集成,MSI已是逻辑部件(如译码器、寄存器等)的集成,而LSI和VLSI则是整个数字系统或其子系统的集成。 根据功能是否确定,集成电路可分为标准逻辑器件和专用集成电路(Application Specific Integrated Circuit,ASIC)。标准逻辑器件的功能是完全确定的,用户只能使用其固有的功能,而不能对其改变。标准逻辑器件通常又称为通用集成电路,它具有生产量大、使用广泛、价格低廉等优点,如门电路、触发器和MSI电路等。随着数字系统规模的不断扩大,用标准逻辑器件实现,需要用很多芯片,且芯片之间、芯片与印制板之间的连线也相应增多,导致系统可靠性下降、成本提高、功耗增加和占用空间扩大等问题。因此,随着集成电路技术和计算机技术的发展,出现了把能完成特定功能的电路或系统集成到一个芯片内的 专用集成电路ASIC上,使用ASIC不仅可以减少系统的占用空间,而且可以降低功耗,提高电路的可靠性和工作速度。 ASIC按制造过程的不同又分为全定制和半定制两大类。全定制集成电路是由制造厂家按用户提出的逻辑要求,针对某种应用而专门设计和制造的芯片,这类芯片专业性很强,适合在大批量生产的产品中使用,常见的存储器、中央处理器(CPU)等芯片,都属于全定制集成电路。半定制集成电路是制造厂家生产出的半成品,用户根据自己的要求,用编程的方法对半成品进行再加工,制成具有特定功能的专用集成电路,可编程逻辑器件(Programmable Logic Devices,PLD)就是这类半定制集成电路。 根据所用半导体器件的不同,集成电路可分双极型数字集成电路和单极型数字集成电路。前者以双极型晶体管为基本元件,后者以MOS管为基本元件。实际应用中,TTL和CMOS电路最为普遍。 3.2.4可编程逻辑电路 可编程逻辑器件按集成度划分,可分成低密度可编程逻辑器件和高密度可编程器件。常见的高密度可编程逻辑器件有CPLD(Complex PLD)以及FPGA等。下面介绍PLD和FPGA。 1. PLD PLD属于半定制集成电路。由于任何组合逻辑电路对应的逻辑函数均可以转换为“与或”表达式,任何时序逻辑电路都是由组合电路加上存储元件(如触发器)构成的,因此,任何一个逻辑电路最终都可以由与门阵列、或门阵列和触发器阵列实现。图3.12是PLD的基本结构示意图,主体电路是由与阵列后跟或阵列组成的,这两个阵列或者其中的一个阵列是可以编程的。输入变量通过 与阵列,完成与运算,产生相应的与项; 再将这些与项通过或阵列,完成或运算,得到所需“与或”输出表达式。 图3.12PLD基本结构示意图 为了使输入信号具有足够的驱动能力,并产生原变量和反变量两个互补的输入信号,与阵列的每个输入端都与输入缓冲器相连,图3.13所示为PLD的典型输入缓冲器,它的两个输出 B,C是其输入A的原和反,即B=A,C=。为使PLD具有多种输出方式——组合输出、时序输出、低电平输出、高电平输出等,往往在或阵列的后面还有各种输出电路,各种方式的输出都经三态电路而输出,输出信号还可以反馈到与阵列的输入端。 由于PLD的阵列规模大,用传统的逻辑表示方法很难描述PLD的内部电路,目前广泛采用PLD表示法。图3.14所示为三输入“与”门的两种表示法。传统表示法中与门的3个输入A,B,C在PLD表示法中称为3个输入项,而输出D称为与项。同样或门也采用类似的方法表示。 PLD阵列交叉点处的连接方式有3种,如图3.15所示。实点“·”表示硬线连接,即固定连接; “×”表示可编程连接; 既没有“·”也没有“×”表示两线不连接。 图3.13输入缓冲器 图3.14两种与门表示法 图3.15PLD阵列交叉点 通过PLD表示法将逻辑电路描述出来得到的图称为阵列图。如某电路对应的逻辑函数为 F1=+AB,F2=+B,F3=AB+, 该电路的阵列图如图3.16(a)所示,图3.16(b)为该阵列图的简化形式。 图3.16PLD阵列图 用可编程逻辑器件设计数字系统,相对于传统的用标准逻辑器件(门、触发器和MSI电路)设计数字系统有很多优点,主要表现在以下方面: (1) 减小了系统体积。 (2) 增强了逻辑设计的灵活性 (3) 提高了系统的处理速度和可靠性。 (4) 缩短了设计周期,降低了系统成本。 (5) 具有加密功能。 2. FPGA FPGA(Field Programmable Gate Array)是现场可编程门阵列, 是专用集成电路领域中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 FPGA采用了逻辑单元阵列(Logic Cell Array,LCA)这样一个概念,内部包括可配置逻辑模块 (Configurable Logic Block,CLB)、输出输入模块(Input Output Block,IOB)和内部连线(Interconnect)三个部分。与PLD以与阵列、或阵列、触发器结构方式构成逻辑行为不同,FPGA是以查找表(LookUpTable,LUT)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。 LUT是FPGA可编程的最小逻辑构成单元,LUT本质上就是一个RAM,一个N输入的查找表可以实现N输入变量的任何组合逻辑功能。目前FPGA中多使用四输入的LUT,每一个LUT可以看成一个有4位地址线的16×1的RAM。当用户通过原理图或HDL描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容并输出。图3.17所示为四输入与门的LUT实现方式。由此可见,FPGA的逻辑是通过向内部静态存储单元加载编程数据实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块间或模块与I/O间的连接方式,最终决定了FPGA所能实现的功能。 图3.17四输入与门的LUT实现方式 3.2.5逻辑电路的设计模式 在数字电子技术发展的过程中,逻辑电路设计出现了基于分立元件的设计、基于集成电路的设计和基于可编程逻辑器件的设计等几种设计模式。 基于分立元件的设计模式是传统的设计模式,它是数字逻辑设计的基础。该模式追求设计目标的最小化,即通过函数和状态表的化简,尽量减少门电路和触发器的数量,以得到一种实现给定功能的最经济的设计方案。 随着集成电路的发展,数字系统的逻辑设计方法发生了根本性的变化,出现了基于集成电路的设计模式。由于集成电路芯片内部的门电路或触发器的数量都是确定的,因此该模式的追求目标不再是最小化,而是以集成电路芯片的功能为基础,从要求的功能出发,合理地选用器件、充分利用器件的功能,尽量减少相互连线,并在必要时使用传统的设计方法设计辅助的接口电路。这种设计模式通常以使用的芯片数量和价格达到最低作为技术和经济的最佳指标,所设计的电路具有体积小、功耗低、可靠性高及易于设计、调试和维护等优点,因此发展异常迅猛。但是,要采用集成电路进行逻辑设计,首先必须熟悉集成电路芯片的功能和用法,了解其灵活性,才能有效地利用它们实 图3.18FPGA/CPLD设计流程 现各种逻辑功能。而且,标准器件的逻辑功能固定,用户只能使用而不能修改器件逻辑,缺乏灵活性。 随着可编程逻辑器件的发展,出现了基于可编程逻辑器件的逻辑电路设计模式,即运用EDA技术完成逻辑电路的设计。EDA即电子设计自动化(Electronic Design Automation),是指以大规模可编程逻辑器件为设计载体,以计算机为工具进行电子设计,利用EDA软件平台完成硬件系统的设计、仿真、测试与下载。 FPGA/CPLD设计流程如图3.18所示。 3.3计算机中常用的组合逻辑电路 逻辑电路有两大类: 一类是组合逻辑电路; 另一类是时序逻辑电路。组合逻辑电路由门电路组成,电路的输出只与当时的输入有关,而与电路以前的状态无关。计算机中常见的组合逻辑电路有加法器、译码器、多路选择器和三态门等。 3.3.1加法器 1. 半加器 能完成两个一位二进制数的相加并求得“和”及“进位”的逻辑电路,称为半加器(Half Adder,HA),逻辑符号如图3.19所示。其中A和B分别为两个一位二进制数的输入端,S和C分别为相加后形成的“和”及“进位”输出端,半加器真值表如表3.8所示。 表3.8半加器真值表 ABSC 0000 0110 1010 1101 根据真值表,可写出“和”及“进位”输出表达式分别是F=B+A,C=AB。 2. 全加器 完成两个一位二进制数相加,并考虑低位来的进位,求得“和”及“进位”的逻辑电路称为全加器(Full Adder,FA),逻辑符号如图3.20所示。其中Ai和Bi分别为两个一位二进制数的输入端,Ci-1为低位来的进位输入端,Si和Ci分别为相加后的“和”及向高位的“进位”输出端。全加器真值表如表3.9所示。 图3.19半加器的逻辑符号 图3.20全加器的逻辑符号 表3.9全加器真值表 AiBiCi-1SiCi 00000 00110 01010 01101 10010 10101 11001 11111 根据真值表,可写出“和”及向高位的“进位”输出函数的标准形式: Si=∑m(1,2,4,7),Ci=∑m(3,5,6,7) 化简后的最简与或式为 Si=iiCi-1+iBii-1+Aiii-1+AiBiCi-1 Ci=AiBi+AiCi-1+BiCi-1 也可以变换为 Si=AiBiCi-1 Ci=AiBi+(AiBi)Ci-1 3. 二进制加法器 实现多位二进制数加法运算的电路称为二进制加法器。按各位数相加方式的不同,可将加法器分为串行加法器和并行加法器两种。串行加法器采用串行运算方式,数据串行输入,运算结果串行输出,参加运算的操作数从最低位开始逐位相加至最高位,最后得出和数。串行加法器电路简单、易于实现,但运算速度太慢。为了提高加法运算的速度,可采用按并行方式运算的并行加法器,即能并行提供二进制加数和被加数的每一位并将各位同时相加的加法器。图3.21所示为4位并行加法器逻辑符号,图中A1,A2,A3,A4为二进制被加数输入端; B1,B2,B3,B4为二进制加数输入端; C0为低位来的进位输入端; C4为向高位的进位输出端; S1,S2,S3,S4为和数输出端。按进位位传递方式的不同,并行加法器又可分为串行进位并行加法器和超前进位并行加法器两种。 1) 串行进位并行加法器 串行进位并行加法器是由一位全加器级联而成的,全加器的个数等于二进制数的位数,如图3.22所示。串行进位加法器的特点是: 被加数和加数的各位能同时并行地到达各自的输入端,而各位全加器的进位输入仍是按照由低向高逐级串行传送的,形成一个进位链,这种进位连接方式称为行波进位(CarryRipple)或串行进位。由于每一位相加的和都与本位的进位输入有关,因此,最高位必须等到各低位全部相加完毕并送来进位信号之后才能产生运算结果。显然这种加法器的运算速度仍较慢,而且位数越多,速度就越慢。 图3.214位并行加法器逻辑符号 图3.22串行进位并行加法器逻辑图 2) 超前进位并行加法器 由图3.22可以看出,进位信号C1是A1、B1 和C0的函数,进位信号 C2是A2、B2 和C1的函数,也就是A2、B2、A1、B1和C0的函数,以此类推,所有的进位信号都是输入端的函数,在并行加法器中,输入信号同时产生,因此进位信号也可以同时生成,这种同时形成各位进位的方法称为超前进位 (Carry Look Ahead,CLA)或先行进位、并行进位。超前进位并行加法器使各位的进位信息同时形成,而不需要依赖低位来的进位,克服了由于行波进位造成的延时等待,提高了运算速度。可根据全加器的输出表达式推出超前进位的原理。 根据全加器进位表达式Ci=AiBi+(AiBi)Ci-1可知,AiBi取决于本位参加运算的两个数,而与低位进位无关,因此称AiBi为进位产生函数,可记作Gi; (AiBi)Ci-1不仅与本位的两个数有关,还依赖于低位送来的进位,因此称AiBi为进位传递函数,记作Pi,则Ci=Gi+PiCi-1。 以4位并行加法器为例,每一位的进位表达式可表示为 C1=G1+P1C0 C2=G2+P2C1 C3=G3+P3C2 C4=G4+P4C3 将以上各式逐项代入,都用最低进位C0表示,可得 C1=G1+P1C0 C2=G2+P2C1=G2+P2G1+P2P1C0 C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0 从上式可得4位超前进位链的线路图如图3.23所示,4位进位输出信号仅由Gi、Pi及最低位C0 决定,而Gi=AiBi,Pi=AiBi,当A、B各位同时到来时,经过三级门的延时(第一级生产各Gi和Pi,第二级为各Gi和Pi的与级,第三级为它们的或级),各位进位Ci同时产生。 图3.234位超前进位链线路图 设与或非门的级延迟时间为1.5t,与非门的级延迟时间为1t,则当Gi和Pi形成后,只需2.5t就可以产生全部进位。 图3.24是由超前进位链构成的4位并行加法器的逻辑电路图,参加运算的两个操作数分别为A3A2A1A0和B3B2B1B0,运算结果为S3S2S1S0,C0 为低位的进位输入,C4为向高位的进位输出。由图3.24可以看出,输入两个参加运算的操作数以后,运算结果可以同时产生,运算速度比行波进位加法器的速度快。但当位数增加时,进位形成逻辑的输入变量增多,进位信号Ci的逻辑表达式也会变得越来越复杂,以致超出器件规定的扇入系数。因此,当位数增多时,用这种方法是不现实的。一般的做法是将加法器分组,常用的分组进位结构有组内并行、组间串行的进位链和组内并行、组间并行的进位链两种。 图3.24由超前进位链构成的4位并行加法器 3.3.2译码器 译码器是计算机中最常用的逻辑部件之一,用来对输入信号进行“翻译”,识别出其含义并产生相应的输出信号。译码器的种类很多,常见的中规模译码器有二进制译码器、二十进制译码器和七段显示译码器等几类。 1. 二进制译码器 二进制译码器的功能是将n个输入变量“翻译”成2n个输出函数,且每个输出函数对应于输入变量的一个最小项。因此,二进制译码器都具有n个译码输入端和2n个译码输出端,称n-2n线译码器。除此之外,一般还有用于控制该译码器是否能够正常工作的一个或多个控制输入端,通常称为使能输入端或使能端。当所有使能输入端都为有效电平时,对应每一组输入代码,输出端仅有一个为有效电平,其余均为无效电平。当使能端不全部有效时,输出端均为无效电平。有效电平既可以为高电平也可以为低电平,分别称为高电平译码器和低电平译码器。 表3.10为38线二进制译码器的真值表,A,B,C为译码输入端; Y-0,Y-1,…,Y-7为译码输出端; En为使能输入端。由真值表可知,当使能信号为有效电平高电平时,对于A,B,C的一组输入值,输出 Y-0,Y-1,…,Y-7中都有且仅有一个为0(低电平有效),其余均为1,此即译码。其他情况译码器不工作,输出端全为1(无效电平)。 表3.1038线译码器的真值表 使能输入译码输入输出 EnCBAY-0Y-1Y-2Y-3Y-4Y-5Y-6Y-7 000011111111 100001111111 100110111111 续表 使能输入译码输入输出 EnCBAY-0Y-1Y-2Y-3Y-4Y-5Y-6Y-7 101011011111 101111101111 110011110111 110111111011 111011111101 111111111110 2. 二十进制译码器 二十进制译码器的功能是将4位BCD码(一般为8421 BCD码)的10组代码“翻译”成10个对应信号输出的逻辑电路。因为其输入和输出线的条数分别为4和10,所以又称为410线译码器。 二十进制译码器的真值表如表3.11所示,表中A3、A2、A1、A0为输入端, Y-0~Y-9为输出端,输出端低电平有效,由表3.11可知,A3A2A1A0输入为8421 BCD码,只有一个输出端为有效电平,代表相应的十进制数码。 表3.11二十进制译码器的真值表 序号 输入输出 A3A2A1A0 Y-0Y-1Y-2Y-3Y-4Y-5Y-6Y-7Y-8Y-9 000000111111111 100011011111111 200101101111111 300111110111111 401001111011111 501011111101111 601101111110111 701111111111011 810001111111101 910011111111110 3. 七段显示译码器 图3.25七段显示译码器和七段 LED显示器连接图 七段显示译码器的作用是将BCD码表示的十进制数转换为七段LED显示器的7个驱动输入端,图3.25所示为七段显示译码器和七段LED显示器连接图,其中B8,B4,B2,B1为BCD码输入端,输出a~g为七段LED显示器的7个驱动输入端。七段LED显示器由7个条形发光二极管(LED)组成,不同段LED的亮、灭组合,即可显示不同的数字。LED显示器有共阳极和共阴极连接两种形式,共阳极形式是将7个LED的阳极连在一起并接高电平,当需要某段LED点亮时,就让其阴极接低电平即可,否则接高电平。共阴极形式和共阳极形式相反,将7个LED的阴极连在一起并接低电平,当需要某段LED点亮时,就让其阳极接高电平即可,否则接低电平。表3.12为共阴极LED显示器的BCD码七段显示译码器真值表。 表3.12共阴极LED显示器的BCD码七段显示译码器真值表 B8B4B2B1abcdefg 000001111110 100010110000 200101101101 300111111001 401000110011 501011011011 601100011111 701111110000 810001111111 910011110011 101010ddddddd 111011ddddddd 121100ddddddd 131101ddddddd 141110ddddddd 151111ddddddd 3.3.3多路选择器 多路选择器又叫数据选择器或多路开关,简称MUX(Multiplexer)。它是一种多输入单输出的组合逻辑电路,完成从多路输入数据中选择一路送至输出端的功能。 图3.264路选择器的逻辑符号 多路数据的选择是受控制信号控制的,一般称为地址选择信号。通常,对于一个具有 2n路输入和一路输出的MUX有n个地址选择端,它的每一种取值组合都对应选中一路输入送至输出端。 图3.26为4路选择器的逻辑符号, D0~D3为数据输入端; A1,A0为地址选择输入端; ST为使能输入端(低电平有效); W为数据输出端。表3.13为4路选择器的真值表,可以看出,在使能端有效的情况下,根据地址端的不同组合,分别从输入数据中选择一路输出。 表3.134路选择器的真值表 选择输入数据输入使能输入输出 A1A0D0D1D2D3STW ××××××10 00D0×××0D0 01×D1××0D1 10××D2×0D2 11×××D30D3 3.3.4三态门 三态门是具有三个输出状态的逻辑电路,三态门的输出端除了0和1两种状态外,还有第三种状态,称为高阻状态或禁止状态,在这种状态下,输出端相当于断开(虚断)。 图3.27高电平有效的三 态门逻辑符号 图3.27为高电平有效的三态门逻辑符号,其输出Y受使能端E的控制,当E为有效电平时输出状态为正常的0或1,当E为无效电平时输出为高阻态,功能表如表3.14所示,其中Z表示高阻态。 表3.14高电平有效的三态门功能表 EDY 0×Z 100 111 三态门主要应用于总线传送,可以分为单向或双向数据传送。 图3.28所示是用三态门构成的单向数据总线。在任何时刻,n个三态门中只允许其中一个使能端Ei有效,该门处于工作状态,相应的数据Di就被送到总线上去,而其他门的使能端均无效,处于高阻状态。若某一时刻同时有两个以上的三态门使能端有效,就有两个以上的三态门工作,那么总线上传输的信息就会出错。 图3.29所示是具有双向三态缓冲的数据总线。当控制使能端EN为高电平时,三态门G1处于工作状态,三态门G2处于高阻状态,数据D1经G1传输到总线上; 当控制使能端EN为低电平时,三态门G2处于工作状态,三态门G1处于高阻状态,总线上的数据D2通过三态门G2接收。这样,通过改变控制使能端EN的状态,实现数据的分时双向传送。 图3.28三态门构成的单向传输 图3.29双向三态缓冲 3.4计算机中常用的时序逻辑电路 时序逻辑电路由组合逻辑和存储器件两部分构成,电路的输出不仅与当前输入有关,还与以前输入有关。触发器、锁存器、寄存器都可以作为存储器件,用来存储二进制信息。触发器强调的是工作机制,多指边沿触发; 锁存器强调的是它的功能特性,多指电平触发。触发器、锁存器是逻辑电路的术语,而寄存器通常是n位触发器的组合,是计算机的术语。 3.4.1基本RS触发器和D触发器 1. 基本RS触发器 最基本的触发器是基本RS触发器,它可以由两个与非门(或者两个或非门)交叉连接而成,有两个稳定的输出状态,可用来保存1位二进制信息。图3.30为基本RS触发器的逻辑图、功能表和时序图,由图可以看出,基本RS触发器的功能为: (1) 当输入=11时,触发器保持原来的稳定状态; (2) 当输入=10时,其Q端置1,但此期间输入不能发生变化; (3) 当输入 =01时,其Q端清0,但此期间输入不能发生变化; (4) 当输入 =00时,其Q端与端都为1,但此期间输入信号同时变为11时,如果左边的与非门先清0,Q端就输出为0,反之输出为1,这取决于与非门的延迟时间。由于究竟哪个门快,使用者无法把握,因此称这样的输出为不确定,基本RS触发器不允许出现这种状态。 图3.30基本RS触发器 由此可以看出,基本RS触发器不允许两个输入端同时为0,接收数据期间也不允许输入端发生变化,也没有时钟控制。 2. D触发器 在基本RS触发器的基础上再增加一定结构的与非门即可组成比较完善的D触发器。D触发器常用来构成寄存器、数据缓冲器和计数器等。图3.31所示为上升沿D触发器的逻辑符号、功能表和波形图,其中,CP表示时钟脉冲输入信号,D为触发器的数据输入端,Q为触发器的状态输出端,Qn表示现态,Qn+1表示次态,d和d分别是直接复位端和直接置位端。 图3.31D触发器 由功能表可以看出: (1) 复位信号和置位信号不受时钟信号控制,不管时钟信号如何,只要复位信号或置位信号有效,立即完成触发器的复位或置位; (2) 当复位信号和置位信号无效时,在时钟信号CP的上升沿,输入端D的数据传送到输出端Q。 3.4.2锁存器 锁存器是由若干个触发器构成的能存储多位二进制代码的时序逻辑电路。锁存器的输出受锁存信号(也称使能信号)的控制,当锁存信号有效时,输出随着输入变化; 当锁存信号无效时,输出状态不变,此时输出对于输入是透明的,因此锁存器也称为透明锁存器。 图3.32(a)和图3.32(b)是在基本RS触发器的基础上增加三个门电路构成的一位锁存器逻辑图和图形符号,D为输入信号,E为锁存信号,高电平有效,Q为锁存器的输出状态,图3.32(c)为该锁存器功能表。 图3.32一位锁存器 由功能表可以看出,当锁存信号E有效时,能锁存输入数据D; 当E无效时,锁存器输出状态不变,与输入无关。 3.4.3数据寄存器 寄存器是一种常见的时序逻辑电路,常常用来存放数据、指令等。寄存器是由具有存储功能的触发器构成的,一个触发器存储一位二进制信息,用n个触发器组成的寄存器能存储n位二进制信息。 图3.33所示为4个边沿D触发器构成的寄存器的逻辑图。D3到D0是并行数据输入端,CR是异步清0端,CP是时钟脉冲输入端,Q3到Q0是并行数据输出端。功能表如表3.15所示。由表可知,当清0端CR有效时,4个D触发器清0,即Q3Q2Q1Q0=0000; 当清0端无效,CP的上升沿时,触发器被置数,即Qn=Dn; 当清0端无效,CP无上升沿时,触发器状态保持不变。 图3.334个边沿D触发器构成的寄存器逻辑图 表3.154个边沿D触发器构成的寄存器功能表 输入输出 CRCPD3D2D1D0Q3Q2Q1Q0 0×××××0000 1↑D3D2D1D0D3D2D1D0 10××××不变 3.4.4移位寄存器 移位寄存器除了具有存储代码的功能以外,还具有移位功能,即指寄存器中存储的代码能在移位脉冲的作用下依次左移或右移。因此,移位寄存器不但可以用来寄存代码,还可以用来实现数据的串行并行转换、数值的运算以及数据处理等。按照移位方式不同,分为单向移位寄存器和双向移位寄存器两类。 图3.34是由边沿D触发器组成的单向右移的4位移位寄存器,其中触发器FF3的输入端接收串行输入信号,其余的每个触发器输入端均与前边一个触发器的输出端相连。当CP的上升沿同时作用所有触发器时,加到寄存器输入端Di的代码存入FF3,其余触发器FFi的状态为前一个触发器FFi+1的状态,即总的效果是将寄存器里原有代码右移了一位。 图3.34用D触发器构成的移位寄存器 3.4.5计数器 计数器是计算机、数字仪表中一种常用的逻辑电路,它不仅能用来对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲、进行数字运算等。计数器种类繁多,根据计数器中数字的编码方式的不同,分为二进制计数器、二十进制计数器和循环码计数器等; 根据计数过程中数字的增减趋势的不同分为加法计数器、减法计数器和加/减计数器; 根据时钟作用方式不同分为同步计数器和异步计数器等。 图3.35所示是4位二进制同步加法计数器,由4个JK触发器和门电路组成,CP为计数脉冲,Co为进位输出。状态表如表3.16所示。由表可以看出,每来一个计数脉冲CP,计数器的状态加1,当计数到最大值时,送出进位信号Co,下一个计数脉冲CP到来时,计数器和Co清0,计数器又从0开始计数。 图3.35由JK触发器组成的4位二进制同步加法器 表3.164位二进制同步加法计数器状态表 CP Q3Q2Q1Q0Co 000000 100010 200100 300110 401000 501010 601100 701110 810000 910010 1010100 1110110 1211000 1311010 1411100 1511111 1600000 习题 3.1用逻辑代数的公式、定理和规则将下列逻辑函数化简为最简与或表达式。 (1) F=AB+ C+BC (2) F=A+B+BCD (3) F=(A+B+C)(+B)(A+B+) (4) F=BC+D+(+)(AC+B) 3.2用卡诺图化简法求出下列逻辑函数的最简与或表达式。 (1) F(A,B,C,D)=+D+AC+B (2) F(A,B,C,D)=BC+D+(+)(AD+B) (3) F(A,B,C,D)=∏M(2,4,6,10,11,12,13,14,15) (4) F(A,B,C,D)=∑m(0,2,7,13,15)+∑d(1,3,4,5,6,8,10) 3.3比较PLD和FPGA的异同。 3.4举例说明三态门主要有哪些应用。 3.5分析超前进位并行加法器能提高运算速度的原因。 3.6用一个四选一数据选择器设计一判定电路。该电路的输入为8421 BCD码,当输入的数字大于1且小于6时输出为1,否则为0。 3.7用4位二进制并行加法器设计一个余三码表示的1位十进制加法器。 3.8图3.36所示电路是由两个同步十进制计数器74160组成的计数器。试分析这是多少进制的计数器,两个之间是几进制。 图3.36题3.8图 3.9图3.37所示电路中的每一方框均为低电平有效的24线译码器。使能端为低电平有效。要求: (1) 写出电路工作时10,20,30,40的逻辑表达式。 (2) 说出电路的逻辑功能。 图3.37题3.9图 3.10用四选一数据选择器和门电路设计下列十进制代码转换器。 (1) 8421 BCD码转换为余三码。 (2) 余三码转换为8421 BCD码。