算术运算及电路实现
运算器的基本功能
- 完成算术,逻辑运算
+,-,*,/,%,&,|,~ - 得到运算结果的状态
C,Z,V,S - 输出,存放运算结果
寄存器组,数据总线
运算器的基础逻辑电路
- 逻辑门电路
完成逻辑运算 - 加法器
完成加法运算 - 触发器
保存数据 - 多路选择器,移位器
选择,联通
数据通路
ALU功能设计
- 功能
对操作数A,B完成算术逻辑运算
ADD,AND,OR - 设计
算术运算
加法器
逻辑运算
与门,或门
一位ALU逻辑运算实现
直接用逻辑门实现与和或的功能
多路选择器,通过op控制信号输出结果
1位的加法
3个输入信号:A,B,CarryIn
2个输出信号:sum,CarryOut
真值表
A | B | CarryIn | CarryOut | sum |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 |
sum=(a’b’carryin)+(a’+b+carryin)+(a+b’+carryin’)+(a+b+carryin)
carryout=(bcarryin)+(acarryin)+(a*b)
用逻辑门实现加法求sum
用逻辑门求carryout
将所有相同的输入连接在一起
1位ALU的设计过程
确定ALU的功能 (与,或,非)
确定ALU的输入参数
根据功能要求,得到真值表,并写出逻辑表达式
根据逻辑表达式实现逻辑电路
4位ALU实现方式
用1位ALU串联起来,得到4位ALU
超前进位生成
其他结果标志
z=(f1=0)&(f2=0)&(f3=0)&(f4=0)
s=最高位
o=f1’f2’fs+f1f2fs’
补码减法
根据算术运算规则
[a-b]补=[a]补+[-b]补
[-b]的补码为将[b]补的各位求反+1
由此我们可以用加法器完成减法