Booth编码在补码乘法中的应用
摘要:在数字信号处理中,乘法器是运算单元的核心部件之一,通过Booth编码减少部分积的数量,能提高乘法运算的速度。该文分析了优化乘法器的两种思路,推导了2基Booth编码及4基Booth编码,指出在实现乘法器中优先考虑4基Booth编码的原因,阐述了在应用Booth编码时注意的问题,在实际应用中验证了该方案的有效性和稳定性。
关键词:补码 Booth编码 乘法器
在数字信号处理芯片或一般微处理器芯片中,乘法器是芯片的核心之一,是处理器中进行数据处理的关键部件。乘法器完成一次操作的周期基本上决定了处理器的主频。乘法器的速度和面积优化对于整个处理芯片的性能来说是非常重要的。为了加快乘法器的执行速度,减少乘法器的面积,有必要对乘法器的算法、结构及电路的具体实现做深入的研究。
乘法器工作的基本原理是首先生成部分积,再将这些部分积相加得到乘积,如对于补码形式N位有符号数乘法A×B来说,常规的乘法运算会产生N个部分积,这和一般手算乘法的过程没有什么区别。
从乘法器工作的基本原理可以看出,要提高乘法运算的性能,可以从两方面入手,一个是减少部分积的数量,另一个是缩短部分积的相加的运算时间。在节省部分积相加的运算方面,通常使用3:2CSA(Carry Saved Add)等压缩编码方法。而该文就是针对第一方面,就如何减少部分积的数量,着重推导Booth编码原理,并简要分析了Booth编码的算法实现中的关键点。
1基和4基Booth编码
booth算法乘法例题讲解通过(5)式可以看出,A和B的乘积P,也可以通过对B/-B进行移位相加得到,这就是4基Booth编码,共产生[n/2]个部分积([*]表示向上取整运算)。
从上面的推导过程可以看出,数A还可以进行其他基的Booth编码等,但是编码复杂度有所增加。另外,主要考虑到在芯片实现时,出现部分积不是的这种情况,使得部分积不是被乘数左移若干位的情况,这种情况下要在芯片实现增加很多难度。例如,8基的Booth编码中,将会出现-3B/3B这两种情况,不是简单的把B左移一位或者两位能够实现的。因此,在芯片实现时往往优先考虑4基的Booth编码,使部分积的数量相对原来减少一半。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论