基于混合压缩结构的部分积压缩树生成方法

文档序号:6388435阅读:225来源:国知局
专利名称:基于混合压缩结构的部分积压缩树生成方法
技术领域
本发明涉及的是一种基于混合压缩结构的部分积压缩树生成方法,用于数字信号处理器中的高速乘法器或高速乘加单元的设计,属于数字信号处理技术领域。
背景技术
乘法器或乘加单元是各种数字计算芯片,尤其是数字信号处理芯片(DSP)的关键运算单元。Booth编码的Wallace-tree乘法器或者非Booth编码的Wallace-tree乘法器是各种广泛应用的乘法器架构中最具有代表性的。乘法通常可分为三步产生部分积;将部分积压缩得到两个中间结果;最后将两个中间结果用加法器相加得到最后结果。其中部分积压缩是整个乘法操作中花费时间最长的部分。2002年8月6日-8日国际电子电气工程师协会专用集成电路亚太会议(ASIC,2002.2002 IEEE Asia-Pacific Conference on,6-8 Aug.2002.)论文集中《一种高性能基于乘法算术操作的函数生成器》(A HighPerformance Function Generator for Mulitplier-Based ArithmeticOperations)一文公开了采用基于3∶2压缩器、4∶2压缩器等压缩器的Wallace-tree实现部分积压缩树程序生成方法。基于3∶2压缩器的部分积压缩树的压缩比不够高,且其部分积压缩树不够规则4∶2压缩器本质上完成了两个3∶2压缩器串联的功能。通过电路的优化,通过一个4∶2压缩器只需3个异或门的时延,而不需要两个3∶2压缩器的4个异或门的时延。此外用4∶2压缩器生成的部分积压缩树较为规则。然而,用4∶2压缩器并不保证使部分积压缩树的时延特性达到最佳;而基于其他压缩器的部分积压缩树由于其电路的复杂,其时延特性不如基于3∶2压缩器的部分积压缩树或者基于4∶2压缩器的部分积压缩树。

发明内容
本发明的目的在于克服现有技术的不足,提供一种基于混合压缩结构的部分积压缩树生成方法,基于3∶2压缩器和4∶2压缩器混合构建的Wallace-tree结构,使得部分积压缩树可以充分利用3∶2压缩器速度快,面积小的优点和4∶2压缩器结构规则的特点,尽可能减少部分积压缩树的时间和面积,减少乘法或乘加单元的总时延同时减少其面积,为大幅度提高数字信号处理器的频率和性能,降低芯片成本提供可能。
为实现这样的目的,本发明基于Wallace-tree结构,结合3∶2压缩器和4∶2压缩器的特点,以生长的观点来构造部分积压缩树。本发明以一个4∶2压缩器作为整个部分积压缩树的根基,在这个基上可以向上生长两个分枝或者直接接受四个部分积信号和一个进位输入信号。若生长分枝,根据所要压缩的信号数确定采用4∶2压缩器还是3∶2压缩器,如果在这两个分枝上可最多接受10个(4∶2压缩器)或6个(3∶2压缩器)的信号数目仍小于所要压缩的信号数,则在这些分枝上以各自的压缩率继续生长分枝,直到顶部分枝所能接受的信号数达到或超过所要压缩的信号数。同时为了保持部分积压缩树的规则性,规定只有部分积压缩树的最高层才有可能由3∶2压缩器构成,并且除了次高层以外,底下层上生长的分枝是完备的,也就是说,该层上的所有单元都对应两个分枝,由此可确定不同列上压缩树的结构,完成整个部分积压缩树的生成过程。
本发明的具体步骤如下1.数据输入及初始化根据所要实现的乘法器的位数,确定乘法器部分积的总列数以及每一列上要压缩的部分积的个数,并初始化所有列和层上的进位保留信号数与进位输出信号数以及当前列序号和当前层序号。
2.根基生长从第一列开始,若所要压缩的信号数小于4就以一个3∶2压缩器作为整个部分积压缩树的根基,也就是整个压缩树的第一层,否则以一个4∶2压缩器作根基。
一般情况下,所要压缩的信号数大于4,本发明以一个4∶2压缩器作为整个部分积压缩树的根基,在这个根基上可以向上生长两个分枝或者直接接受四个部分积信号和一个进位输入信号。
3.数据更新根据新生长的层,更新当前层所能接受的最大信号数以及当前层产生的进位保留信号数和进位输出信号数;把当前列要压缩的部分积的个数加上前一列更高一层的进位保留信号与进位输出信号的个数作为当前列要压缩的信号个数。如果所要压缩的信号数大于当前层所能接受的最大信号数以及当前层产生的进位保留信号数和进位输出信号数,则需要生长分枝。4∶2压缩器可最多接受10个信号,3∶2压缩器可最多接受6个信号。
4.分枝生长判断当前层要压缩的信号个数是否大于由4∶2压缩器构成两个分枝时所能接受的最大信号数,如果大于,那么压缩树的当前层采用4∶2压缩器,否则判断当前层要压缩的信号个数是否大于由3∶2压缩器构成两个分枝时所能接受的最大信号数,如果大于则当前层采用4∶2压缩器,否则当前层采用3∶2压缩器。如果在这两个分枝上可最多接受的信号数目仍小于所要压缩的信号数,则需要在这些分枝上以各自的压缩率继续生长分枝,直到顶部分枝所能接受的信号数达到或超过所要压缩的信号数。然后将当前列的序号加1,并令当前层的序号为1,继续下一列的压缩树的构造。
5.重复上述步骤,直到所有列上的压缩树生长完成,完成部分积压缩树构造。
本发明采用的基于混合压缩结构的部分积压缩树生成方法,充分利用3∶2压缩器速度快,面积小的优点和4∶2压缩器结构规则的特点,能避免基于3∶2压缩器的部分积压缩树的压缩比不够高,所构成的部分积压缩树也不够规则的问题,同时又能避免基于4∶2压缩器的部分积压缩树不佳的时延特性等问题,是一种有效和简捷的部分积压缩树生成方法。本发明减少了乘法或乘加单元的总时延,为大幅度提高数字信号处理器的频率和性能,降低芯片成本提供可能。


