第六章 采用中、大规模 集成电路的逻辑设计
采用SSI进行逻辑设计时,逻辑设计和元件选择是相互独立的,设计追求的目标是最小化,即尽量减少门和触发器的数量。 采用MSI或LSI进行逻辑设计时,最小化也不再是追求的目标,因为一个器件内门和触发器的数量是确定的。这种设计方法的关键是以MSI和LSI器件的功能为基础,从设计要求的逻辑功能描述出发,合理地选用器件,充分利用器件本身所具有的功能,减少SSI器件和连线的数量。
6.1 6.1 二进制并行加法器 二进制并行加法器除能实现二进制加法运算外,还可实现代码转换、二进制减法运算,二进制乘法运算,十进制加法运算等功能。
Ci-1 Si Ai Bi & Ci =1 1 Pi Gi 全加器的逻辑图
超前进位加法器 提高工作速度的途径:设法减小进位信号的传递时间 进位传递公式
四位二进制超前进位加法电路 S3 S2 S1 S0 A0 B0 A1 B1 A2 B2 A3 B3 全加器 超前进位形成逻辑 C3 P0G0C0 S3 S2 S1 S0 A0 B0 A1 B1 A2 B2 A3 B3 全加器 C-1 超前进位形成逻辑 P1G1C1 P2G2C2 P3G3 C3 四位二进制超前进位加法电路
74LS283 逻辑图 C3 C-1 C0 C1 C2 A3 B3 A1 B1 A2 B2 A0 B0 S3 S2 S0 & 1 C3 C-1 C0 C1 C2 A3 B3 =1 1 A1 B1 A2 B2 A0 B0 S3 S2 S0 Pi∙Gi=AiBi Pi∙Gi=Gi
例: 用四位二进制并行加法器设计一个将 8421BCD码转换成余3码的代转换电路。 解: 余3码比8421码多3 A4 A3 A2 A1 B4 B3 B2 B1 F4 F3 F2 F1 余3码 FC4 C0 8421BCD码 0 0 1 1 “ 0”
例: 用四位二进制并行加法器设计一个 四位二进制并行加法/减法器。 解: 利用补码,将减法变为加法
F4 F3 F2 F1 FC4 C0 A4 A3 A2 A1 B4 B3 B2 B1 S4 S3 S2 S1 =1 被加数(被减数) 加数(减数) a4 a3 a2 a1 b4 b3 b2 b1 功能选择 M 和(差)
例: 用四位二进制并行加法器设计一个用余3 码表示的一位十进制数加法器。 解: 余3码相加时无进位,结果要减3;有进 位,结果要加3。减3(0011)可以变为加 13(1101)。
A4 A3 A2 A1 B4 B3 B2 B1 F4 F3 F2 F1 FC4 C0 “ 1” 1 I II 和数余3码 被加数余3码 “ 1” 被加数余3码 加数余3码 1 进位输入 I II
例: 用四位二进制并行加法器设计一位8421BCD码十进制数加法器。
A4 A3 A2 A1 B4 B3 B2 B1 F4 F3 F2 F1 FC4 C0 “1” I II & 和数8421BCD码 进位输入 I II &
6.2 数值比较电路 6.2 函数表达式
(A=B) A B & (A>B) (A<B) 1 一位比较器 函数表达式
74LS85逻辑图 B0 B1 B2 B3 A0 A1 A2 A3 (A<B)I (A>B)I (A=B)I (A<B)o
24位串行比较器 0 1 0 输入 …… 输出 I II VI B0 B1 B2 B3 A0 A1 A2 A3 (A<B)I (A<B)o (A=B)o (A>B)o 0 1 0 B4 B5 B6 B7 A4 A5 A6 A7 B20B21B22B23 A20A21A22A23 …… I II VI 输出 输入 24位串行比较器
输入 输出 24位并行比较器 VI 010 (A<B)I (A>B)I (A=B)I (A<B)o (A=B)o A0 A1 A2 A3 B0 B1 B2 B3 A40B4 (A<B)I (A>B)I (A=B)I (A<B)o (A=B)o (A>B)o B0 B1 B2 B3 A0 A1 A2 A3 输出 输入 VI I II III IV V B5 B6 B7 B8 A5 A6 A7 A8 A90B9 B10B11B12B13 A10A11A12A13 A140 B14 B15B16B17B18 A15A16A17A18 A190 B19 B20B21B22B23 A20A21A22A23 24位并行比较器
6.3 6.3 译码器 译码器的功能是对具有特定含义的输入代码进行“ 翻译”或“ 辨认”,将其转换成相应的输出信号。
1. 二进制译码器:将n个输入变量变换成2n个输出函数,且每个输出函数对应于n个输入变量的一个最小项。
注:本表中的“ ”代表0或1 输 入 S1 S2+S3 A2 A1 A0 输 出 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 1
G0 G7 G6 G5 G4 G3 G2 G1 GS S A0 A1 A2 S1 逻辑函数表达式 用与非门组成的3线-8线译码器
74LS138的引脚图如下: A0 A1 A2 S3 S2 S1 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 VCC 1 8 9 16 地 74LS138
用两片74LS138组成的4线-16线译码器 1 74LS138(1) A0 A1 A2 S1 5 74LS138(2) A0 A1 A2 1 2 3 4 5 6 7 74LS138(2) A0 A1 A2 S1 1 2 3 4 5 6 7 1 D0 D1 D2 D3 用两片74LS138组成的4线-16线译码器
2. 二~十进制译码器:将4位BCD码的10组代码翻译成10个十进制数码。
输 入 A3 A2 A1 A0 1 输 出 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9
A3 A2 A0 A1 二-十进制译码器电路
例: 用一片74LS138三输入八输出译码器和适当的与非门实现全减器的功能。 输 入 Ai Bi Gi-1 输 出 Di Gi 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 0
A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Ai Bi Gi-1 S1 S2 S3 & Di Gi “1”
例: 用译码器和与门实现逻辑函数 F(A, B, C, D)=m(2, 4, 6, 8, 10, 12, 14) 解: F(A, B, C, D)=
Y0Y1Y2Y3Y4Y5Y6Y7 A2 A1 A0 S3 S2 S1 & B C D A 1 F
6.4 6.4 多路选择器 4选1 数据选择器 D0 D1 D2 D3 A1 A0 S Y D0 D1 D2 D3 A1 A0 Y 完成对多路数据的选择,在公共传输线上实现多路数据的分时传送。 4选1 数据选择器 D0 D1 D2 D3 A1 A0 S Y D0 D1 D2 D3 A1 A0 Y
(b)等效电路 … (C)方框图 (a)逻辑图 74153型双四选一多路选择器 1Q 2Q 1 & 1S 1D0 1D1 1D2 1D3
双十六选一多路选择器 a输出 b输出 a输入 b输入 A0A1A2A3 0a1a2a3a 4a5a6a7a 8a9a10a11a 1Q A1 A0 1D0 1D3 2Q 1S … 2D0 2D3 2S a输出 b输出 A0A1A2A3 0a1a2a3a 4a5a6a7a 8a9a10a11a 12a13a14a15a 0b1b2b3b 4b5b6b7b 8b9b10b11b 12b13b14b15b a输入 b输入 双十六选一多路选择器
例1: 用多路选择器实现以下逻辑函数功能。 F(A, B, C)=m(2, 3, 5, 6) 解: 方案I:采用八路数据选择器 W=A2A1A0 D0+ A2A1A0 D1 + A2A1A0 D2 + A2A1A0 D3 + A2A1A0 D4+ A2A1A0 D5 + A2A1A0 D6+ A2A1A0 D7 F(A, B, C)=A B C +A B C +A B C +A B C
比较上述两个表达式可知:要使W=F,只需令A2=A,A1=B,A0=C,且D0=D1=D4 =D7=0 而D2=D3=D5=D6=1即可。所以,根据分析可作出用八路选择器实现给定函数的逻辑电路图。 8选1 MUX 0 0 1 1 0 1 1 0
方案II:采用四路数据选择器 四路选择器具有两个选择控制变量,当用来实现三变量函数功能时,应该首先从函数的三个变量中任选两个作为选择控制变量,然后再确定选择器的数据输入。假定选A、B与选择控制A1、A0相连,则可将函数F的表达式表示成如下形式:
F(A, B, C)=A B C +A B C +A B C +A B C =A B 0 +A B (C + C) +A B C +A B C =A B 0 +A B 1 +A B C +A B C
显然,要使四路选择器的输出W与函数F相等,只需D0=0, D1=1, D2 =C, D3=C 。由此,可作出用四路选择器实现给定函数功能的逻辑电路图如图所示。 A1 A0 A B W F 4选1 MUX D0 D1 D2 D3 0 1 C C
本例的两种方案表明:用具有n个选择控制变量的选择器实现n个变量的函数或n+1个变量的函数时,不需要任何辅助电路,可由选择器直接实现。 当函数的变量比选择器的选择控制变量数多于两个以上时,一般需要适当的逻辑门辅助实现。同时,在确定各数据输入时,通常借助卡诺图。
例2: 下面是一个具有五个输入变量的逻辑函数的真值表,用三个双四选一多路选择器实现。
五变量函数 1Q A0 A1 1D0 1D3 2Q 1S … 2D0 2D3 2S 1 E DC BA L 0 1 0 1
例3 : 试用一片双四路数据选择器实现下列 F1(A,B,C,D)=∑m(0,1,5,7,10,13,15) 逻辑函数. 作F1 F2的卡诺图(以A= A1 B= A0) 例3 : 试用一片双四路数据选择器实现下列 逻辑函数. .
F1 CD 00 01 11 10 AB . 00 1 1 01 1 1 11 1 1 10 1 F1= ABC +ABD + ABCD + ABD
F2= ABD + ABC+ABD = ABD + ABCD 00 01 11 10 AB 00 . 01 11 1 1 1 10 1 1 F2= ABD + ABC+ABD = ABD + ABCD
比较双4路数据选择器的功能表和输出表达式: A1 A0 1W 2W 0 0 1D0 2D0 0 1 1D1 2D1 1 0 1D2 2D2 可得: . 1D0=C 1D1=D 1D2=CD 1D3=D 2D0=0 2D1=0 2D2=D 2D3=CD
. 1W 2W A1 A0 1D0 2D0 1D1 2D1 1D2 1D3 2D2 2D3 74LS153 F1 F2 A B C D &
6.5 计数器 计数器可分为同步计数器和异步计数器。如果 按进位制分类,则可分为二进制计数器、十进制计数 6.5 计数器 计数器可分为同步计数器和异步计数器。如果 按进位制分类,则可分为二进制计数器、十进制计数 器等;按功能来分类,又可分为加法计数器、减法 计数器和加/减可逆计数器等。 典型的中规模集成电路计数器(如74LS193) 是四位二进制可逆计数器。
例 : 74LS193四位二进制同步可异计数器. 1 8 9 16 74LS193 A B VCC QB QA QC QD CPD CPU QCB QCC Cr LD C D
Cr : 清0 LD : 预置数控制 D、C、B、A :预置数输入 CPU : 加计数脉冲输入 CPD : 减计数脉冲输入 . LD : 预置数控制 D、C、B、A :预置数输入 CPU : 加计数脉冲输入 CPD : 减计数脉冲输入 QCC :进位输出 QCB :借位输出
功能表 : Cr LD D C B A CPU CPD QD QC QB QA 1 d d d d d d d 0 0 0 0 0 0 D C B A d d D C B A 0 1 d d d d 1 加计数 0 1 d d d d 1 减计数
QA QB QC QD & Cr LD A B C D QCB QCC 74LS193型四位二进制可逆计数器逻辑图 1 CPU CPD 1 T R S 1 QB QC QD & 1 CPU CPD Cr LD A B C D QCB QCC 74LS193型四位二进制可逆计数器逻辑图
例1 : 用74LS193利用反馈归零法构成十进制加法计数器 Cr CPU CPD D C B A LD QD QC QB QA QCC QCB 74LS193 CP & 1
0000 0001 0010 0011 0100 1010 1001 1000 0111 0110 0101
例2 : 用74LS193利用预置数法构成模12减法计数器 Cr CPU CPD D C B A LD QD QC QB QA QCC QCB 74LS193 1 1 CP & 初态设置
. 1111 1110 1101 1100 1011 1010 LD 0011 0100 0101 0110 0111 1000 1001
例3 : 利用两片74LS193构成模147加法计数器. Cr CPU CPD D C B A LD QD QC QB QA QCC CP & QD QC QB QA ≥1 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 Ⅰ Ⅱ 当Q7 Q6 Q5 Q4Q3 Q2 Q1 Q0=10010011时清0. 实现147加法计数.
例4 : 利用两片74LS193构成模147减法计数器. Cr CPD D C B A LD QD QC QB QA QCB Ⅰ Ⅱ 1 CP Q5 Q4 Q6 Q7 Q0 Q1 Q2 Q3 置数脉冲
6.6 寄存器 寄存器是数字系统中用于存放数据或运算结果的 地方。具有接收数据、存放数据或传送数据的功能。 6.6 寄存器 寄存器是数字系统中用于存放数据或运算结果的 地方。具有接收数据、存放数据或传送数据的功能。 还应有左、右移位,串、并行输入,串、并行输出以 及预置、清零等功能。 典型的中规模集成电路寄存器(如74LS194) 是四位双向移位寄存器。
74LS194 MA DR D0 D3 DL D1 D2 Q1 Q2 Q0 Q3 MB CP Cr
Cr : 清0 D0、D1、D2、D3:并行数据输入 DR:右移串行数据输入 DL:左移串行数据输入 MA MB :工作方式选择 CP :工作脉冲 Q0、Q1、Q2、Q3: 寄存器状态
功能表 : Cr CP MB MA DR D0 D1 D2 D3 DL Q0 Q1 Q2 Q3 0 d d d d d d d d d 1 0 d d d d d d d d 1 1 1 d d0 d1 d2 d3 d 1 0 1 1 d d d d d 1 0 1 0 d d d d d 1 1 0 d d d d d 1 1 1 0 d d d d d 0 1 d 0 0 d d d d d d 0 0 0 0 保 持 d0 d1 d2 d3 1 Q0 Q1 Q2 0 Q0 Q1 Q2 Q1 Q2 Q3 1 Q1 Q2 Q3 0
例 : 用74LS194构成模4计数器。 1100 0110 0011 1001 Cr MA MB DR D0 D1 D2 D3 DL Q0 Q1 Q2 Q3 74LS193 CP 1 11/01
6.7 只读存储器 ROM的分类: 6.7 (1) 掩模型ROM 由厂家根据用户要求对芯片写入信息,通过掩模工艺在规定的位置制作晶体管(此位为“ 1 ”),不作晶体管(此位为“ 0 ”).用户不能改动. (2) 可编程ROM(PROM) 存储的内容可由用户写入,写“ 0 ”时,烧断晶体管基极的熔丝,写“ 1 ”时保留熔丝.但编程后不能再改变. (3) 可多次编程ROM(EPROM) EPROM在用户编程后还允许用紫外光擦除数据重新编程.EPROM一旦编程后,在使用时只能读出信息而不能写入信息.
ROM的结构: A0 F0 An-1 Fm-1 w0 W2n-1 地址译码器 存储体 字线 位线 2n×m(位)
A1 地址译码器 A0 VCC W0 W1 W2 W3 V0 F0 V1 F1 V2 F2 V3 F3
F0=W0+W1 F1=W0 F2=W0+W1 +W2 +W3 F3=W1 +W2 +W3 上图是4×4 ROM电原理图. 若A1 A0=01, 则W1为“ 1 ”使三极管V0、 V2 、V3导通而V1截止. 使F0、F2、F3为“ 1 ” ,F1输出为“ 0 ”. 从逻辑电路的角度出发,字线和位线之间构成逻辑“ 或 ”的关系.故: . F0=W0+W1 F1=W0 F2=W0+W1 +W2 +W3 F3=W1 +W2 +W3
根据地址译码器的功能可以写出字线的表达式为: W0= A1A0 W1= A1A0 W2= A1A0 W3= A1A0 . 代入F0~ F3 得: F0= A1A0 + A1A0 F1= A1A0 F2= A1A0 + A1A0 + A1A0 + A1A0 F3= A1A0 + A1A0 + A1A0
A1 A0 W0 W1 W2 W3 F0 F1 F2 F3 ≥1 & .
将逻辑图画成阵列图: A1 与 A1 阵 A0 列 A0 W0 W1 W2 W3 或 × × F0 × F1 阵 × × × × F2 列 . A1 阵 A0 列 A0 W0 W1 W2 W3 或 × × F0 × F1 阵 × × × × F2 列 × × × F3
例:用ROM设计一个实现四位8421码转换成Gray码的代码转换电路。 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 B3 B2 B1 B0 G3 G2 G1 G0 1 解:选择244的 ROM实现该代码转换电路。
B3 B3 B2 B2 B1 B1 B0 B0 × × × × × × × × G0 × × × × × × × × G1 × × × × × × × × G2 × × × × × × × × G3
6.8 可编程逻辑阵列 PLA和ROM相比即采用函数最简“ 与或 ”式中的“ 与 ”项来构成“ 与 ”阵列.这样与阵列不再产生2n个最小项,而是产生简化后的与项.这样,一个存储单元就可被多个地址码选中,从而达到节省储存空间的目的. 例1: 分别用ROM和PLA实现下列逻辑函数. F1(A,B,C)=∑m(2,5,6) F2(A,B,C)=∑m(4) F3(A,B,C)=∑m(2,4,5,6)
. A . A B B C C × × × F1 × F2 × × × × F3
用PLA实现时,先将函数式化简.注意公共项的利用. F1(A,B,C) = ABC + ABC + ABC =ABC + BC F2 = ABC = BC +ABC + ABC F3(A,B,C) = ABC + ABC +ABC + ABC 以上三式中不同的与项为: P1=BC P2=ABC P3=ABC
. P1 P2 P3 A × × A 与 B × 阵 × × B 列 × C × × C × × 或 F1 × F2 阵 × × × F3
x0 Zm xn Z1 与阵列 或阵列 触发器组 y1 yr Y1 Yr
例2 : 试用PLA和触发器设计一个6进制加法计数器. /0 /1 000 010 001 011 101 100
Q3 Q2 Q1 Q3n+1 Q2n+1 Q1n+1 Z 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 d d d d 1 1 1 d d d d .
Q3n+1=Q1Q2 Q3+Q1Q3 Q2n+1=Q1Q2 Q3+ Q1Q2 J3 =Q1Q2 K3 =Q1 J2 =Q3Q1 K2 =Q1 00 01 11 10 1 d Q3 Q3n+1 Q2 Q1 00 01 11 10 1 d Q3 Q2n+1 . Q3n+1=Q1Q2 Q3+Q1Q3 Q2n+1=Q1Q2 Q3+ Q1Q2 J3 =Q1Q2 K3 =Q1 J2 =Q3Q1 K2 =Q1
Q2 Q1 00 01 11 10 1 d Q3 Q1n+1 Q2 Q1 00 01 11 10 1 d Q3 Z . Q1n+1=Q1 Z=Q1Q2 Q3 J1 = K1 =1
J K Q1 Q2 Q3 CP Z × J3 =Q1Q2 K3 =Q1 J2 =Q3Q1 K2 =Q1 J1 = K1 =1 . J3 =Q1Q2 K3 =Q1 J2 =Q3Q1 K2 =Q1 J1 = K1 =1 Z=Q1Q2 Q3