采用Booth算法的16×16并行乘法器设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
采用Booth算法的16×16并行乘法器设计 (西南交通大学计算机与通信工程学院 四川成都 610031)   摘 要:介绍了一种可以完成16位有符号/无符号二进制数乘法的乘法器。该乘法器采用了改进的Booth算法,简化了部分积的符号扩展,采用Wallace树和超前进位加法器来进一步提高电路的运算速度。本乘法器可以作为嵌入式CPU内核的乘法单元,整个设计用VHDL语言实现。 ??? 关键词:乘法器;Booth算法;Wallace树;超前进位加法器   在专用集成电路设计中,面积小但功能强大的CPU内核可以为设计提供很大的方便。而乘法器又是CPU中一个重要的部件,本文分析了设计乘法器所用到的算法并提供了乘法器的设计方案。乘法器的处理过程大致相同,都是先生成部分积再相加。为了提高乘法器的性能,可以从减少部分积的个数,对部分积的相加采用并行加法。采用Booth算法[1]可以使部分积的个数减少一半[1],采用Wallace树行结构的加法器完成N个部分积需要lgN次加法时间[2],最后再使用超前进位加法器来减少加法运算中进位传播时间[3]。本文设计的乘法器由Booth编码、Wallace树形结构和超前进位加法器3部分组成。 1 乘法器结构   本乘法器提供16位二进制有符号/无符号乘法运算。为了区分是有符号还是无符号数,增加了1位即第17位用于符号控制,有符号则为1,无符号则为0。无符号数的范围是0~216-1,有符合的范围是-215~215-1。乘法器的结构如图1所示。   在执行一次乘法运算时,首先乘数和被乘数扩展1位符号控制位以判断是有符号数还是无符号数,然后用并行Booth编码器对乘数进行编码,根据Booth编码输出并行生成部分积。生成所有部分积后需要对部分积进行符号扩展以便进行相加,然后用Wallace树形结构加法器将部分积相加得到32位乘法结果。 2 Booth算法   在乘法器设计中大都采用改进Booth算法以减少部分积,简化电路和提高运算速度。改进的Booth算法的原理如下:   设乘数: ??? 那么乘数Y也可以表示为: 其中n是偶数,如果是奇数位的数则需要扩展1位。   根据式(2)可以知道部分积只有位数的一半,而且根据Y2t-1,Y2t,Y2t+1的不同,与被乘数相乘得到的部分积也不同。表1列出了不同的Y2t-1,Y2t,Y2t+1所对应的对被乘数的操作。 ??? 因为改进的Booth算法要求乘数的位数为偶数,所以应将乘数符号扩展(乘数为负数是前面扩展2个‘1’,否则扩展2个‘0’)到18位,然后根据Booth编码得到部分积,得到部分积后需要对部分积进行相加。由于操作数可以是有符号数也可以是无符号数,所以在相加过程中应该考虑到符号扩展以便正确相加。由于乘数扩展到18位,所以产生的部分积有9项,最后一个部分积不需要符号扩展,所以只需要扩展前面8个部分积且符号扩展值为si(i=0..7),全部相加得到结果是34位。我们可以得到符号扩展的和S如下:   由于结果只有低32位有效,所以计算符号扩展的和只需要计算到低32位即可。 ??? 所以:   从式(5)可以看出,对部分积进行符号扩展即将17位部分积的最高位(符号扩展位)取反,再将符号位左边1位置‘1’,还要在最后结果的第17位加上1个‘1’。 3 Wallace树   Wallace树算法是对部分积归约的一种树形算法,他利用CSA(Carry Save Adder)把3个部分积简化为2个部分积,2个CSA可以构成1个4-2压缩器,如图2所示。我们用CSA和4-2压缩器构造过图3的Wallace树将部分积化简为2个32位的数,再通过32位超前进位加法器得到结果。 4 结 论   该乘法器用VHDL语言实现整个设计,实现乘法器用到的门数为4 942门。本乘法器所采用的改进Booth算法和Wallace数化简部分积也是设计高性能CPU通常采用的方法,可以完成16×16无符号/有符号数的乘法运算,整个设计简单高效。还可以将乘法部件应用到其他设计中去。

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档