算术逻辑运算电路

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

A0 >B0
A0 <B0 A0=B0 A0=B0 A0=B0
×
×
×
×
×
×
1
0 1
0
1 0
0
0 0
1
0
0
0
0
Βιβλιοθήκη Baidu
1
0
0
1
0
0
1
0
0
1
【例】用7485构成8位数值比较器
1 >=< A0A1A2A3B0B1B2B3 0 P 30 Q 3 >=< A4A5A6A7B4B5B6B7 0 P 30 3
Q
COMP 低位片
Ovr An Bnn An Bnn
(3)浮点数加法运算—对阶
2.减法运算与求补电路
(1)减法ALU结构
? 思考:补码系统中, 如何求相反数?
全加器 到存储器
累加器A
? 思考:能否将加、减电 路统一起来?
求补电路
寄存器B 来自存储器
(2)具有加/减控制的全加器电路
ADD SUB P4
Q4
2. 中规模集成ALU模块—74181
控制端:M,S3,S2,S1,S0
M=1:逻辑运算
M=0:算术运算
§4.4 BCD码运算 1. 1位BCD码加法运算 2. 多位BCD码全加器 3. BCD码乘法
? 思考:两个1位BCD码相加,
结果范围是什么?
N 0 … 9 10 11 … 15 16 17 18 19
C O 3
8 4 2 1 和
加数 8 3 4 B 2 Q 1 0 CI
0
相加
修正判别
修正
2.多位BCD码全加器
(1)行波进位的并行BCD码全加器
总进位
∑ P Q
CO CI P
∑ Q
CO CI P
∑ Q
CO CI P
∑ Q
CO CI
(2)10的补码与9的补码
余3码补码表
余3码 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 9的补码 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 10的补码 0011 1100 1011 1010 1001 1000 0111 0110 0101 0100
P3
Q3
P2
Q2
P1
Q1
P0
Q0
& & &
& & &
& & &
& & &
& & &
CO ∑4 ∑3 ∑2 ∑1 ∑0
3.乘法运算与ALU结构
加法的扩展,通过连加法或移位相加法实现 ( 1)连加法实现M×N
到存储器
配置: 寄存器Y存放M;递减 计数器C存放N;累加 器A存放积P。 A←A+Y C←C-1
二进制数
CO 0 … 0 0 0 … 0 1 1 1 1 B3B2B1B0 0000 …… 1001 1010 1011 …… 1111 0000 0001 0010 0011 D21 0 … 0 1 1 … 1 1 1 1 1
十进制数
D8D4D2D1 0000 …… 1001 0000 0001 …… 0101 0110 0111 1000 1001
举例: • A←0 • A←B • A←B0~5 • A←A+B • A←SRA • A0←X
(2)加法运算的溢出问题(Overflow)
补码系统的溢出判别电路 真值表
An 0 0 0 0 1 1 1 1 Bn 0 0 1 1 0 0 1 1 ∑n 0 1 0 1 0 1 0 1 Ovr 0 1 0 0 0 0 1 0
第一次部分积 部分积之和右移1位 第二次部分积 部分积之和 部分积之和右移1位 第三次部分积 部分积之和 部分积之和右移1位 第四次部分积 部分积之和 部分积之和右移1位
移位相加算法乘法ALU结构
乘数 累计器A 寄存器B B0 来自存储器 计数器C
A←0,Y←MEM B←MEM,C←MEM
全加器
BCD码的修正
需作+6处理的包括: ①出现CO ②B8B4B2B1≥1010
B2B1 B8B4 1
1
1 1
1 1
修正条件为: CO+B8B4+B8B2
1位BCD码全加器电路图
被加数 A
CO 8 3 ∑ 4 2 P 1 0 ∑ 0 C O 3
1
B3 B2 B1 B0
F
& & &
8 3 ∑ 4 2 P 1 0 8 3 4 2 Q 1 0 CI ∑
B = b3 b2 b1 b0 =1110
1 0 1 1 ———— A 1 1 1 0 ———— B + 1 1 0
———— Ci-1
1 1 0 0 1 ……….. ∑i 全加 半加
1位全加器
真值表
CI 0 0 0 0 1 1 1 1 P 0 0 1 1 0 0 1 1 Q 0 1 0 1 0 1 0 1 CO 0 0 0 1 0 1 1 1 ∑ 0 1 1 0 1 0 0 1
(1)取操作数(被加数M)存入累加器A中 CLA: ①A←0; ②B←M; ③A←A+B (2)取另1操作数N并与M相加,和存入A中 ADD: ① B←N; ② A←A+B (3)将和存入存储器 STO: MEM←A
到存储器
累加器A
全加器
寄存器B 来自存储器
寄存器传递语言RTL
目标寄存器←源寄存器[运算符[源寄存器]]
n位全加器
方案2的实现逻辑图(8位为例)
递增计数器 H4 Over 累加器 L4 4位全加器 寄存器B 递减计数器C
加数
被加数
【例】连加法求10110101
步骤 递增计数器 累加器 递减计数器 Step1 0000 0000 0101 Step2 Step3 Step4 Step5 Step6 0000 0001 0010 0010 0011 1011 0110 0001 1100 0111 0100 0011 0010 0001 0000 B 1011 1011 1011 1011 1011 1011
累加器A
递减计数器C 来自存储器
全加器
寄存器Y 来自存储器
连加法的实现流程
A← 0 Y←MEM C←MEM A←A+Y C←C-1 N
C=0? Y MEM←A
连加法的硬件实现方案
方案1:(M、N的字长均为n)
2n位的累加器
2n位的全加器 方案2: n位普通累加器和n位递增计数器构成A
将全加器的溢出作为递增计数器的计数使能信号
部分积之和右移的一般情形
A3 A2 A1 A0 × B3 B2 B1 B0 (A3 A2 A1 A0) ×B0 P3/ P2/ P1/ P0 ﹢(A3 A2 A1 A0) ×B1 P5//P4//P3//P2// P1 P0 P5//P4//P3//P2//P1 P0 ﹢(A3 A2 A1 A0) ×B2 P6///P5///P4///P3///P2 P1 P0 P6///P5///P4///P3///P2 P1 P0 ﹢(A3 A2 A1 A0) ×B3 P7 P6 P5 P4 P3 P2 P1 P0 P7 P6 P5 P4 P3 P2 P1 P0
P>Q P=Q P<Q
COMP 高位片
P>Q P=Q P<Q
FA>B FA=B FA<B
§4.2 算术逻辑单元ALU的组织
1. 加法运算与ALU的组织 2. 减法运算与求补电路 3. 乘法的实现与ALU的结构
连加法
移位相加法
1.加法运算与ALU组织
(1)加法ALU的基本结构
操作数 累加器 加法操作过程
1
0 1
0
1 0
0
0 1
1
0 0
FA B A B FA B AB AB A ☉ B FA B A B
多位比较器
实现方法:先比较两个数的最高位, 若相等;再比较次高位,以此类推。 集成4位数值比较器—7485
A0 A1 A2 A3 A<B A=B A>B B0 B1 B2 B3 0 3 < = > 0 3 Q COMP P P<Q P=Q P>Q FA<B FA=B FA>B
2.多位全加器
4位全加器
CO ∑3
∑2 CO ∑
Q P CI
∑1
∑0
CO ∑
Q P CI
CO ∑
Q P CI
CO ∑
Q P CI
B3 A3
B2 A2
B1 A1
B0 A0
串行进位的速度低
? 思考:如何构成n位全加器?
超前进位方式
COi Pi Qi ( Pi Qi ) CI i 令 则 同理 则 Pi Qi CGi Pi Qi CPi COi CGi CPi CI i COi 1 CGi 1 CPi 1 CI i 1 COi CGi CPi (CGi 1 CPi 1 CI i 1 )
shr shr shr shr
(3)乘法运算的其它考虑
①符号运算 用异或逻辑实现符号运算 ②补码运算的去符号处理 取绝对值相乘+符号位 ③全加器溢出问题
乘法的其它实现方案: 乘法器和乘法表
• 乘法器
• 乘法表
§4.3 逻辑运算和中规模集成ALU
1. 基本的逻辑运算
与、或、非、异或、同或等
迭代下去,最终有:
COn CGn CPnCGn1 CPnCPn1CGn2 ... CPnCPn1CPn2 ...CPCG 1 0 CP n CP n 1CP n 2 ...CPCP 1 0CI 0
超前进位只有2级门电路延时,速度高
集成4位加法器—74283
第4章 算术逻辑运算电路 4.1 基本算术运算电路 4.2 算术逻辑单元的组织
4.3 逻辑运算和集成ALU模 块 4.4 BCD码运算
§4.1 基本算术逻辑电路
1. 1位全加器 2. 多位加法器 3. 算法移位 4. 比较运算
1. 1位全加器
二进制加法运算举例
A= a3 a2 a1 a0 = 1011
A←A+Y· B0
Y×B0
寄存器Y 被乘数
A←SRA, An←Carry,B←SRB, Bn←A0,C←C-1
A A Y B0 A SRA, An Carry, B SRB, Bn A0 C C 1
N
C=0? Y MEM←A
【例】1101 1011
Y 1101 1101 1101 1101 1101 1101 1101 1101 Carry 0 0 0 1 0 0 1 0 A 0000 1101 0110 0011 1001 0100 0001 1000 B 1011 1011 1101 1101 1110 1111 1111 1111 C 0100 0100 0011 0011 0010 0001 0001 0000 Mem
1101 ×1 0 1 1 1101 1101 ﹢1 1 0 1 100111 100111 ﹢0 0 0 0 100111 100111 ﹢1 1 0 1 10001111 10001111 第一次部分积 部分积之和右移1位 第二次部分积 部分积之和 部分积之和右移1位 第三次部分积 部分积之和 部分积之和右移1位 第四次部分积 部分积之和 部分积之和右移1位
0 3 0 3 CI Q CO P ∑ 3 ∑ 0
? 思考:如何用74283构成8位加法器?
3.算法移位
? 思考:定点数左移或右移1位结果是什么? 实现方法:
①移位寄存器实现 ②错位存储实现
P166页图4.7
4.比较运算
1位比较器
A 0 B 0
真值表
FA>B 0 FA=B 1 FA<B 0
0
1 1
7485功能表

