- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
并行乘法器设计
并行乘法器设计
摘 要:介绍了一种可以完成并行二进制数乘法的乘法器,采用树型组合方式,对其结构进行了优化,根据补码的特点改进并行乘法器算法,在得到部分积的基础上,采用平衡的4-2压缩器构成的Wallace树对部分积求和,再用专门的加法器对Wallace产生的结果进行求和得到最终结果。该乘法器可以作为嵌入式CPU内核的乘法单元,整个设计采用VHDL硬件语言进行功能描述,用这种改进Booth2算法实现的乘法器比传统的CSA阵列乘法器速度快、规模也较大。
关键词:乘法器 Booth算法 并行乘法器
1 引 言
随着微处理器性能的提高,人们对高速算术运算单元的性能要求也不断提高。而并行乘法器是现代微处理器芯片的关键部件,它是进行图像处理和数字信号处理的核心,提高乘法器的性能对提高系统的性能具有重要影响。本文根据补码的特点,通过对Booth 算法的改进设计的并行乘法器,始终把提高乘法器的速度作为设计目标;并用VHDL语言进行描述,通过综合布局及布线,最后实现硬件乘法器并达到设计要求。
2并行乘法器的算法与实现方法
2.1并行乘法器的介绍
乘法运算是DSP及CPU中常用的运算形式。最初的乘法运算是依靠软件来实现的。随着VLSI技术的发展以及对乘法器计算速度要求的提高。乘法运算单元逐渐变成了一个硬件的部件。从上世纪六十年代至今,已经提出了许多种乘法运算单元的实现方法。归根到底,各种乘法器运算方式还是先将乘法转换为加法,再通过快速求和的方法来得到最终的计算结果。
乘法器电路根据在速度、功耗、面积、运算精度等方面的要求有各种相应的实现方法。一般地,n位的正整数乘法可以表示为
(1)
其中A和B是n位的乘数与被乘数,P是宽度2n的积,r是运算采用的进制。式(1)中表明,乘法运算是n个部分积Pi的求和过程。部分积Pi通过将A左移i位乘上一位的bi得到。对于二进制运算(r=2),bi只有0和1两种形式,所以其乘法运算形式十分简单。
无论乘法采用何种形式完成,任何一种数制的二进制乘法都可以分为部分积产生和部分积求和两个基本部分[1]。因此,为了提高乘法器的速度,关键在于采取两项措施:一是减少部分积相加的个数,另外一个是减少部分积求和的延时。一般而言,形式简单的方法容易实现,而高速运算却需要复杂的形式。
并行乘法器的情况如下:线性阵列可以进一步将迭代乘法过程完全展开,构成全阵列并行乘法器,但是全阵列乘法器完成n×n位的乘法需要n2个加法器和n2个部分积的产生器,延时正比于n。为了进一步提高运算速度,可以采用斜向进位替代横向进位,加速部分积生成,即使用进位保留加法器(CSA:Carry-Save Adder)。阵列乘法采用序列结构进行部分积求和。当部分积数目很大的时候,还可以将部分积求和网络连接成树结构,其中运用了4:2压缩单元压缩16个部分积。树型结构所需要的硬件资源比全阵列结构少,并且完成n×n位的乘法只需要log n的时间[2],但其连线比阵列结构复杂。
2.2 乘法硬件实现步骤
在硬件上实现并行乘法一般有以下几个步骤:
第一步根据输入的被乘数与乘数产生部分积。
第二步将生成的部分积进行压缩得到和(Sum)与进位(Carry)。目前,最常见的都是利用CSA进行部分积压缩,这种加法器只是将进位从当前位传递到下一位,与采取一般的进位传递加法器(CPA:Carry-Propagation Adder)相比,CSA延时缩短。同时,多个部分积进行压缩时,需要选取合理的并行方案进行。
第三步将Sum和Carry相加产生最终结果。在这里要采用一个高速的64位加法器。由于乘法器基本是由编码,压缩与最终相加三大部分组成。所以其总体性能也由这三部分的设计所决定。
3定浮合并并行乘法器的设计
3.1总体介绍
设参与运算的两个浮点数是A、B,它们的符号位分别为signA、signB,指数和尾数部分分别为eA、eB和fA、fB,则通常浮点乘法运算的数学描述如下:
(2)
表达式2中N可以取0或-1。在采用IEEE 754浮点数格式标准进行的实际操作中,由于尾数为规格化数,所以1≤fA×fB<4。当1≤fA×fB<2时,不进行移位,N=0;当2≤fA×fB<4,发生溢出,规格化右移1位时,N= -1,结果指数的真值是eA+eB+1。浮点乘法器中的计算可以分成指数和尾数两部分,指数的计算包括指数相加和偏移值的修正,以及舍入和/或尾数计算最高位发生溢出时的调整等,尾数的计算就是进行乘法操作,并进行舍入等处理。
3.2 乘法器的尾数部分逻辑设计
尾数乘法器完成浮点数的尾数乘法,定点数的乘法操
原创力文档


文档评论(0)