索阅 100例 首 页| 资 讯| 下 载| 论 坛| 博 客| Webinar| 高 校| 专 刊| 会展| EETV| 百科| 问答| 电路图| 工程师手册| Datasheet

EEPW首页 > 百科 > 定点乘法器

定点乘法器


贡献者:angelazhang    浏览:903次    创建时间:2015-04-30

  定点乘法器
  目录
  1乘法的基本规律
  2第一代乘法器
  3第二代乘法器
  4第三代乘法器
  1乘法的基本规律
  首先看一下十进制数的乘法。为了方便起见,假定十进制数的各位要么为 1要么为0,例如 (1000) ×(1001) :
  从上面的步骤我们可以看到:
  (1)从右到左用乘数的每一位乘以被乘数,每一次乘得的中间结果比上一次的结果往左移一位。
  (2)积的位数比被乘数和乘数的位数要多得多。因此,乘法必须像加法那样处理溢出问题,如果两个32 位的数相乘,积也只有32 位的时候,就会出现溢出。在上面的例子中,我们把十进制数的各位限制为0 或1。因此,每一步的乘法相当简单:
  (1) 如果乘数位是 1,则简单的复制被乘数到合适的位置(ix 被乘数);
  (2) 如果乘数位是 0,则在合适的位置置0
  因为二进制数的各位是0 或1,所以与上面情况类似。
  既然已经知道了乘法的基本规律,下一步就是设计高度优化的乘法器硬件。为了更明了乘法器的原理,在此一一列举乘法器的3 个版本的改进。我们先假定被乘数和乘数都是正数。
  2第一代乘法器
  初始的设计模拟我们刚才提到的乘法流程,硬件结构如图 1.14 所示。假定乘数在32 位乘数寄存器里,64 位的积寄存器初始化为0,显然每一步需要把被乘数左移一位。左移32次之后,被乘数的32 位会被移到左边,因此我们需要64 位的被乘数寄存器,初始状态为低32 位是被乘数,高32 位是0。这个寄存器每一步左移一位,和中间结果对齐,进行相加,相加的结果存在被积寄存器里。同时,乘数寄存器右移以决定是×1 还是×0。
  3第二代乘法器
  经过仔细观察我们可以发现,被乘数寄存器的大部分时间有一半位数是 0,W,也就是说只有一半的位数是有用的。在第一代乘法器中,被乘数左移后的位置添0,因此移位后的乘数和中间结果积相加,不影响结果,那么我们可以保持被乘数不动,将中间结果积右移,因此,被乘数寄存器只要32 位即可。图2.15 和图2.16 说明了以上改进,图2.16 是第二代乘法器的硬件结构,图2.17 是在硬件结构基础之上的工作流程。
  4第三代乘法器
  比较善于节省空间的人们发现,积寄存器浪费的空间正好和乘数寄存器浪费的空间一样,因此,在第三代乘法器中,将积寄存器的右半部分和乘数寄存器结合起来。由图2.18硬件结构可见,乘数寄存器消失了,初始化时将乘数放在积寄存器的右半部分,左半部分是0。图2.19 是建立在图2.18 之上的运算流程。


如果您认为本词条还有待完善,需要补充新内容或修改错误内容,请编辑词条     查看历史版本

开放分类
乘法器    电子器件    

参考资料
百度百科

贡献者
angelazhang    


本词条在以下词条中被提及:

关于本词条的评论共:(0条)
匿名不能发帖!请先 [ 登陆 ]