四?比较器
1?一位二进制数值比较器讨论,A和 B相比较的情况有三种可能在一些数字系统中,经常要求比较两个数字的大小。
为完成这一功能所设计的这种电路称为 数值比较器 。
功能表:
用与非门实现,并且低电平有效。
2?四位二进制比较器 (典型芯片 74LS85)
( 1)管脚介绍
A3 ~ A0 和 B3 ~ B0,4位二进制数;
FA>B?FA=B?FA<B → 比较结果;
( A>B)i? ( A=B)i? ( A>B)i三个级联输入端。
( 2)功能表单块或多块串联时的功能表多块并联时的功能表单块或多块串联时的功能表
( 3)工作原理
① A3≠ B3,则可直接得出比较结果。
A3> B3,FA>B = 1,FA=B = FA<B = 0 ;
A3< B3,FA<B = 1,FA=B = FA>B = 0 ;
由功能表可以看出进行数据比较时,先比较最高位,最位相等再比较次高位,依次类推。
② A3= B3,再比较低位 A2?B2,依次类推。
③ A3 ~ A0 = B3 ~ B0,看级联输入
( A>B)i? ( A=B)i? ( A>B)i。
a) 单片 (连接)
( A>B)i= 0,( A=B)i = 1,( A>B)i = 0
——表示单片比较器( A>B)i?( A=B)i? ( A>B)i
不起作用。
b)多片连接 (扩展比较位数)
例如:用两片 7485可实现两个八位二进制数的大小比较。实现的方法有两种:
1)串联比较方式图 4.2.30 两片 7485比较两个八位二进制数缺点,串联方式的比较位数的扩展,在比较位数较多时,延迟较大,工作速度慢。为提高速度,减少延迟可采用并联方式。
2)并联比较方式
● 用五片 7485构成两个十六进制数比较器。
● 工作原理分析
管脚连接
原理分析图 4.2.31 并联方式比较两个十六位二进制数
● 五位比较器强调,对于 5位比较器的实现,主要考虑在( A>B)i?
( A=B)i? ( A<B)i级联上做文章,不要在 FA>B,FA=B,
FA<B 上考虑。
习题 4-16
五?加法器全加器种类有:一位全加器,7480;
二位全加器,7482?74182;
四位全加器,7483?74183等。
加法器运算是算术运算中最基本的运算,实现这种运算通常采用 半加器 和 全加器 。
1?四位串行进位加法器图 4.2.33 串行进位四位全加器
( 1)分析
A0~A3:被加数,B0~B3,加数。
CI:低位向高位的进位,CO:进位输出。
( 2)缺点:运算速度不高。
由于电路的和要等待逐级的 CI,则使电路的运算速度降低。
为了提高速度,必须考虑减少由于进位信号的逐级传递所耗费的时间,由此人们设计出超前进位的四位加法器。 典型芯片为 74283
2?四位超前进位全加器
( 1)管脚介绍
A0~A3:被加数,B0~B3,加数,
S0~S3:输出和,CO:进位输出,
CI:低位向高位的进位。
( 2)分析由于 Si=Ai⊕ Bi⊕ Ci–1,
Ci=AiBi+ AiCi–1+ BiCi–1
则 S0 = A0⊕ B0⊕ CI = f0 ( A0,B0,CI )
C0 = A0B0+A0CI+B0CI = g0 ( A0,B0,CI )
S1 = A1⊕ B1⊕ C0 = f1 ( A1,B1,C0 )
= f1 ( A1,B1,g0 ( A0,B0,CI ))
= f1 ( A1,B1,A0,B0,CI )
C1 = A1B1+A1C0+B1C0 = g1 ( A1,B1,C0 )
= g1 ( A1,B1,g0(A0,B0,CI ) )
= g1(A1,B1,A0,B0,CI )
S3 = f3 (A3,A2,A1,A0,B3,B2,B1,B0,CI )
C3 = g3 (A3,A2,A1,A0,B3,B2,B1,B0,CI )
由以上分析可见,每一位 Si?Ci只与两个加数和
CI有关,不需要逐级计算 C0?C1? C2,工作速度大为提高。
缺点,电路结构较为复杂。
具体内部电路如讲义的 P93 图 4.2.34所示。
3?应用例 4.2.2 设计 8421BCD码 A3A2A1A0?a3a2 a1a0,而
a3a2 a1a0是小数部分,A3A2A1A0是整数部分,试设计一个电路将该数四舍五入。
加法器是一个重要的逻辑部件,除了可在运算电路中完成两数相加?相减?相乘以外,还可与其它组件合作完成更多的逻辑功能。下面介绍它的应用。
1?设计思路
( 1)当 a3a2 a1a0>4时,A3A2A1A0+1。
要实现这个功能,可将设计分解为两步:
1)进行比较;
( 2)因为 74283进行的是二进制数求和,而并非
8421BCD求和。这样电路就存在一个调整问题 (即:
十进制调整) 。
即:二进制数,0000 ~ 1111;
8421BCD,0000 ~ 1001,
1010~ 1111为非法码。
因此,当和 ≥10时,要加较正项 0110。正确显示为,0001 0000。
2)加 1。
作用,① 当 a3a2 a1a0>4时,对整数部分加 1。
② 在该数 A3A2A1A0?a3a2 a1a0≥9.5 时,
要对整数部分加 0110。 (进行十进制调整)
讨论,1) a3a2 a1a0< 4
F( A>B) = 0,CI= 0,A3A2A1A0=0000,
COS3S2S1S0= A3A2A1A0+A3A2A1A0+CI
=A3A2A1A0+0000+0=A3A2A1A0
2) a3a2 a1a0>4,
F( A>B) = 1,CI= 1,A3A2A1A0=?
① A3A2A1A0< 9 A3A2A1A0= 0000
COS3S2S1S0= A3A2A1A0 + A3A2A1A0 +CI= A3A2A1A0 +1
② A3A2A1A0= 9 A3A2A1A0= 0110 CI=1
COS3S2S1S0= A3A2A1A0 + A3A2A1A0 +CI
=A3A2A1A0 + 0110+1
例二:二进制加法 /减法器在计算机中 CPU的核心部件为 ALU(运算部件),
它在实现二进制加 /减运算时,不可能用一套加法器和一套减法器。为节省 ALU的资源所有的算术运算只用一套加法器来完成。对于减法而言它采用 被减数 +减数的补码 来完成。下面给出加 /减器。
M=0,做二进制加法(称为 串行 或 行波 )。
M=1,做二进制减法,
例三,十进制加法器(习题 4-17)
BCD码加法运算的修正规则,
1) 若两个 BCD码相加之和等于或小于 (1001)2,即十进制的 9,不需要修正。
A+B = COS3S2S1S0 ≤ (1001)2= (9)10,不需要修正。
(1)10+(8)10= (9)10
2)若相加之和在 10 ~ 15 之间,本位还要进行加 6修正,
而进位是在进行加 6修正时产生的。
10 ≤ A + B = COS3S2S1S0 ≤ 15,需要修正 +6。
3)若相加之和在 16 ~ 18之间,向高位的进位会在相加过程中给出,对本位也需要进行加 6修正。
六?奇偶校验器
1?奇偶校验电路利用异或门可进行奇偶校验。
异或门,F=P1⊕ P2
在数字通信或计算机系统中,二进制信息在传输中可能会出现差错(,1”变为,0”,或,0”变为
,1”)。为了检验和纠正这种差错,常用的方法是采用 奇偶校验器 。
扩展,n个输入经异或门运算下面以奇校验为例来进行 讨论:
发送端 奇校验位:
P = P1⊕ P2⊕ P3?校验码产生电路当 F=P1⊕ P2⊕ P3⊕⊕ Pn时,
若 n个输入中,1”的总个数为 奇数,F=1。
若 n个输入中,1”的总个数为 偶数,F=0
接受端 奇检验电路,F= P1⊕ P2⊕ P3⊕ P
则 F= 0 表示传输有错误,F=1表示传输无错误。
(a)奇偶校验位发生器 (b) 奇校验电路图 4.2.36 校验位产生与奇校验电路
F = 1 表示无错误 F = 0 表示有错误反之,偶校验位 和 偶检验电路,
当 F=0时,表示传输 无错误 ;
当 F=1时,表示传输 有错误 。
2?典型芯片
74HC/54HC 280,74/54 180,74S/54S 280,
74LS/54LS 280。
其中,74HC/54HC 280为高速 CMOS电路系列
9位奇偶校验发生器 /校验器。
E:偶输出端。 (如 9位数字输入端输入的数据中
,1”的个数为偶数时,E = 1。)
O:奇输出端。 (若 9位数据中,1”的个数是奇数,
则 O=1。)
A ~ I,9位数字输入端。
3?应用
74HC/54HC 280既适用于奇校验,也适用于偶校验 ;即可用于校验位的产生,也可用于校验。
强调,这个电路有一个缺点,只能校验奇数个数据变化产生的误码,对于偶数个数据变化产生的误码它不能检测出来,这一点是它的缺陷。
从理论的角度讲,图 4.2.39的电路其检错率可达到 50%,但在实际应用中,对于 传输速率低 的情况,产生二个以上的误码可能性比较小,因而使它的纠错率可达到 70%以上。对于高速传输,发生二个以上的误码率的情况就很多,再采用奇(偶)校验器就不合适了,必需采用其它的手段进行纠错。比如用 循环纠错 的方式等等。
作业,4.16 4.17
4.18 4.19
4.20 4.21
1?一位二进制数值比较器讨论,A和 B相比较的情况有三种可能在一些数字系统中,经常要求比较两个数字的大小。
为完成这一功能所设计的这种电路称为 数值比较器 。
功能表:
用与非门实现,并且低电平有效。
2?四位二进制比较器 (典型芯片 74LS85)
( 1)管脚介绍
A3 ~ A0 和 B3 ~ B0,4位二进制数;
FA>B?FA=B?FA<B → 比较结果;
( A>B)i? ( A=B)i? ( A>B)i三个级联输入端。
( 2)功能表单块或多块串联时的功能表多块并联时的功能表单块或多块串联时的功能表
( 3)工作原理
① A3≠ B3,则可直接得出比较结果。
A3> B3,FA>B = 1,FA=B = FA<B = 0 ;
A3< B3,FA<B = 1,FA=B = FA>B = 0 ;
由功能表可以看出进行数据比较时,先比较最高位,最位相等再比较次高位,依次类推。
② A3= B3,再比较低位 A2?B2,依次类推。
③ A3 ~ A0 = B3 ~ B0,看级联输入
( A>B)i? ( A=B)i? ( A>B)i。
a) 单片 (连接)
( A>B)i= 0,( A=B)i = 1,( A>B)i = 0
——表示单片比较器( A>B)i?( A=B)i? ( A>B)i
不起作用。
b)多片连接 (扩展比较位数)
例如:用两片 7485可实现两个八位二进制数的大小比较。实现的方法有两种:
1)串联比较方式图 4.2.30 两片 7485比较两个八位二进制数缺点,串联方式的比较位数的扩展,在比较位数较多时,延迟较大,工作速度慢。为提高速度,减少延迟可采用并联方式。
2)并联比较方式
● 用五片 7485构成两个十六进制数比较器。
● 工作原理分析
管脚连接
原理分析图 4.2.31 并联方式比较两个十六位二进制数
● 五位比较器强调,对于 5位比较器的实现,主要考虑在( A>B)i?
( A=B)i? ( A<B)i级联上做文章,不要在 FA>B,FA=B,
FA<B 上考虑。
习题 4-16
五?加法器全加器种类有:一位全加器,7480;
二位全加器,7482?74182;
四位全加器,7483?74183等。
加法器运算是算术运算中最基本的运算,实现这种运算通常采用 半加器 和 全加器 。
1?四位串行进位加法器图 4.2.33 串行进位四位全加器
( 1)分析
A0~A3:被加数,B0~B3,加数。
CI:低位向高位的进位,CO:进位输出。
( 2)缺点:运算速度不高。
由于电路的和要等待逐级的 CI,则使电路的运算速度降低。
为了提高速度,必须考虑减少由于进位信号的逐级传递所耗费的时间,由此人们设计出超前进位的四位加法器。 典型芯片为 74283
2?四位超前进位全加器
( 1)管脚介绍
A0~A3:被加数,B0~B3,加数,
S0~S3:输出和,CO:进位输出,
CI:低位向高位的进位。
( 2)分析由于 Si=Ai⊕ Bi⊕ Ci–1,
Ci=AiBi+ AiCi–1+ BiCi–1
则 S0 = A0⊕ B0⊕ CI = f0 ( A0,B0,CI )
C0 = A0B0+A0CI+B0CI = g0 ( A0,B0,CI )
S1 = A1⊕ B1⊕ C0 = f1 ( A1,B1,C0 )
= f1 ( A1,B1,g0 ( A0,B0,CI ))
= f1 ( A1,B1,A0,B0,CI )
C1 = A1B1+A1C0+B1C0 = g1 ( A1,B1,C0 )
= g1 ( A1,B1,g0(A0,B0,CI ) )
= g1(A1,B1,A0,B0,CI )
S3 = f3 (A3,A2,A1,A0,B3,B2,B1,B0,CI )
C3 = g3 (A3,A2,A1,A0,B3,B2,B1,B0,CI )
由以上分析可见,每一位 Si?Ci只与两个加数和
CI有关,不需要逐级计算 C0?C1? C2,工作速度大为提高。
缺点,电路结构较为复杂。
具体内部电路如讲义的 P93 图 4.2.34所示。
3?应用例 4.2.2 设计 8421BCD码 A3A2A1A0?a3a2 a1a0,而
a3a2 a1a0是小数部分,A3A2A1A0是整数部分,试设计一个电路将该数四舍五入。
加法器是一个重要的逻辑部件,除了可在运算电路中完成两数相加?相减?相乘以外,还可与其它组件合作完成更多的逻辑功能。下面介绍它的应用。
1?设计思路
( 1)当 a3a2 a1a0>4时,A3A2A1A0+1。
要实现这个功能,可将设计分解为两步:
1)进行比较;
( 2)因为 74283进行的是二进制数求和,而并非
8421BCD求和。这样电路就存在一个调整问题 (即:
十进制调整) 。
即:二进制数,0000 ~ 1111;
8421BCD,0000 ~ 1001,
1010~ 1111为非法码。
因此,当和 ≥10时,要加较正项 0110。正确显示为,0001 0000。
2)加 1。
作用,① 当 a3a2 a1a0>4时,对整数部分加 1。
② 在该数 A3A2A1A0?a3a2 a1a0≥9.5 时,
要对整数部分加 0110。 (进行十进制调整)
讨论,1) a3a2 a1a0< 4
F( A>B) = 0,CI= 0,A3A2A1A0=0000,
COS3S2S1S0= A3A2A1A0+A3A2A1A0+CI
=A3A2A1A0+0000+0=A3A2A1A0
2) a3a2 a1a0>4,
F( A>B) = 1,CI= 1,A3A2A1A0=?
① A3A2A1A0< 9 A3A2A1A0= 0000
COS3S2S1S0= A3A2A1A0 + A3A2A1A0 +CI= A3A2A1A0 +1
② A3A2A1A0= 9 A3A2A1A0= 0110 CI=1
COS3S2S1S0= A3A2A1A0 + A3A2A1A0 +CI
=A3A2A1A0 + 0110+1
例二:二进制加法 /减法器在计算机中 CPU的核心部件为 ALU(运算部件),
它在实现二进制加 /减运算时,不可能用一套加法器和一套减法器。为节省 ALU的资源所有的算术运算只用一套加法器来完成。对于减法而言它采用 被减数 +减数的补码 来完成。下面给出加 /减器。
M=0,做二进制加法(称为 串行 或 行波 )。
M=1,做二进制减法,
例三,十进制加法器(习题 4-17)
BCD码加法运算的修正规则,
1) 若两个 BCD码相加之和等于或小于 (1001)2,即十进制的 9,不需要修正。
A+B = COS3S2S1S0 ≤ (1001)2= (9)10,不需要修正。
(1)10+(8)10= (9)10
2)若相加之和在 10 ~ 15 之间,本位还要进行加 6修正,
而进位是在进行加 6修正时产生的。
10 ≤ A + B = COS3S2S1S0 ≤ 15,需要修正 +6。
3)若相加之和在 16 ~ 18之间,向高位的进位会在相加过程中给出,对本位也需要进行加 6修正。
六?奇偶校验器
1?奇偶校验电路利用异或门可进行奇偶校验。
异或门,F=P1⊕ P2
在数字通信或计算机系统中,二进制信息在传输中可能会出现差错(,1”变为,0”,或,0”变为
,1”)。为了检验和纠正这种差错,常用的方法是采用 奇偶校验器 。
扩展,n个输入经异或门运算下面以奇校验为例来进行 讨论:
发送端 奇校验位:
P = P1⊕ P2⊕ P3?校验码产生电路当 F=P1⊕ P2⊕ P3⊕⊕ Pn时,
若 n个输入中,1”的总个数为 奇数,F=1。
若 n个输入中,1”的总个数为 偶数,F=0
接受端 奇检验电路,F= P1⊕ P2⊕ P3⊕ P
则 F= 0 表示传输有错误,F=1表示传输无错误。
(a)奇偶校验位发生器 (b) 奇校验电路图 4.2.36 校验位产生与奇校验电路
F = 1 表示无错误 F = 0 表示有错误反之,偶校验位 和 偶检验电路,
当 F=0时,表示传输 无错误 ;
当 F=1时,表示传输 有错误 。
2?典型芯片
74HC/54HC 280,74/54 180,74S/54S 280,
74LS/54LS 280。
其中,74HC/54HC 280为高速 CMOS电路系列
9位奇偶校验发生器 /校验器。
E:偶输出端。 (如 9位数字输入端输入的数据中
,1”的个数为偶数时,E = 1。)
O:奇输出端。 (若 9位数据中,1”的个数是奇数,
则 O=1。)
A ~ I,9位数字输入端。
3?应用
74HC/54HC 280既适用于奇校验,也适用于偶校验 ;即可用于校验位的产生,也可用于校验。
强调,这个电路有一个缺点,只能校验奇数个数据变化产生的误码,对于偶数个数据变化产生的误码它不能检测出来,这一点是它的缺陷。
从理论的角度讲,图 4.2.39的电路其检错率可达到 50%,但在实际应用中,对于 传输速率低 的情况,产生二个以上的误码可能性比较小,因而使它的纠错率可达到 70%以上。对于高速传输,发生二个以上的误码率的情况就很多,再采用奇(偶)校验器就不合适了,必需采用其它的手段进行纠错。比如用 循环纠错 的方式等等。
作业,4.16 4.17
4.18 4.19
4.20 4.21