图1为本发明基于混合压缩结构的部分积压缩树生成方法流程图。
图2本发明基于混合压缩结构的部分积压缩树,基于3∶2压缩器的部分积压缩树和基于4∶2压缩器的部分积压缩树的时延特性比较图。
具体实施例方式
为更好地理解本发明的技术方案,以下结合附图及具体的实施例作进一步描述。
图1是本发明所涉及的基于混合压缩结构的部分积压缩树的方法流程图。包括如下具体步骤1.数据输入及初始化输入乘法器部分积的总列数,每一列上要压缩的部分积的个数,并初始化所有列和层上的进位保留信号与进位输出信号数以及当前列序号和当前层序号。判断当前列数是否大于乘法器部分积的总列数,如果大于,那么压缩树构造结束,否则继续执行下一步。
2.根基生长若所要压缩的比特数不小于4就以一个4∶2压缩器作为整个部分积压缩树的根基,否则以一个3∶2压缩器作根基。
3.数据准备根据新生长的层,更新当前层所能接受的最大信号数以及当前层产生的进位保留信号数和进位输出信号数;把当前列要压缩的部分积的个数加上前一列更高一层的进位保留信号与进位输出信号的个数作为当前列要压缩的信号个数。
4.分枝生长判断要压缩的信号个数是否大于当前层由4∶2压缩器构成时所能接受的最大信号数,如果大于,那么压缩树的当前层采用4∶2压缩器,同时当前层的序号加1,然后跳转到步骤3;否则判断当前层要压缩的信号个数是否大于当前层由3∶2压缩器构成时所能接受的最大信号数,如果大于则当前层采用4∶2压缩器,否则当前层采用3∶2压缩器,然后将当前列的序号加1,并令当前层的序号为1,继续下一列,跳转到步骤2。
5.重复上述步骤,完成下一列的压缩树生长,直到所有列上的压缩树生长完成,完成部分积压缩树构造。
图2是本发明基于混合压缩结构的部分积压缩树,基于3∶2压缩器的部分积压缩树和基于4∶2压缩器的部分积压缩树的时延特性比较图。它描述了三种不同结构的Wallace-tree在压缩不同比特数时的最大时延特性比较(已将相应伴随树的进位信号考虑在内)。图2中以一个异或门的时延作为单位时延并假设每棵伴随树的结构与当前的部分积压缩树相同。可以发现,当部分积的个数大于7的情况下混合树的时延是最小的。比如部分积个数为24时,基于混合压缩结构的部分积压缩树相对于纯3∶2结构而言,速度提升了21.4%,相对于纯4∶2结构而言,速度提升了8.3%。
实施例实现一个8×8的乘法器,用非Booth编码的Wallace-tree结构,这时乘法器部分积的总列数是15,每一列上要压缩的部分积个数分别是1,2,3,4,5,6,7,8,7,6,5,4,3,2,1。以计算第8列为例步骤1当前列序号为8,当前层序号为1;当前列序号小于乘法器部分积的总列数15,执行下一步;步骤2当前所要压缩的比特数为12不小于4,以一个4∶2压缩器作为整个部分积压缩树的根基;步骤3当前层能接受的最大信号数是5,产生的进位保留信号数为1,进位输出信号数1,当前列要压缩的部分积的个数8加上前一列更高一层的进位保留信号数2与进位输出信号的个数2作为要压缩的信号个数12;步骤4要压缩的信号个数大于当前层由4∶2压缩器构成时所能接受的最大信号数5,所以压缩树的当前层采用4∶2压缩器,同时当前层的序号加1,跳转到步骤3;步骤3当前层能接受的最大信号数是10,产生的进位保留信号数为2,进位输出信号数2,当前列要压缩的部分积的个数8加上前一列更高一层的进位保留信号数0与进位输出信号的个数0作为要压缩的信号个数8;步骤4要压缩的信号个数8小于当前层由4∶2压缩器构成时所能接受的最大信号数10,同时要压缩的信号个数8大于当前层由3∶2压缩器构成时所能接受的最大信号数6,则当前层采用4∶2压缩器,将当前列的序号加1,并令当前层的序号为1,继续下一列,即跳转到步骤2。
最终压缩树结果输出为第1列第一级用1个3∶2压缩器第2列第一级用1个3∶2压缩器第3列第一级用1个3∶2压缩器第4列第一级用1个4∶2压缩器第5列第一级用1个4∶2压缩器第5列第二级用1个3∶2压缩器第6列第一级用1个4∶2压缩器第6列第二级用2个3∶2压缩器第7列第一级用1个4∶2压缩器第7列第二级用2个4∶2压缩器第8列第一级用1个4∶2压缩器第8列第二级用2个4∶2压缩器第9列第一级用1个4∶2压缩器第9列第二级用2个4∶2压缩器第10列第一级用1个4∶2压缩器第10列第二级用2个4∶2压缩器第11列第一级用1个4∶2压缩器第11列第二级用2个4∶2压缩器第12列第一级用1个4∶2压缩器第12列第二级用1个4∶2压缩器第13列第一级用1个4∶2压缩器第14列第一级用1个4∶2压缩器第15列第一级用1个4∶2压缩器可见,应用本发明的方法,可以很快的生成不同位数乘法器的混合压缩树的结构。
权利要求
1.一种基于混合压缩结构的部分积压缩树生成方法,其特征包括如下具体步骤1)数据输入及初始化根据所要实现的乘法器的位数,确定乘法器部分积的总列数以及每一列上要压缩的部分积的个数,并初始化所有列和层上的进位保留信号数与进位输出信号数以及当前列序号和当前层序号;2)根基生长从第一列开始,若所要压缩的信号数小于4就以一个3:2压缩器作为整个部分积压缩树的根基,也就是整个压缩树的第一层,否则以一个4:2压缩器作根基,在这个根基上向上生长两个分枝或者直接接受四个部分积信号和一个进位输入信号;3)数据更新根据新生长的层,更新当前层所能接受的最大信号数以及当前层产生的进位保留信号数和进位输出信号数,把当前列要压缩的部分积的个数加上前一列更高一层的进位保留信号与进位输出信号的个数作为当前列要压缩的信号个数,如果所要压缩的信号数大于当前层所能接受的最大信号数以及当前层产生的进位保留信号数和进位输出信号数,则需要生长分枝;4)分枝生长判断当前层要压缩的信号个数是否大于由4:2压缩器构成两个分枝时所能接受的最大信号数,如果大于则压缩树的当前层采用4:2压缩器,否则再判断当前层要压缩的信号个数是否大于由3:2压缩器构成两个分枝时所能接受的最大信号数,如果大于则当前层采用4:2压缩器,否则当前层采用3:2压缩器,如果在这两个分枝上可最多接受的信号数目仍小于所要压缩的信号数,则需要在这些分枝上以各自的压缩率继续生长分枝,直到顶部分枝所能接受的信号数达到或超过所要压缩的信号数,然后将当前列的序号加1,并令当前层的序号为1,继续下一列的压缩树的构造。5)重复上述步骤,直到所有列上的压缩树生长完成,完成部分积压缩树构造。
全文摘要
一种基于混合压缩结构的部分积压缩树生成方法,结合3∶2压缩器和4∶2压缩器的特点,以生长的观点来构造部分积压缩树。以一个4∶2压缩器作为压缩树的根基,在这个基上向上生长两个分枝或者直接接受四个部分积信号和一个进位输入信号。若生长分枝,根据所要压缩的信号数确定采用4∶2压缩器还是3∶2压缩器,如果在这两个分枝上可最多接受的信号数目仍小于所要压缩的信号数,则在这些分枝上以各自的压缩率继续生长分枝,直到顶部分枝所能接受的信号数达到或超过所要压缩的信号数。本发明减少了部分积压缩树的时间和面积,减少乘法或乘加单元的总时延同时减少其面积,为大幅度提高数字信号处理器的频率和性能,降低芯片成本提供可能。
文档编号G06F7/48GK1556466SQ20041001573
公开日2004年12月22日 申请日期2004年1月9日 优先权日2004年1月9日
发明者王田, 陈健, 王 田 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1