基于Booth算法的48x30位乘法器的制作方法

文档序号:6383630阅读:1240来源:国知局
专利名称:基于Booth算法的48x30位乘法器的制作方法
技术领域
本发明涉及一种高速、大容量通信技术领域中的乘法器流水线设计,尤其涉及一种基于Booth算法的48x30位乘法器。
背景技术
随着3G通信技术的迅猛发展,TD-SCDMA技术(简称TD技术)也得到广泛应用。目前,TD技术要求各通讯基站及其应用网元实现高精度时钟、时间同步。以往的NTP技术已经无法满足高精度时间同步的需求,从而转向采用高精度时钟、时间同步协议,如IEEE1588协议,来实现TD系统中各网络节点的时间准确同步。在IEEE1588协议中,其标准时间格式为80bits的一个时间计数器。高48bits为表示为时间的秒部分,低32bits表示为时间的纳秒部分。但在硬件处理电路中,对这种IEEE1588协议标准的时间进行处理时,经常需要处理到时间的秒进位、溢出等问题。这就要用到乘法器,而目前主要使用二种实现方式串行乘法器和并行乘法器。串行乘法器,即技术上采用移位相加的算法。这种实现方式的显著缺点是每一个时钟周期做一次移位及加法运算,如图1和图2所示,一个48x30位串行乘法器要完成48x30位乘法运算至少需要30个时钟周期以上才能完成一次计算周期,虽然它消耗的硬件较少,但其处理带宽较低。并行乘法器,即技术上采用直接相乘的计算方法。这种实现方式是通过组合电路的迭代一次性完成所有移位及加法运算,从图3和图4中可以看出,这样完成一次48x30位的乘法运算只需要I个时钟周期就能完成一次计算周期,处理带宽最高。但是它的缺点是消耗的硬件较多、成本高。因此,如何对运算带宽和硬件资源消耗做一个兼顾平衡优化以实现处理带宽和硬件消耗的一个平衡,是目前亟待解决的技术问题。

发明内容
本发明的目的在于提供一种基于Booth算法的48x30位乘法器,以实现处理带宽度和硬件消耗的平衡兼顾。为达到上述目的,本发明提供了一种基于Booth算法的48x30位乘法器,包括Bit位移位控制模块,用于当检测到启动执行乘法控制指示指令有效时,接收30bit位乘数B的输入,控制30bit位乘数B在每个计算周期从低到高逐bit移位;部分积生成器,用于接收48bit位被乘数A的输入以及所述bit位移位控制模块在每个所述计算周期送来的所述乘数B的一组3个bit位的状态值;根据Radix_4Booth算法并结合当前接收到的被乘数A和所述乘数B的一组3个bit位的状态值生成一个部分积;流水累加控制器,用于在所述bit位移位控制模块的驱动下,控制部分积流水线累加器在每个计算周期内对部分积做一次加法运算;
部分积流水线累加器,用于在所述流水累加控制器的控制下,对所述部分积生成器送过来的每组部分积做累加运算;当完成所有部分积运算过程后输出运算结果,并由所述流水累加控制器输出运算结束指示标志。本发明的基于Booth算法的48x30位乘法器是先产生部分积,再对部分积进行累加求和来实现48x30位乘法的运算,由于利用Radix-4Booth算法产生部分积进行流水加法运算可以大幅度减少需要求和的部分积个数,从而缩短了实现乘法运算所需要的时钟周期,同时还对有符号数和无符号数相乘的算法实现了统一。由此可见,其是对传统串行乘法器和并行乘法器在处理带宽和硬件资源消耗上的一种折衷,从而能够使高位宽的乘法器在满足我们系统设计带宽速度需求的基础上,大大降低设计中的硬件资源消耗,显著节约成本。


