《定点运算乘法》PPT课件.ppt_第1页
《定点运算乘法》PPT课件.ppt_第2页
《定点运算乘法》PPT课件.ppt_第3页
《定点运算乘法》PPT课件.ppt_第4页
《定点运算乘法》PPT课件.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四讲,定点运算(乘法),本讲主要内容,原码一位乘法 原码两位乘法 原码乘法的硬件实现 补码一位乘法(Booth乘法) Booth乘法的硬件实现 补码两位乘法,1. 分析笔算乘法,A = 0.1101 B = 0.1011,AB = 0.10001111,0 . 1 1 0 1,0 . 1 0 1 1,1 1 0 1,1 1 0 1,0 0 0 0,1 1 0 1,0 . 1 0 0 0 1 1 1 1,符号位单独处理,乘数的某一位决定是否加被乘数,4个位积一起相加,乘积的位数扩大一倍,乘积的符号心算求得,?,2. 笔算乘法改进,A B = A 0.1011,= 0.1A + 0.00A + 0.001A +0.0001A,= 0.1A + 0.00A + 0.001( A +0.1A),= 0.1A + 0.010 A + 0. 1( A +0.1A),= 0.1A +0.1 0 A+0.1(A + 0.1A),= 2-1A +2-1 0 A+2-1(A + 2-1(A+0),第一步 被乘数A + 0,第二步 右移 一 位,得新的部分积,第八步 右移 一 位,得结果,第三步 部分积 + 被乘数,3. 改进后的笔算乘法过程(竖式),0 . 0 0 0 0,0 . 1 1 0 1,0 . 1 1 0 1,0 . 1 1 0 1,0 . 0 0 0 0,0 . 1 1 0 1,初态,部分积 = 0,乘数为 1,加被乘数,乘数为 1,加被乘数,乘数为 0,加 0,乘数为 1,加 被乘数,小结,被乘数只与部分积的高位相加,硬件,3 个寄存器,具有移位功能,1 个全加器,乘法 运算可用 加和移位实现 n = 4,加 4 次,移 4 次,4. 原码乘法,(1) 原码一位乘运算规则,以小数为例,数值部分为绝对值相乘 x* y*,(2) 原码一位乘递推公式,z0,例21,已知 x = 0.1110 y = 0.1101 求x y原,解:,数值部分的运算,0 . 0 0 0 0,0 . 1 1 1 0,0 . 1 1 1 0,0 . 0 0 0 0,0 . 1 1 1 0,0 . 1 1 1 0,部分积 初态 z0 = 0,逻辑右移,1 1 0 1,=,=,=,=,逻辑右移,逻辑右移,逻辑右移,+,+,+,+,+ x*,+ 0,+ x*,+ x*, 数值部分按绝对值相乘,x* y* = 0. 1 0 1 1 0 1 1 0,则 x y原 = 1. 1 0 1 1 0 1 1 0,特点,绝对值运算,逻辑移位,例21 结果,用移位的次数判断乘法是否结束,(3) 原码一位乘的硬件配置,计数器:对移位的次数进行计数,以便判断乘法运算是否结束。 当计数器i=n时,计数器i的溢出信号使控制触发器Cx 置0,关闭时序脉冲T,乘法操作结束。,(4) 原码两位乘(提高乘法运算速度),原码乘,符号位 和 数值位 部分 分开运算,两位乘,每次用 乘数的 2 位判断 原部分积 是否加 和 如何加 被乘数,1 1,1 0,0 1,0 0,3 ?,先 减 1 倍 的被乘数 再 加 4 倍 的被乘数,(5) 原码两位乘运算规则,例22,已知 x = 0.111111 y = 0.111001 求xy原,0 0 0 . 0 0 0 0 0 0,0 0 0 . 1 1 1 1 1 1,0 0 0 . 1 1 1 1 1 1,0 0 . 1 1 1 0 0 1,0,初态 z0 = 0,+ x*, Cj = 0,0 0 1 . 1 1 1 1 1 0,+ 2x*,Cj = 0,1 1 1 . 0 0 0 0 0 1, x*, Cj = 1,0 0 0 . 1 1 1 1 1 1,+ x*, Cj = 0,0,0,1,补码右移,补码右移,解:,数值部分的运算,补码右移,+,+,+,+, 数值部分的运算,x* y* = 0. 1 1 1 0 0 0 0 0 0 1 1 1,则 x y原 = 1. 1 1 1 0 0 0 0 0 0 1 1 1,例22 结果,特点,绝对值的补码运算,算术移位,用移位的次数判断乘法是否结束,(6) 原码两位乘和原码一位乘比较,绝对值,绝对值的补码,逻辑右移,算术右移,n,n,思考 n 为奇数时,原码两位乘 移 ?次,最多加 ?次,5. 补码乘法,设 被乘数,乘数, 被乘数任意,乘数为正,同原码乘,但 加 和 移位 按 补码规则 运算,乘积的符号自然形成, 被乘数任意,乘数为负,乘数y补,去掉符号位,操作同 ,最后 加x补,校正,(1) 补码一位乘运算规则,以小数为例,1)、当被乘数x符号任意,乘数y符号为正时: 根据补码定义:,由于(y1y2yn)是大于或等于1的正整数,根据模运算性质(大于2的部分全部丢掉)有:2 (y1y2yn) = 2,即:,Booth乘法公式证明,2)、 当被乘数x符号任意,乘数y符号为负时:,又因 ( 0.y1y2yn )0,所以:,(mod2),= x补,= x补 y,为推导出逻辑实现的分步算法,将上式展开得到各项部分积累加的形式。,( yn+1是增加的附加位,初值为0 ),公式展开,递推公式,z0补= 0,z1补= 2-1(yn+1yn)x补+z0补 yn+1 = 0,zn补= 2-1(y2y1)x补+zn-1补,x y补= zn补+(y1y0)x补,最后一步不移位,如何实现 yi+1yi ?,0 0,0 1,1 0,1 1,0,1,-1,0,由此可见: 每次都是在前次部分积的基础上,由(yi+1-yi ) 决定对x补的操作,然后再右移一位,得到新的部分积;重复进行。,yn+1,yn的作用: 开始操作时,补充一位yn+1 , 使其初始为0。由yn+1 yn 判断进行什么操作;然后再由ynyn-1 判断第二步进行什么操作 。,若 yn yn1 =1 则 yi1-yi =1 做加x补运算;,ynyn1 = 则 yi1-yi= - 做加-x补运算;,则 yi1-yi= 0 zi加0,即保持不变;,补码一位乘的运算规则,(1) 如果 yn=yn+1 ,则部分积 zi 加0,再右移一位;,(2) 如果 yn yn+1=01 ,则部分积 zi 加x补,再右移一位;,(2) 如果 yn yn+1=10 ,则部分积 zi 加-x补, 再右移一位;,如此重复n + 1步,但最后一步不移位。 包括一位符号位,所得乘积为2n+1位,其中n为尾数位数。,算法流程图,例23,已知 x = +0.0011 y = 0.1011 求xy补,解:,0 0 . 0 0 0 0,1 1 . 1 1 0 1,1 1 . 1 1 0 1,0 0 . 0 0 1 1,1 1 . 1 1 0 1,0 0 . 0 0 1 1,1 1 . 1 1 0 1,1 . 0 1 0 1,0,x补 = 0.0011,y补 = 1.0101,x补 = 1.1101,+x补,+x补,+x补,+x补,+x补, xy补 =1.11011111,最后一步不移位,补码右移,补码右移,补码右移,补码右移,+,+,+,+,+,0 0.0 0 0 0 1. 0 0 1 1 0 yn+1=0 + 0 0.1 0 1 1 ynyn+1=10, 加-x补 0 0.1 0 1 1 0 0.0 1 0 1 1 1 0 0 1 1 右移一位 + 0 0.0 0 0 0 ynyn+1=11, 加0 0 0.0 1 0 1 0 0.0 0 1 0 1 1 1 0 0 1 右移一位 + 1 1.0 1 0 1 ynyn+1=01, 加x补 1 1.0 1 1 1 1 1.1 0 1 1 1 1 1 1 0 0 右移一位 + 0 0.0 0 0 0 ynyn+1=00, 加0 1 1.1 0 1 1 1 1.1 1 0 1 1 1 1 1 1 0 右移一位 + 0 0.1 0 1 1 ynyn+1=10, 加-x补 0 0.1 0 0 0 1 1 1 1 1 0 最后一位不移位,例:x补=1.0101,y补=1.0011, 求xy补=? -x补=0.1011,xy补=0.10001111,部分积,乘数 yn yn+1,说明,0 0 0 0 0 0 1 0 1 1 0 0 yn+1=0 + 0 0 0 0 0 0 ynyn+1=00, 加0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 右移一位 + 1 1 0 0 1 1 ynyn+1=10, 加-x补 1 1 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 1 右移一位 + 0 0 0 0 0 0 ynyn+1=11, 加0 1 1.1 0 0 1 1 1.1 1 0 0 1 1 0 1 0 1 右移一位 + 0 0 1 1 0 1 ynyn+1=01, 加x补 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 右移一位 + 1 1 0 0 1 1 ynyn+1=10, 加-x补 1 1 0 1 1 1 1 1 1 0 1 0 最后一位不移位,x补=001101,y补=10110, -x补=110011,xy补=101111110,部分积,乘数 yn yn+1,说明,例:x=13, y=-10 求xy=?,xy = -01000 0010=-82H=-130,(2) Booth 算法的硬件配置,4.补码一位乘逻辑原理图,注 被乘数寄存器R2的每一位用原码(触发器Q端)或 反码(触发器Q端)经多路开关送出;送-x补时, 即送R2反码且在加法器最末为加1; (2) R0保存部分积,其符号与加法器符号位f始终一致。 (3) 当计数器i=n+1时,封锁LDR1、LDR0信号,使最后 一步不移位。,不带符号的阵列乘法器,设有两个不带符号的二进制整数 Aam1a1a0 , Bbn1b1b0 它们的数值分别为a和b,即:,在二进制乘法中,被乘数A与乘数B相乘,产生mn位乘积P: Ppmn1p1p0 乘积P 的数值为:,pm+n-1 pm+n-2 pm+n-3 pn-1 p1 p0,am-1 am-2 a1 a0 ) bn-1 b1 b0 am-1b0 am-2b0 a1b0 a0b0 am-1b1 am-2b1 a1b1 a0b1 . . . . . . +) am-1bn-1 am-2bn-1 a1bn-1 a0bn-1,(1) 习惯方法运算过程:,带符号的阵列乘法器,(1) 对2求补器电路,例1: 对1010求补。,例2: 对1011求补。,方法: 从数的最右端a0开始,由右向左, 直到找出第一个“1”,例如ai1, 0in。这样, ai以左的每一个输入位都求反, 即1变0, 0变1。,包括求补级的乘法器又称为符号求补的阵列乘法器。 在这种逻辑结构中,共使用三个求补器: 两个算前求补器 作用是:将两个操作数A和B在被不带符号的乘法 阵列(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论