CN1556466A - 基于混合压缩结构的部分积压缩树生成方法 - Google Patents
基于混合压缩结构的部分积压缩树生成方法 Download PDFInfo
- Publication number
- CN1556466A CN1556466A CNA2004100157343A CN200410015734A CN1556466A CN 1556466 A CN1556466 A CN 1556466A CN A2004100157343 A CNA2004100157343 A CN A2004100157343A CN 200410015734 A CN200410015734 A CN 200410015734A CN 1556466 A CN1556466 A CN 1556466A
- Authority
- CN
- China
- Prior art keywords
- signals
- compressed
- branches
- compressor
- anterior layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种基于混合压缩结构的部分积压缩树生成方法,结合3∶2压缩器和4∶2压缩器的特点,以生长的观点来构造部分积压缩树。以一个4∶2压缩器作为压缩树的根基,在这个基上向上生长两个分枝或者直接接受四个部分积信号和一个进位输入信号。若生长分枝,根据所要压缩的信号数确定采用4∶2压缩器还是3∶2压缩器,如果在这两个分枝上可最多接受的信号数目仍小于所要压缩的信号数,则在这些分枝上以各自的压缩率继续生长分枝,直到顶部分枝所能接受的信号数达到或超过所要压缩的信号数。本发明减少了部分积压缩树的时间和面积,减少乘法或乘加单元的总时延同时减少其面积,为大幅度提高数字信号处理器的频率和性能,降低芯片成本提供可能。
Description
技术领域
本发明涉及的是一种基于混合压缩结构的部分积压缩树生成方法,用于数字信号处理器中的高速乘法器或高速乘加单元的设计,属于数字信号处理技术领域。
背景技术
乘法器或乘加单元是各种数字计算芯片,尤其是数字信号处理芯片(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压缩器
可见,应用本发明的方法,可以很快的生成不同位数乘法器的混合压缩树的结构。
Claims (1)
1、一种基于混合压缩结构的部分积压缩树生成方法,其特征包括如下具体步骤:
1)数据输入及初始化:根据所要实现的乘法器的位数,确定乘法器部分积的总
列数以及每一列上要压缩的部分积的个数,并初始化所有列和层上的进位保
留信号数与进位输出信号数以及当前列序号和当前层序号;
2)根基生长:从第一列开始,若所要压缩的信号数小于4就以一个3:2压缩器作
为整个部分积压缩树的根基,也就是整个压缩树的第一层,否则以一个4:2
压缩器作根基,在这个根基上向上生长两个分枝或者直接接受四个部分积信
号和一个进位输入信号;
3)数据更新:根据新生长的层,更新当前层所能接受的最大信号数以及当前层
产生的进位保留信号数和进位输出信号数,把当前列要压缩的部分积的个数
加上前一列更高一层的进位保留信号与进位输出信号的个数作为当前列要
压缩的信号个数,如果所要压缩的信号数大于当前层所能接受的最大信号数
以及当前层产生的进位保留信号数和进位输出信号数,则需要生长分枝;
4)分枝生长:判断当前层要压缩的信号个数是否大于由4:2压缩器构成两个分
枝时所能接受的最大信号数,如果大于则压缩树的当前层采用4:2压缩器,
否则再判断当前层要压缩的信号个数是否大于由3:2压缩器构成两个分枝时
所能接受的最大信号数,如果大于则当前层采用4:2压缩器,否则当前层采
用3:2压缩器,如果在这两个分枝上可最多接受的信号数目仍小于所要压缩
的信号数,则需要在这些分枝上以各自的压缩率继续生长分枝,直到顶部分
枝所能接受的信号数达到或超过所要压缩的信号数,然后将当前列的序号加
1,并令当前层的序号为1,继续下一列的压缩树的构造。
5)重复上述步骤,直到所有列上的压缩树生长完成,完成部分积压缩树构造。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100157343A CN1320446C (zh) | 2004-01-09 | 2004-01-09 | 基于混合压缩结构的部分积压缩树生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100157343A CN1320446C (zh) | 2004-01-09 | 2004-01-09 | 基于混合压缩结构的部分积压缩树生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1556466A true CN1556466A (zh) | 2004-12-22 |
CN1320446C CN1320446C (zh) | 2007-06-06 |
Family
ID=34351488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100157343A Expired - Fee Related CN1320446C (zh) | 2004-01-09 | 2004-01-09 | 基于混合压缩结构的部分积压缩树生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1320446C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100405289C (zh) * | 2005-03-08 | 2008-07-23 | 中国科学院计算技术研究所 | 一种浮点乘法器及其兼容双精度和双单精度计算的方法 |
CN100476718C (zh) * | 2005-09-02 | 2009-04-08 | 中国科学院计算技术研究所 | 一种64比特浮点乘加器及其流水节拍划分方法 |
CN106019129A (zh) * | 2016-05-22 | 2016-10-12 | 复旦大学 | Fpga中嵌入式dsp内乘法器的测试方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW421757B (en) * | 1996-06-06 | 2001-02-11 | Matsushita Electric Ind Co Ltd | Arithmetic processor |
US6434586B1 (en) * | 1999-01-29 | 2002-08-13 | Compaq Computer Corporation | Narrow Wallace multiplier |
-
2004
- 2004-01-09 CN CNB2004100157343A patent/CN1320446C/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100405289C (zh) * | 2005-03-08 | 2008-07-23 | 中国科学院计算技术研究所 | 一种浮点乘法器及其兼容双精度和双单精度计算的方法 |
CN100476718C (zh) * | 2005-09-02 | 2009-04-08 | 中国科学院计算技术研究所 | 一种64比特浮点乘加器及其流水节拍划分方法 |
CN106019129A (zh) * | 2016-05-22 | 2016-10-12 | 复旦大学 | Fpga中嵌入式dsp内乘法器的测试方法 |
CN106019129B (zh) * | 2016-05-22 | 2018-11-13 | 复旦大学 | Fpga中嵌入式dsp内乘法器的测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1320446C (zh) | 2007-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1381095A (zh) | 推荐用于第三代码分多址的turbo码交错器的有效实现 | |
CN1555626A (zh) | 正交变量扩展因子编码系统及方法 | |
CN1365539A (zh) | 利用时分复用预合并的匹配滤波器 | |
CN1320446C (zh) | 基于混合压缩结构的部分积压缩树生成方法 | |
CN1831753A (zh) | 一种浮点乘法器及其兼容双精度和双单精度计算的方法 | |
CN1835389A (zh) | 一种可以消除数控振荡器频率误差的方法及相位累加器 | |
CN1604478A (zh) | 模拟数字转换器 | |
CN101060337A (zh) | 一种优化的霍夫曼解码方法和装置 | |
CN1191420A (zh) | 串并转换器 | |
CN1279697C (zh) | 片上系统的测试数据压缩编码解码方法及专用解码单元 | |
CN113157247B (zh) | 一种可重构整型-浮点型乘法器 | |
CN1282305C (zh) | 分频器及分频器设计的方法 | |
CN1924765A (zh) | 五型笔画编码输入法及其输入键盘 | |
CN116126283B (zh) | 一种fpga卷积加速器的资源占用率优化方法 | |
CN1329411A (zh) | 多信道维特比译码装置及方法 | |
CN2691010Y (zh) | 乐音合成装置 | |
CN2810032Y (zh) | 一种数模信号转换装置 | |
CN1186708C (zh) | 一种汉字输入方法及其装置 | |
CN1060867C (zh) | 汉字自由输入法 | |
CN1104790C (zh) | 码分多址多相位差分数字匹配滤波器及其实现方法 | |
CN1361596A (zh) | 一种并行级联卷积码交织和解交织的实现方法和装置 | |
CN1503119A (zh) | 高速加法器 | |
CN1253782C (zh) | 数字键盘的折联汉字输入法 | |
CN1236622C (zh) | 信息熵保持编码方法与装置 | |
CN1852023A (zh) | 累加装置及其直接数字频率合成装置的数字电路单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070606 Termination date: 20100209 |