CN101986260A - 乘加方法及乘加器 - Google Patents

乘加方法及乘加器 Download PDF

Info

Publication number
CN101986260A
CN101986260A CN 201010559289 CN201010559289A CN101986260A CN 101986260 A CN101986260 A CN 101986260A CN 201010559289 CN201010559289 CN 201010559289 CN 201010559289 A CN201010559289 A CN 201010559289A CN 101986260 A CN101986260 A CN 101986260A
Authority
CN
China
Prior art keywords
partial product
order
intercepting part
low level
result
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
Application number
CN 201010559289
Other languages
English (en)
Other versions
CN101986260B (zh
Inventor
彭元喜
谢刚
杨惠
陈书明
刘衡竹
郭阳
孙永节
刘宗林
龚国辉
鲁建壮
许邦建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN2010105592892A priority Critical patent/CN101986260B/zh
Publication of CN101986260A publication Critical patent/CN101986260A/zh
Application granted granted Critical
Publication of CN101986260B publication Critical patent/CN101986260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

一种乘加方法及乘加器,该方法的步骤为:(1)乘数通过布什编码逻辑单元产生若干控制信号,被乘数作为部分积产生逻辑单元的输入,产生部分积;(2)加数通过加数分块逻辑单元得到低位截取部分、中间部分和高位截取部分;前两者以及部分积作为改进华莱士树单元的输入,得到的结果作为加法器的输入,产生低位结果和控制信号;(3)高位截取部分经高位预测逻辑单元得到高位结果;(4)低位结果与高位结果经拼接逻辑单元后产生一个最终结果。该乘加器包括布什编码逻辑单元、部分积产生逻辑单元、加数分块逻辑单元、加法器、高位预测逻辑单元、改进华莱士树单元以及拼接逻辑单元。本发明具有结构简单紧凑、成本低廉、运算速度快、稳定可靠等优点。

Description

乘加方法及乘加器
技术领域
本发明主要涉及到乘加处理器领域,特指一种乘加方法及乘加器。
背景技术
传统的乘加融合是将加数作为一个部分积,放在乘法器的华莱士树的最底层。在进行矩形布局时,采用传统的华莱士树乘加器会导致面积的大量浪费。Mounir Bohsali (马尼?波赛利)和Michael Doan(米歇尔 ?窦恩)提出了一种方法,对传统的乘法器华莱士树进行了改造,得到了一种新型的华莱士树。由于乘法器的华莱士树比较规则,所以采用这种的方法很容易对乘法器的华莱士树进行分割,达到优化目的。但是,传统的乘加融合是将加数作为一个部分积,添加到乘法器的华莱士树中,这就导致了结构的不规则,使得Mounir Bohsali (马尼?波赛利)和Michael Doan(米歇尔 ?窦恩)的改造方法无法适用于这种情况。
对于任何的传统融合乘加器,都可以分为三个阶段:(1)产生部分积;(2)部分积相加;(3)最终加法。
在第一阶段,被乘数和乘数相乘产生部分积。在这个阶段,通常采用布什2算法使部分积的数量减少一半。
第二阶段最重要,由于它最复杂,所以它决定了整个传统融合乘加器的速度。本专利集中在优化这个阶段。若不关心速度快慢,可将部分积连续相加,以便减少设计复杂度。然而,在进行高速传统融合乘加器设计时,华莱士树结构通常是将部分积进行树状操作,以产生两行部分积结果,在最后阶段相加。这样设计得到的传统融合乘加器虽然速度很快,但是关键路径上的延时,随传统融合乘加器的位数增加成对数增长。华莱士树还会导致其他的问题,如浪费布局面积,增加复杂度等。本专利设计了一种装置,将加数进行特殊的处理,使得加数与乘法产生的部分积能够进一步融合,达到优化整个融合乘加的华莱士树面积的目的。
第三阶段,将压缩树产生的两个行结果相加,产生最终结果。本专利所发明的装置同样致力于在这方面进行优化。在这个阶段,检查相加结果是否有进位。将进位作为控制信号,控制预测结果的输出。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种结构简单紧凑、成本低廉、运算速度快、稳定可靠的乘加方法及乘加器。
为解决上述技术问题,本发明采用以下技术方案:
一种乘加方法,其特征在于步骤为:
(1) 乘数通过布什编码逻辑单元产生若干控制信号,被乘数作为部分积产生逻辑单元的输入,根据控制信号产生部分积;
(2) 加数通过加数分块逻辑单元得到三个输出,分别是低位截取部分、中间部分和高位截取部分;所述低位截取部分、中间部分以及部分积作为改进华莱士树单元的输入,得到一个“和”和一个“进位”,其中“和”与“进位”的位数相同,“进位”的权值比“和”的权值高1;“和”与“进位”作为加法器的输入,产生一个低位结果和一个控制信号;
(3) 高位截取部分作为高位预测逻辑单元的一个输入,在控制信号的控制下,产生一个高位结果;
(4) 低位结果与高位结果作为拼接逻辑单元的输入,产生一个最终结果。
作为本发明的进一步改进:
所述步骤(2)中,所述低位截取部分的位数=乘积位数-乘法产生的最后一个部分积的位数;所述中间部分的位数与乘法产生的最后一个部分积的位数相同;所述高位截取部分的位数=加数位数-低位截取部分的位数-中间部分的位数。
所述步骤(2)中,将低位截取部分移到乘法的第一个部分积上面,成为新的第一个部分积;中间部分保持原位;低位截取部分、乘法产生的部分积和中间部分一起组成新的部分积阵列,通过改进华莱士树单元压缩成一个“和”和一个“进位”。
所述步骤(3)中,对于高位截取部分作如下处理:                                                
Figure 2010105592892100002DEST_PATH_IMAGE001
加上00或保持原样输出;加上01;
Figure 2010105592892100002DEST_PATH_IMAGE003
加上10;
Figure 672630DEST_PATH_IMAGE004
加上11,最终得到四个中间结果,并且以最终加法器的两位作为控制信号,产生高位预测逻辑单元的最终结果。
将改进华莱士树单元沿着中间分成左、右两个部分,所述左边的部分积分块从上往下加,所述右边的部分积分块从下往上加。
本发明进一步提供一种乘加器,其特征在于:包括布什编码逻辑单元、部分积产生逻辑单元、加数分块逻辑单元、加法器、高位预测逻辑单元、改进华莱士树单元以及拼接逻辑单元,乘数通过布什编码逻辑单元产生若干控制信号,被乘数作为部分积产生逻辑单元的输入,根据控制信号产生部分积;加数通过加数分块逻辑单元得到三个输出,分别是低位截取部分、中间部分和高位截取部分;所述低位截取部分、中间部分以及部分积作为改进华莱士树单元的输入,得到一个“和”和一个“进位”,其中“和”与“进位”的位数相同,“进位”的权值比“和”的权值高1;“和”与“进位”作为加法器的输入,产生一个低位结果和一个控制信号;高位截取部分作为高位预测逻辑单元的一个输入,在控制信号的控制下,产生一个高位结果;低位结果与高位结果作为拼接逻辑单元的输入,产生一个最终结果。
与现有技术相比,本发明的优点在于:
1、本发明对于任意位宽的乘数、被乘数和加数,可以很方便的得到规整的部分积阵列,便于布局优化。若需要低功耗和面积较小的乘加器,可以按照Mounir Bohsali (马尼?波赛利)和Michael Doan(米歇尔 ?窦恩)提出的方法,对传统的华莱士树进行改造。将乘加华莱士树沿着中间分成两部分,所得每一部分都按照传统的方法来求和。不同的是,左边的部分积分块从上往下加,而右边的部分积分块从下往上加,这样一来,就可以节约很大的面积,并且使得功耗下降。
2、本发明对于加数的高位部分,对其进行了并行处理,使得最终加法变为简单的拼接,提高了运算速度。
附图说明
图1是本发明乘加器的原理示意图;
图2a是传统的乘加融合方法的示意图;
图2b是本发明基于加数分块的部分积分布示意图;
图3是本发明中加数低位截取部分和中间部分的处理方法示意图;
图4a是本发明中加数高位预测逻辑单元的原理示意图;
图4b是加数高位预测逻辑单元最后的拼接结果示意图;
图5是本发明中改进华莱士树单元的原理示意图;
图6是实现16×16+40位时,分别采用改进华莱士树单元与传统的华莱士树单元面积的对比示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明的乘加器,包括布什编码逻辑单元10、部分积产生逻辑单元11、加数分块逻辑单元12、加法器15、高位预测逻辑单元14、改进华莱士树单元13以及拼接逻辑单元16,它采用本发明的乘加方法,该乘加方法的步骤为:乘数通过布什编码单元10产生若干控制信号10A,被乘数作为部分积产生逻辑单元11的输入,根据控制信号10A,产生部分积11A。加数通过加数分块逻辑单元12,得到三个输出,分别是:低位截取部分12A,中间部分12B和高位截取部分12C。低位截取部分12A、中间部分12B以及部分积11A作为改进华莱士树单元13的输入,得到一个“和”13A和一个“进位”13B。其中,“和”13A与“进位”13B的位数相同,“进位”13B的权值比“和”13A的权值高1。“和”13A与“进位”13B作为加法器15的输入,产生一个低位结果15A和一个控制信号15B。高位截取部分12C作为高位预测逻辑单元14的一个输入,在控制信号15B的控制下,产生一个高位结果14A。低位结果15A与高位结果14A作为拼接逻辑单元16的输入,产生一个最终结果。
如图2a所示,为传统的乘加融合方法的示意图。将加数21作为一个部分积,添加到华莱士树中,与乘法产生的部分积20一起压缩。
如图2b所示,为加数的分块方法。对于任意为的加数,将其分成三部分,分别是:低位截取部分12A、中间部分12B和高位截取部分12C。其中,低位截取部分12A的位数=乘积位数-乘法产生的最后一个部分积20B的位数;中间部分12B的位数与乘法产生的最后一个部分积20B的位数相同;高位截取部分12C的位数=加数位数-低位截取部分12A的位数-中间部分12B的位数。
如图3所示,为加数中低位截取部分12A和中间部分12B的处理方法。将低位截取部分12A移到乘法的第一个部分积20B上面,成为新的第一个部分积20B。中间部分12B保持原位。低位截取部分12A、乘法产生的部分积20和中间部分12B一起组成新的部分积阵列,通过改进华莱士树单元13压缩成一个“和”13A和一个“进位”13B。“和”13A和“进位”13B作为加法器15的输入,得到结果15A、15B。其中结果分为两部分,分别是低位部分15A和控制信号15B。
如图4a所示,为加数高位预测逻辑单元14的原理示意图。加数中高位截取部分12C作为高位预测逻辑单元14的输入,产生四个中间结果21、22、23、24,在信号15B的控制下,通过一个四选一选择器,得到一个高位结果14A。在本实施例中,对于高位截取部分12C作如下处理:
Figure 2010105592892100002DEST_PATH_IMAGE005
加上00或保持原样输出;
Figure 426960DEST_PATH_IMAGE006
加上01;
Figure 2010105592892100002DEST_PATH_IMAGE007
加上10;
Figure 226289DEST_PATH_IMAGE008
加上11,最终得到四个中间结果,并且以最终加法器15的两位作为控制信号,产生高位预测逻辑单元14的最终结果。参见图4b,为最后的拼接结果示意图。将高位结果14A与低位结果15A拼接,作为最后结果输出。
如图5所示,为改进华莱士树单元13的示意图。本发明按照Mounir Bohsali (马尼?波赛利)和Michael Doan(米歇尔 ?窦恩)提出的方法,对传统的华莱士树进行了改造。如图5所示,将乘加华莱士树沿着中间分成两部分,所得每一部分都按照传统的方法来求和。不同的是,左边的部分积分块从上往下加,而右边的部分积分块从下往上加,这样一来,就可以节约很大的面积。
如图6所示,为实现16×16+40位时,分别采用改进华莱士树单元13与传统的华莱士树面积的对比。改进华莱士树单元13比传统的华莱士树的面积减少了30%左右。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (6)

1.一种乘加方法,其特征在于步骤为:
(1) 乘数通过布什编码逻辑单元产生若干控制信号,被乘数作为部分积产生逻辑单元的输入,根据控制信号产生部分积;
(2) 加数通过加数分块逻辑单元得到三个输出,分别是低位截取部分、中间部分和高位截取部分;所述低位截取部分、中间部分以及部分积作为改进华莱士树单元的输入,得到一个“和”和一个“进位”,其中“和”与“进位”的位数相同,“进位”的权值比“和”的权值高1;“和”与“进位”作为加法器的输入,产生一个低位结果和一个控制信号;
(3) 高位截取部分作为高位预测逻辑单元的一个输入,在控制信号的控制下,产生一个高位结果;
(4) 低位结果与高位结果作为拼接逻辑单元的输入,产生一个最终结果。
2.根据权利要求1所述的乘加方法,其特征在于:所述步骤(2)中,所述低位截取部分的位数=乘积位数-乘法产生的最后一个部分积的位数;所述中间部分的位数与乘法产生的最后一个部分积的位数相同;所述高位截取部分的位数=加数位数-低位截取部分的位数-中间部分的位数。
3.根据权利要求1或2所述的乘加方法,其特征在于:所述步骤(2)中,将低位截取部分移到乘法的第一个部分积上面,成为新的第一个部分积;中间部分保持原位;低位截取部分、乘法产生的部分积和中间部分一起组成新的部分积阵列,通过改进华莱士树单元压缩成一个“和”和一个“进位”。
4.根据权利要求1或2所述的乘加方法,其特征在于所述步骤(3)中,对于高位截取部分作如下处理:                                               加上00或保持原样输出;
Figure 2010105592892100001DEST_PATH_IMAGE004
加上01;
Figure 2010105592892100001DEST_PATH_IMAGE006
加上10;
Figure 2010105592892100001DEST_PATH_IMAGE008
加上11,最终得到四个中间结果,并且以最终加法器的两位作为控制信号,产生高位预测逻辑单元的最终结果。
5.根据权利要求1或2所述的乘加方法,其特征在于:将改进华莱士树单元沿着中间分成左、右两个部分,所述左边的部分积分块从上往下加,所述右边的部分积分块从下往上加。
6.一种乘加器,其特征在于:包括布什编码逻辑单元、部分积产生逻辑单元、加数分块逻辑单元、加法器、高位预测逻辑单元、改进华莱士树单元以及拼接逻辑单元,乘数通过布什编码逻辑单元产生若干控制信号,被乘数作为部分积产生逻辑单元的输入,根据控制信号产生部分积;加数通过加数分块逻辑单元得到三个输出,分别是低位截取部分、中间部分和高位截取部分;所述低位截取部分、中间部分以及部分积作为改进华莱士树单元的输入,得到一个“和”和一个“进位”,其中“和”与“进位”的位数相同,“进位”的权值比“和”的权值高1;“和”与“进位”作为加法器的输入,产生一个低位结果和一个控制信号;高位截取部分作为高位预测逻辑单元的一个输入,在控制信号的控制下,产生一个高位结果;低位结果与高位结果作为拼接逻辑单元的输入,产生一个最终结果。
CN2010105592892A 2010-11-25 2010-11-25 乘加方法及乘加器 Active CN101986260B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105592892A CN101986260B (zh) 2010-11-25 2010-11-25 乘加方法及乘加器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105592892A CN101986260B (zh) 2010-11-25 2010-11-25 乘加方法及乘加器

Publications (2)

Publication Number Publication Date
CN101986260A true CN101986260A (zh) 2011-03-16
CN101986260B CN101986260B (zh) 2012-06-27

Family

ID=43710609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105592892A Active CN101986260B (zh) 2010-11-25 2010-11-25 乘加方法及乘加器

Country Status (1)

Country Link
CN (1) CN101986260B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257845A (zh) * 2012-02-21 2013-08-21 京微雅格(北京)科技有限公司 乘加器
CN105045560A (zh) * 2015-08-25 2015-11-11 浪潮(北京)电子信息产业有限公司 一种定点乘加运算方法和装置
CN105867876A (zh) * 2016-03-28 2016-08-17 武汉芯泰科技有限公司 一种乘加器、乘加器阵列、数字滤波器及乘加计算方法
CN110399117A (zh) * 2019-07-31 2019-11-01 上海燧原智能科技有限公司 一种混合乘法加法处理方法及装置
CN110515588A (zh) * 2019-08-30 2019-11-29 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN111258633A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN112068802A (zh) * 2020-08-14 2020-12-11 清华大学 计数器的设计方法、装置及计数器
CN113031911A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 乘法器、数据处理方法、装置及芯片

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09307581A (ja) * 1996-05-16 1997-11-28 Oki Electric Ind Co Ltd ブリッジ装置
US7574468B1 (en) * 2005-03-18 2009-08-11 Verisilicon Holdings (Cayman Islands) Co. Ltd. Digital signal processor having inverse discrete cosine transform engine for video decoding and partitioned distributed arithmetic multiply/accumulate unit therefor
CN100555212C (zh) * 2007-07-18 2009-10-28 中国科学院计算技术研究所 一种浮点乘加器及其乘法csa压缩树的进位校验装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09307581A (ja) * 1996-05-16 1997-11-28 Oki Electric Ind Co Ltd ブリッジ装置
US7574468B1 (en) * 2005-03-18 2009-08-11 Verisilicon Holdings (Cayman Islands) Co. Ltd. Digital signal processor having inverse discrete cosine transform engine for video decoding and partitioned distributed arithmetic multiply/accumulate unit therefor
CN100555212C (zh) * 2007-07-18 2009-10-28 中国科学院计算技术研究所 一种浮点乘加器及其乘法csa压缩树的进位校验装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《微电子学》 20100228 孙偲彦,蒋剑飞,毛志刚 一种数字信号处理器中的高性能乘加器设计 32-36 1 第40卷, 第1期 2 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257845A (zh) * 2012-02-21 2013-08-21 京微雅格(北京)科技有限公司 乘加器
CN103257845B (zh) * 2012-02-21 2016-12-14 京微雅格(北京)科技有限公司 乘加器
CN105045560A (zh) * 2015-08-25 2015-11-11 浪潮(北京)电子信息产业有限公司 一种定点乘加运算方法和装置
CN105867876A (zh) * 2016-03-28 2016-08-17 武汉芯泰科技有限公司 一种乘加器、乘加器阵列、数字滤波器及乘加计算方法
CN111258633A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN111258633B (zh) * 2018-11-30 2022-08-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN110399117A (zh) * 2019-07-31 2019-11-01 上海燧原智能科技有限公司 一种混合乘法加法处理方法及装置
CN110399117B (zh) * 2019-07-31 2021-05-28 上海燧原智能科技有限公司 一种混合乘法加法处理方法及装置
CN110515588A (zh) * 2019-08-30 2019-11-29 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN110515588B (zh) * 2019-08-30 2024-02-02 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN113031911A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 乘法器、数据处理方法、装置及芯片
CN112068802A (zh) * 2020-08-14 2020-12-11 清华大学 计数器的设计方法、装置及计数器
CN112068802B (zh) * 2020-08-14 2022-11-11 清华大学 计数器的设计方法、装置及计数器

Also Published As

Publication number Publication date
CN101986260B (zh) 2012-06-27

Similar Documents

Publication Publication Date Title
CN101986260B (zh) 乘加方法及乘加器
Jiang et al. Approximate radix-8 booth multipliers for low-power and high-performance operation
McDanel et al. Full-stack optimization for accelerating cnns using powers-of-two weights with fpga validation
Eldafrawy et al. FPGA logic block architectures for efficient deep learning inference
CN103020853A (zh) 一种短期交易计划安全校核的方法
Boutros et al. Math doesn't have to be hard: Logic block architectures to enhance low-precision multiply-accumulate on FPGAs
Segal et al. High level programming of FPGAs for HPC and data centric applications
Boroumand et al. Approximate quaternary addition with the fast carry chains of FPGAs
Langhammer et al. High density 8-bit multiplier systolic arrays for FPGA
CN103455518A (zh) 一种数据处理方法及装置
Vijay et al. Performance evaluation of the CMOS Full adders in TDK 90 nm Technology
Rakesh et al. A survey on the design and performance of various MAC unit architectures
Sunny et al. Area efficient high speed approximate multiplier with carry predictor
Aggarwal et al. Energy consumption in VLSI circuits
CN103886118A (zh) 一种针对集成电路异质型逻辑单元的重综合方法
Jangalwa et al. Design and Analysis of 8-Bit Multiplier for Low Power VLSI Applications
Hsu et al. A Fully Synthesized 13.7 μJ/prediction 88% Accuracy CIFAR-10 Single-Chip Data-Reusing Wired-Logic Processor Using Non-Linear Neural Network
Poldre et al. Reconfigurable multiplier for Virtex FPGA family
Bokade et al. CLA based 32-bit signed pipelined multiplier
Golovchenko et al. Numerical experiments with new algorithms for parallel decomposition of large computational meshes
Chang et al. Optimization strategies for smith-waterman algorithm on fpga platform
Shang et al. An algorithm/hardware co‐optimized method to accelerate CNNs with compressed convolutional weights on FPGA
Jha et al. Performance analysis of single-precision floating-point MAC for deep learning
Sun et al. Sparse cholesky factorization on fpga using parameterized model
CN110955521A (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