第一章加法器一、数据格式
1 .定点数表示法: x=x0x1x2…xn,x0:符号位,0表示正,1表示负。 2 .浮点表示法:一台机器的浮点数由阶码、尾数及其符号位组成(尾数:用定点表示,给出有效数字的位数决定浮点数的表示精度; 步骤代码:用整数表示,表示数据中小数点的位置,决定浮点数的表示范围。 32位浮点数的IEEE754标准格式为: s :浮点数的符号位,1位,0表示正数,1表示负数。 m :尾数、23位、用小数表示,小数点位于尾数的开头。 (阶码,8位阶码采用隐式方式,移动符号表示正负指数。
码移动方法对两个指数大小的比较和阶操作比较方便,因为阶码域值大者指数值也大。 在该方式情况下,在将浮点数的指数真值e变更为次数代码e时,在指数e上加上一定的偏移值127(0111111 ),即,E=e 127 .归一化后的32比特浮点数x的真值, x=((-1 ) s)1.m )2E-127 e=E-127归一化后64位浮点数x的真值可以表示为x=(-1 ) s)1.m ) 2e-1027的浮点数的尾数为如果阶数代码e为0且尾数m也为0,则表示的真值x为0,并且组合编码比特s为0或1,具有正和负的零分量。 如果阶代码e为全1且尾数m为全0,则所表达的真值x为无限大,从而组合码比特s为0或1,也有和-的区分。 因此,在32位浮点数表示中,除了e为全0和全1(255 ) 10且表示零和无限大的特殊情况之外,指数的偏移值选择127 ) 0111111,而不是128(1000000 )。 对于规范化浮点数,e的范围为1到254,而真正的指数值e为- 126到127。 因此,32位浮点数表示的绝对值范围为10-38到1038 (用10的幂表示)。
二.加法器
的所有加、减、乘、除四则运算,最终都是转换为加运算实现的,所以加运算是运算电路的核心。 实现半加法运算的电路称为半加法器(HalfAdder )。 半激励有两个二进制输入,将输入的值相加,并将结果输出到“和”(Sum )和“进位”(Carry )。 半加法器可以生成进位值,但半加法器本身不能处理进位值。
S=A B C=A B位全加法器:
全加法器的三个二进制输入中,一个是进位值的输入,所以全加法器可以处理进位值。 全加法器可以由两个半加法器组合而成。 si=(aibi ) cici1=(aibi ) ci ) aibi ) )三、并行加法器
在并行加法器中,全加法器的位数和操作数的位数相同,可以同时加到各位上。 影响速度的主要是传递进位信号的进位链。 优化设计的主要目标是快速、低功耗、资源(面积)开销小,其关键是构想快速、高效的进位算法和结构。 一流的高速加法器有超前进位加法器、进位跳跃加法器、树形结构加法器、对数进位跳跃加法器、混合进位/选择进位加法器、最高位进位级联进位加法器等。 这些快速、高效的进位方法一般是在进行进位时的改进或进位混合。 因此,超前进位加法器(CLA )自然成为优化设计比较的标准。 在结构方面,行波进位加法器是最简单的整数加法器; 其时间复杂度为o(n )。 对于位数少的加法,进位加法器是有效的,但在长位数的加法中,由于该加法器的时间复杂度为o(n^-0.5 ),因此其效果不明显。 由于超前进位加法器具有O(log2n的时间复杂度,因此是最快的加法器算法。 超前进位加法器由于速度快、结构模块化而得到广泛应用。 该算法实现了利用大量硬件开销产生进位信号的电路,运算时间的减少比较明显。
1、行波进位加法器从上图可以看出,n个1位全加法器(FA )可以连接到一个n位行波进位加减法器上。 图中左边还表示单编码比特法的溢出检测逻辑; Cn=Cn-1时,运算没有溢出; 另一方面,CnCn-1时,运算中存在溢出,通过异或门产生溢出信号。 对于1比特全加法器(FA )来说,Si的时间延迟为4T )各级异或门延迟为2T ),而Ci 1的时间延迟为4T。 这里,t被定义为与单级逻辑电路对应的单位栅极延迟量。 t通常使用“与非”门或“与非”门的时间延迟作为测量单位。 n位行波进位加法器的延迟时间ta是ta=n2T 6t=(2n 6) T 6T加上溢出到最下位两极异或门的异或门的合计时间,2t是各进位链的延迟时间。
2、进行进位前加法器(CLA )
进位链可以有效减少进位延迟,使进位门产生进位
,各进位彼此独立,不依赖于进位传播。因此延迟非常小,速度非常高。 设一个n位的加法器的第i位输入为ai、bi、Ci,输出si和Ci+l,其中ci是低位来的进位,ci+l(i =n-1,n-2,⋯,1,O)是向高位的进位,Co是整个加法器的进位输入,而Cn是整个加法器的进位输出。则有: Si = ai + bi +Ci (1) Ci+1 = ai&bi + Ci&(ai +bi) (2) 令: Gi = ai&bi Pi = ai + bi 则有:Ci+l = Gi +Pi•Ci 只要Gi = ai&bi = l,就会产生向Ci+l位的进位,称Gi为进位产生函数;同样,只要Pi = ai + bi =l,就会把Ci传递到Ci+1位,所以称Pi为进位传递函数。随着位数的增加式(2)会加长,但总保持三个逻辑级的深度,因此形成进位的延迟是与位数无关的常数。一旦进位(Cl---Cn-1)算出以后,和也就可由式(1)得出。
4-2压缩加法器主要应用于乘法器的运算。整个乘法器的速度,主要有三部分组成:Booth 编解码单元或APO 编解码单元、4-2压缩单元与CLA 快速求和单元。APO编码是完成缩减部分积数量的算法,每次扫描2位数据,将部分积数量缩减了50%。31位乘数(符号位取0)采用APO算法编码后与被乘数相乘得到16 行部分积;接着基于4-2压缩器的第一级4个压缩单元将部分积压缩成Carry、Sum形式的两行部分积共4组,之后;第二级2个压缩单元将前面的4组8行数据再压缩成Carry、Sum形式的两行部分积共2组,之后;第三级1个压缩单元将前面的2组4行数据再次压缩成Carry、Sum形式的两行部分积共1组2行数据。最后用64位超前进位加法器(CLA)完成最终两行部分积的快速求和结果。乘法器总共需APO算法4级门延迟 + 三级4-2压缩加法器(3*6 )18级门延迟 =22级门延迟。因64位超前进位加法器是使用流水部件,延迟不计算。如果一个门延迟是小于23PS,那么32位乘法器有望速度能达到0.5ns。占用2个时钟周期。
光走过一米的距离大约需3.3ns,如果走过30纳米的距离大约需0.0001ps,而电信号,由于电容、电感、电阻的存在就慢多了。