图1为现有串行乘法器的基于Altera Quartus分析工具的资源消耗情况示意图;图2为现有串行乘法器的基于软件仿真的时序特性示意图;图3为现有并行乘法器的基于Altera Quartus分析工具的资源消耗情况示意图;图4为现有并行乘法器的基于软件仿真的时序特性示意图;图5为本发明的基于Booth算法的48x30位乘法器的架构示意图;图6为本发明的基于Booth算法的48x30位乘法器的基于Altera Quartus分析工具的资源消耗情况示意图;图7为本发明的基于Booth算法的48x30位乘法器的基于软件仿真的时序特性示意图。
具体实施例方式下面结合附图对本发明的具体实施方式
进行详细描述本实施例的基于Booth算法的48x30位乘法器的主要设计思想是利用Radix-4Booth算法产生部分积并对部分积进行流水加法运算,部分积的产生仅由乘数决定,根据Booth算法可以得到任意个部分积,合理地选择部分积生成电路的个数,以提高乘法器的性能,其代价就是多增加部分积生成电路和加法器电路。参考图5所示,本实施例的基于Booth算法的48x30位乘法器包括Bit位移位控制模块、部分积生成器、流水累加控制器和部分积流水线累加器。其中Bit位移位控制模块用于当检测到启动执行乘法控制指示指令有效时,接收30bit位乘数B的输入,控制30bit位乘数B在每个计算周期从低到高逐bit移位。比如在开始计算的第一个计算周期,取乘数B的第-1bit (第一次比较特殊,但实际上没有-lbit,根据算法这里-1bit值就记为0)、第Obit、第lbit,将这3个bit的状态值告诉部分积生成器。当第二个计算周期到来时,取乘数B的第lbit、第2bit、第3bit,并也将这3个bit的状态值告诉部分积生成器。依此类推,直到第十五个计算周期到来时,取乘数B的第27bit、第28bit、第29bit,并也将这3个bit的状态值告诉部分积生成器。部分积生成器用于接收48bit位被乘数A的输入以及bit位移位控制模块在每个计算周期送来的乘数B的一组3个bit位的状态值;根据Radix_4Booth算法并结合当前接收到的被乘数A和乘数B的一组3个bit位的状态值生成一个部分积。流水累加控制器用于在bit位移位控制模块的驱动下,控制部分积流水线累加器在每个计算周期内对部分积做一次加法运算;部分积流水线累加器用于在流水累加控制器的控制下,对部分积生成器送过来的每组部分积做累加运算;当完成所有部分积运算过程后输出运算结果,并由流水累加控制器输出运算结束指示标志。其中部分积流水线累加器的一次累加运算过程是首先将保存在部分积流水线累加器的累加结果缓存器中的初始值取出,然后初始值与本次由部分积生成器送来的当前部分积进行累加,最后将当前累加结果回送到累加结果缓存器保存,以备下一计算周期使用。结合图6所示,可以看出,本实施例的基于Booth算法的48x30位乘法器消耗的硬件逻辑单元相对现有的串行加法器有所增加,但对比于并行乘法器,其消耗的硬件逻辑资源数量大大减少,从而显著降低了设计成本。而结合图7所示,从图中的仿真结果可以看出完成一次48x30位乘法计算,只需要15个时钟周期,其延时相对于现有的串行乘法器将会减少一半。因此,本实施例的基于Booth算法的48x30位乘法器可以完成有符号或无符号48x30位乘法运算,将被乘数经过符号扩展之后,使用Radix-4的Booth算法编码可以大幅度减少需要求和的部分积个数,从而缩短了实现乘法运算所需要的计算周期,同时还对有符号数和无符号数相乘的算法实现了统一。以上的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通工程技术人员对本发明的技术方案作出的各种变形和改进,例如将RadiX-4Booth算法替换为RadiX-8Booth算法或Radix-16Booth算法等,均应落入本发明的权利要求书确定的保护范围内。
权利要求
1.一种基于Booth算法的48x30位乘法器,其特征在于,包括Bit位移位控制模块,用于当检测到启动执行乘法控制指示指令有效时,接收30bit位乘数B的输入,控制30bit位乘数B在每个计算周期从低到高逐bit移位;部分积生成器,用于接收48bit位被乘数A的输入以及所述bit位移位控制模块在每个所述计算周期送来的所述乘数B的一组3个bit位的状态值;根据Radix_4Booth算法并结合当前接收到的被乘数A和所述乘数B的一组3个bit位的状态值生成一个部分积;流水累加控制器,用于在所述bit位移位控制模块的驱动下,控制部分积流水线累加器在每个计算周期内对部分积做一次加法运算;部分积流水线累加器,用于在所述流水累加控制器的控制下,对所述部分积生成器送过来的每组部分积做累加运算;当完成所有部分积运算过程后输出运算结果,并由所述流水累加控制器输出运算结束指示标志。
2.根据权利要求1所述的基于Booth算法的48x30位乘法器,其特征在于,所述部分积流水线累加器的一次累加运算过程如下首先将保存在所述部分积流水线累加器的累加结果缓存器中的初始值取出,然后所述初始值与本次由所述部分积生成器送来的当前部分积进行累加,最后将当前累加结果回送到所述累加结果缓存器保存,以备下一计算周期使用。
3.根据权利要求2所述的基于Booth算法的48x30位乘法器,其特征在于,所述 Radix-4Booth 算法替换为 Radix_8Booth 算法或 Radix_16Booth 算法。
全文摘要
本发明公开了一种基于Booth算法的48x30位乘法器,其包括Bit位移位控制模块、部分积生成器、流水累加控制器和部分积流水线累加器。该乘法器先产生部分积,再对部分积进行累加求和来实现48x30位乘法的运算,由于利用Radix-4Booth算法产生部分积进行流水加法运算可以大幅度减少需要求和的部分积个数,从而缩短了实现乘法运算所需要的时钟周期,同时还对有符号数和无符号数相乘的算法实现了统一。由此可见,其是对传统串行乘法器和并行乘法器在处理带宽和硬件资源消耗上的一种折衷,从而能够使高位宽的乘法器在满足我们系统设计带宽速度需求的基础上,大大降低设计中的硬件资源消耗,显著节约成本。
文档编号G06F7/52GK102999311SQ20121052765
公开日2013年3月27日 申请日期2012年12月10日 优先权日2012年12月10日
发明者张友能 申请人:张友能
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1