ALU-arithmetic and logic unit 算术逻辑单元,简称ALU,是计算机的数学大脑,也就是计算机里负责运算的组件。
算术运算:加、减、乘、除等
逻辑运算:与、或、非、异或等
辅助功能:移位、求补等
数字电路的逻辑符号表达
电路符号
算术单元
算术单元,它主要负责计算机里的所有数字操作,比如加减法,自增自减等。接下来,使用最简单的加法电路,即两个bit相加,bit是0或者1,来看看它是怎么设计与运行的。
二进制加法
一位的二进制加法非常简单,因为只有四种情况
0+0=0 进位0
0+1=1 进位0
1+0=1 进位0
1+1=0 进位1
二进位的四则运算与十进位的四则运算,唯一要注意的就是以二进位表示的数字,每位数都只能是0或1;就像以十进位表示的数,每位数只能是0, 1, 2,…, 8, 9其中的一個数。
二进位的加法中,若遇到1 + 1的情形,就进“進位”。以下是一个简单的例子:11 + 101 = 1000 (3 + 5 = 8)
加法运算的基本规则:
逢二进一
和的最低位是两个数最低位的相加,不需考虑进位。
其余各位都是三个数相加,包括加数、被加数和低位来的进位。
任何位相加都产生两个结果:本位和、向高位的进位。
半加器
半加器可以实现两个1位的二进制数字相加,并且输出结果和进位。它的真值表根据上面的二进制加法表就可以得到。
输出和(F) A和B一个为0 一个为1的时候输出1 两个0或两个1输出0 因此 可以用异或门连接。而进位 只有AB均为1的时候进位输出1 进位Cout = AB 用与门连接。
全加器
全加器在半加器的基础上 增加了进位 它输入三个数字 两个加数 和 一个进位 Cin
输出结果 和 进位
串行加法器
将四个全加器 每一个的仅为输出连接到下一个的进位输入 就可以构成一个4位串行加法器了,这样构成的加法器连接起来很简单,但是也有不足:每一个全加器计算的时候必须等待它的进位输入产生后才能计算,所以四个全加器并不是同时进行计算的,而是一个一个的串行计算。这样会造成较大的延迟。
并行加法器又叫超前进位加法器(摘自《verilog数字系统设计教程(第二版)》夏宇闻)
需要注意的是:
并行加法器即超前进位加法器是通过推导逻辑运算,提前知道各个位的进位数字,如下公式就是推倒的各位的进位结果。串行加法器是通过我们电路连接一眼就可以看出来的设计,没有经过逻辑推导运算
并行进位公式: