第四讲 定点运算(乘法).ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四讲 定点运算(乘法) 本讲主要内容 原码一位乘法 原码两位乘法 原码乘法的硬件实现 补码一位乘法(Booth乘法) Booth乘法的硬件实现 补码两位乘法 4.补码一位乘逻辑原理图 R0 → R1 → ynyn+1 R2 计数器i 部分积 z 被乘数x 乘数 y +1 LDR0 LDR1 T1, T2, … +1 Ti Q Q 加法器 R S 启动 Cx ?f + - yn+1 yn yn+1 yn 多开关路 原 反 10 01 Q Q [注] 被乘数寄存器R2的每一位用原码(触发器Q端)或 反码(触发器Q端)经多路开关送出;送[-x]补时, 即送R2反码且在加法器最末为加1; (2) R0保存部分积,其符号与加法器符号位?f始终一致。 (3) 当计数器i=n+1时,封锁LDR1、LDR0信号,使最后 一步不移位。 * * 1. 分析笔算乘法 A = – 0.1101 B = 0.1011 A×B = – 00 . 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个位积一起相加 乘积的位数扩大一倍 × 乘积的符号心算求得 ? 6.3 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.01[0 ? A + 0. 1( A +0.1A)] = 0.1{A +0.1[ 0 ? A+0.1(A + 0.1A)]} = 2-1{A +2-1[ 0 ? A+2-1(A + 2-1(A+0))]} ① ② ⑧ 第一步 被乘数A + 0 第二步 右移 一 位,得新的部分积 第八步 右移 一 位,得结果 ③ 第三步 部分积 + 被乘数 … 右移一位 6.3 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 . 0 0 1 1 1 0 . 1 0 0 1 1 1 1 . 0 0 0 1 1 1 1 乘数为 1,加 被乘数 0 . 1 0 0 0 1 1 1 1 1,得结果 1 0 1 1 = 0 . 0 1 1 0 1,形成新的部分积 1 1 0 1 = 0 . 1 0 0 1 1,形成新的部分积 1 1 1 0 = 0 . 0 1 0 0 1,形成新的部分积 1 1 1 1 = 部 分 积 乘 数 说 明 6.3 + + + + 小结 被乘数只与部分积的高位相加 由乘数的末位决定被乘数是否与原部分积相加, 然后 1 位形成新的部分积,同时 乘数 1 位  (末位移丢),空出高位存放部分积的低位。 硬件 3 个寄存器,具有移位功能 1 个全加器 6.3 乘法 运算可用 加和移位实现  n = 4,加 4 次,移 4 次 4. 原码乘法 (1) 原码一位乘运算规则 以小数为例 设[x]原 = x0. x1x2 xn … [y]原 = y0. y1y2 yn … = (x0 y0). x*y* [x ? y]原 = (x0 y0).(0. x1x2 xn)(0.y1y2 yn) … … 式中 x*= 0. x1x2 xn 为 x 的绝对值 … y*= 0. y1y2 yn 为 y 的绝对值 … 乘积的符号位单独处理 x0 y0 数值部分为绝对值相乘 x* ? y* 6.3 (2) 原码一位乘递推公式 x*? y* = x*(0.y1y2 yn) … = x*(y12-1+y22-2+ + yn2-n) … = 2-1(y1x*+2-1(y2x*+ 2-1(ynx* + 0) )) … … z1 zn z0 = 0 z1 = 2-1(ynx*+z0) z2 = 2-1(yn-1x*+z1) zn = 2-1(y1x*+zn-1) … … z0 6.3 例6.21 已知 x = – 0

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档