A3 B3 A2 B2 A1 B1

A0 B0 A>B A<B A=B FA>B

FA<B

FA=B
A3 >B3 × × × × × ×
A3 <B3 × × × × × × A3=B3 A2 >B2 × × × ×
×
× ×
×
× ×
×
× ×
1
0 1
0
1 0
0
0 0
A3=B3
A3=B3 A3=B3
(2)移位相加法实现M×N
手动乘法运算举例
1101 ×1 0 1 1 1101 1101 0000 ﹢1 1 0 1 10001111
计算机实现方案1:部分积左移
1101 ×1 0 1 1 1101 ﹢1101 100111 ﹢0000 100111 ﹢1 1 0 1 10001111
计算机实现方案2:部分积之和右移
逻辑符号
P Q CO CI ∑ ∑
具体实现:
①与或
P Q CI P Q CI P Q CI P Q CI CO P Q Q CI P CI
②异或
P Q CI CO P Q ( P Q ) CI
③与或非
? 思考:如何列写1位全加器的与或非形式? 集成1位全加器—74183、74184
A2 <B2 × × × ×
A2=B2 A2=B2 A1 >B1 × × A1 <B1 × ×
×
× ×
×
× ×
×
× ×
0
1 0
1
0 1
0
0 0
A3=B3
A3=B3 A3=B3 A3=B3 A3=B3
A2=B2
A2=B2 A2=B2 A2=B2 A2=B2
A1=B1
A1=B1 A1=B1 A1=B1 A1=B1
相关文档
最新文档