[go: up one dir, main page]

CN116991359B - Booth乘法器、混合Booth乘法器及运算方法 - Google Patents

Booth乘法器、混合Booth乘法器及运算方法 Download PDF

Info

Publication number
CN116991359B
CN116991359B CN202311244047.8A CN202311244047A CN116991359B CN 116991359 B CN116991359 B CN 116991359B CN 202311244047 A CN202311244047 A CN 202311244047A CN 116991359 B CN116991359 B CN 116991359B
Authority
CN
China
Prior art keywords
partial
multiplier
partial product
module
multiplicand
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.)
Active
Application number
CN202311244047.8A
Other languages
English (en)
Other versions
CN116991359A (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.)
Shanghai Weijing Technology Co ltd
Original Assignee
Shanghai Weijing Technology Co ltd
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 Shanghai Weijing Technology Co ltd filed Critical Shanghai Weijing Technology Co ltd
Priority to CN202311244047.8A priority Critical patent/CN116991359B/zh
Publication of CN116991359A publication Critical patent/CN116991359A/zh
Application granted granted Critical
Publication of CN116991359B publication Critical patent/CN116991359B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了Booth乘法器、混合Booth乘法器及运算方法,其中Booth乘法器包括:编码模块,用于基于Booth算法对乘数编码,得到编码信号;部分积产生模块,用于根据编码信号,对被乘数进行处理,产生若干部分积和若干符号修正位;部分积累加模块,用于根据若干部分积的符号位,计算得到部分积的符号位的和;部分积累加模块,还用于根据外部输入信号,选择相应的计算模式;部分积累加模块,还用于根据计算模式和若干符号修正位,对部分积的符号位进行修订;部分积累加模块,还用于根据计算模式,对若干部分积执行累加操作,并结合修订后的部分积的符号位的和,得到乘数与所述被乘数的乘积结果。

Description

Booth乘法器、混合Booth乘法器及运算方法
技术领域
本发明涉及乘法运算单元的设计领域,具体涉及Booth乘法器。
背景技术
乘法器是一种完成两个信号相乘的基本元器件,广泛应用于数字信号处理的通信领域,同时也是神经网络加速器的重要组成部分,其运行速度、面积、时序与功耗对于硬件的性能至关重要,通过传统的乘法器能够进行低精度运算,拼接传统的乘法器能够进行混合精度运算。在传统的乘法器进行运算时,需要大量使用加法器,例如:在求取部分积的计算过程需要对被乘数进行取反、移位、加一,而加一需要额外的加法器。为避免过多加法器造成电路面积和功耗消耗量大,同时避免加法器限制了电路关键路径,在不损失精度的条件下,需要尽可能减少在传统的乘法器中加法器的使用。
发明内容
为了解决上述技术问题,本发明提供Booth乘法器、混合Booth乘法器及运算方法。
具体的,本发明的技术方案如下:
第一方面,本发明提供了一种Booth乘法器,包括:
编码模块,用于基于Booth算法对乘数进行编码,得到对应的编码信号,将所述编码信号传输给部分积产生模块;
所述部分积产生模块,与所述编码模块连接,用于根据所述编码信号,对被乘数进行处理,产生若干部分积和若干符号修正位,将若干所述部分积和若干所述符号修正位传输给部分积累加模块;
所述部分积累加模块,与所述部分积产生模块连接,用于根据若干所述部分积的符号位,计算得到部分积的符号位的和;
所述部分积累加模块,还用于根据外部输入信号,选择相应的计算模式;
所述部分积累加模块,还用于根据所述计算模式和若干所述符号修正位,选择Booth乘法器的进位端口的输入进位信号;根据所述计算模式和所述输入进位信号,对所述部分积的符号位进行修订;
所述部分积累加模块,还用于根据所述计算模式,对若干所述部分积执行累加操作,并结合修订后的所述部分积的符号位的和,得到所述乘数与所述被乘数的乘积结果。
本实施方法通过编码模块对输入的被乘数进行编码;部分积产生模块进行译码产生部分积和符号修正位,通过符号修正位代表编码结果的正负,节约了在部分积产生模块对部分积执行加一计算所需的加法器;部分积累加模块用于对部分积进行累加求和得到部分和,并计算出部分积的符号位的和;部分积累加模块还通过控制信号选择是否需要通过输入进位信号对符号位进行修正,使Booth乘法器在不同计算模式下,均能完成部分积累加和符号位扩展计算,最终求解出乘积结果。
在一些Booth乘法器的实施方法,
所述部分积产生模块,还用于根据所述编码信号,对所述被乘数移位和/或取反,得到所述部分积;
所述部分积产生模块,还用于根据所述编码信号为正数或负数,设定所述编码信号对应的符号修正位。
本实施方法提供了部分积产生模块对部分积只进行移位和取反操作,将产生的正负修正的符号修正位输入给部分积累加模块进行修正,使“加1”操作通过在部分积累加模块对符号修正信号进行累加实现,节约了加法器。
在一些Booth乘法器的实施方法,
所述部分积累加模块,对所述部分积的符号位取反,将取反后的所述部分积的符号位以及求和计算式代入符号位扩展公式,计算得到所述部分积的符号位的和。
本实施方法通过部分积累加模块对部分积的符号位取反再进行运算,节约了加法器阵列中加法器的数量。
在一些Booth乘法器的实施方法,
所述外部输入信号包括:外部输入的进位控制信号和外部输入的符号位控制信号;
所述部分积累加模块,还用于在所述符号位控制信号是低电位时,将上一个Booth乘法器的所述符号修正位作为输入进位信号,输入到当前Booth乘法器的进位端口;
所述部分积累加模块,还用于在所述符号位控制信号是高电位时,将当前Booth乘法器的所述符号修正位输入到当前Booth乘法器的进位端口。
本实施方法通过外部输入信号控制选择是否根据输入进位信号对符号位进行修正,以实现控制Booth乘法器在执行不同计算模式下对符号位的不同计算方式。
在一些Booth乘法器的实施方法,
所述部分积累加模块,还用于当所述进位控制信号为低电位时,对所述被乘数的高位进行运算;当所述进位控制信号为高电位时,对所述被乘数的低位进行运算。
在一些Booth乘法器的实施方法,
所述计算模式包括:所述被乘数与所述乘数之间的低精度运算模式、所述被乘数与所述乘数之间的混合精度运算模式;所述混合精度运算模式包括:所述被乘数的低位与所述乘数的低位之间的运算,所述被乘数的高位与所述乘数的低位之间的运算,所述被乘数的高位与所述乘数的高位之间的运算,所述被乘数的低位与所述乘数的高位之间的运算。
第二方面,本发明提供了一种混合Booth乘法器,包括前述实施方法中两个所述的一种Booth乘法器,即,第一Booth乘法器和第二Booth乘法器,
所述第一Booth乘法器包括:第一编码模块、第一部分积产生模块、第一部分积累加模块;所述第二Booth乘法器,包括:第二编码模块、第二部分积产生模块、第二部分积累加模块;
所述第一部分积累加模块,根据外部输入信号对第一部分积的符号位输入低电平,并直接对所述第一部分积执行累加操作,得到输出进位信号和第一部分和,并向所述第二Booth乘法器提供所述输出进位信号和所述第一部分和;所述第一部分积是所述乘数与所述被乘数的低位之间的部分积乘积结果;
所述第二Booth乘法器,与所述第一Booth乘法器连接,根据外部输入信号对第二部分积的符号位执行修正操作,并对所述第二部分积执行累加操作,得到第二部分和;所述第二部分积是所述乘数与所述被乘数的高位之间的部分积乘积结果;
所述第二部分积累加模块,根据所述第一部分和、所述第二部分和,得到所述乘数和所述被乘数的乘积结果。
本实施方法通过第一Booth乘法器和第二Booth乘法器的结合,能够实现n比特乘以2n比特的乘法计算,n由单一Booth乘法器的计算能力决定。
第三方面,本发明提供了一种混合Booth乘法器,包括前述实施方法中四个所述的一种Booth乘法器,即第一Booth乘法器、第二Booth乘法器、第三Booth乘法器、第四Booth乘法器,以及一加法器;
所述第一Booth乘法器中的第一部分积累加模块,用于计算所述乘数的低位与所述被乘数的低位之间的第一部分积;所述第二Booth乘法器中的第二部分积累加模块,用于计算所述乘数的高位与所述被乘数的低位之间的第二部分积;所述第三Booth乘法器中的第三部分积累加模块,用于计算所述乘数的低位与所述被乘数的高位之间的第三部分积;所述第四Booth乘法器中的第四部分积累加模块,用于计算所述乘数的高位与所述被乘数的高位之间的第四部分积;
通过所述第一部分积累加模块、所述第二部分积累加模块、所述第三部分积累加模块、所述第四部分积累加模块,分别求和所述第一部分积、所述第二部分积、所述第三部分积、所述第四部分积,得到第一部分和、第二部分和、第三部分和、第四部分和;
所述第一部分积累加模块输出所述第一部分和中的第一乘积结果,并向所述第二部分积累加模块提供所述第一部分和中的第一待运算部分;所述第二部分积累加模块输出所述第二部分和中的第二乘积结果,并向所述第三部分积累加模块、所述加法器提供所述第二部分和的第二待运算部分;所述第三部分积累加模块向所述加法器提供所述第三部分和;所述加法器根据所述第二部分和、所述第三部分和向所述第四部分积累加模块提供第三待运算部分,并输出第三乘积结果;所述第四部分积累加模块根据所述第三待运算部分和所述第四部分和,并输出第四乘积结果;
通过拼接所述第一乘积结果、所述第二乘积结果、所述第三乘积结果、所述第四乘积结果,得到所述乘数和所述被乘数的乘积结果。
本实施方法通过第一Booth乘法器、第二Booth乘法器、第三Booth乘法器、第四Booth乘法器,能够实现2n比特乘以2n比特的乘法计算,n由单一Booth乘法器的计算能力决定。
第四方面,本发明提供了一种Booth乘法器的运算方法,包括:
基于Booth算法对乘数进行编码,得到对应的编码信号;
根据所述编码信号,对被乘数进行处理,产生若干部分积和若干符号修正位;
根据若干所述部分积的符号位,计算得到部分积的符号位的和;
根据外部输入信号,选择相应的计算模式;
根据所述计算模式和若干所述符号修正位,选择Booth乘法器的进位端口的输入进位信号;根据所述计算模式和所述输入进位信号,对所述部分积的符号位进行修订;
根据所述计算模式,对若干所述部分积执行累加操作,并结合修订后的所述部分积的符号位的和,得到所述乘数与所述被乘数的乘积结果。
本实施方法通过生成符号修正位,对部分积只进行移位操作和取反操作,并通过控制信号选择是否需要通过输入进位信号对符号位进行修正,使Booth乘法器在不同计算模式下,完成部分积累加和符号位计算,最终求解出乘积结果。
在一些Booth乘法器的运算方法的实施方法,所述的根据外部输入信号,选择相应的计算模式,包括:
所述外部输入信号包括:外部输入的进位控制信号和外部输入的符号位控制信号;
当所述进位控制信号为低电位时,对所述被乘数的高位进行运算;
当所述进位控制信号为高电位时,对所述被乘数的低位进行运算;
当所述符号位控制信号是低电位时,将上一个Booth乘法器的所述符号修正位作为输入进位信号,输入到当前Booth乘法器的进位端口;
当所述符号位控制信号是高电位时,将当前Booth乘法器的所述符号修正位输入到当前Booth乘法器的进位端口;
根据所述进位控制信号和所述符号位控制信号,选择相应的计算模式;所述计算模式包括:所述被乘数与所述乘数之间的低精度运算模式、所述被乘数与所述乘数之间的混合精度运算模式;所述混合精度运算模式包括:所述被乘数的低位与所述乘数的低位之间的运算,所述被乘数的高位与所述乘数的低位之间的运算,所述被乘数的高位与所述乘数的高位之间的运算,所述被乘数的低位与所述乘数的高位之间的运算。
在一些Booth乘法器的运算方法的实施方法,所述的根据若干所述部分积的符号位,计算得到部分积的符号位的和,包括:
对所述部分积的符号位取反;
将取反后的所述部分积的符号位和求和计算式代入符号位扩展公式,计算得到所述部分积的符号位的和。
与现有技术相比,本发明至少具有以下一项有益效果:
1、本发明通过编码模块对输入的被乘数进行编码;部分积产生模块进行译码产生部分积和符号修正位,通过符号修正位代表编码结果的正负,节约了在部分积产生模块对部分积执行加一计算所需的加法器;部分积累加模块用于对部分积进行累加求和得到部分和,并计算出部分积的符号位的和;部分积累加模块还通过控制信号选择是否需要通过输入进位信号对符号位进行修正,使Booth乘法器在不同计算模式下,均能完成部分积累加和符号位扩展计算,最终求解出乘积结果。
2、本发明部分积产生模块对部分积只进行移位和取反操作,将产生的修正正负的符号修正位输入给部分积累加模块进行修正,使“加1”操作通过在部分积累加模块对符号修正信号进行累加实现,节约了加法器。
3、本发明通过外部输入信号控制选择是否根据输入进位信号对符号位进行修正,以实现控制Booth乘法器在执行不同计算模式下对符号位的不同计算方式。
4、本发明通过部分积累加模块执行混合精度运算部分和的累加,相比传统的拼接方案,节约了加法器,在不降低运算精度的前提下减少了整体的电路面积,优化了时序,大幅度提升了乘法器的性能。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明提供的一种Booth乘法器的系统框图;
图2是本发明提供的一种Booth乘法器的编码模块的电路图;
图3是本发明提供的一种Booth乘法器的部分积产生模块的电路图;
图4是本发明提供的一种Booth乘法器的部分积累加模块的电路图;
图5是本发明提供的一种混合Booth乘法器的系统框图;
图6是本发明提供的一种混合Booth乘法器的系统框图;
图7是现有技术的符号位扩展图;
图8是本发明提供的符号位扩展图;
图9是本发明提供的一种Booth乘法器的运算方法的流程图。
附图标号说明:10--编码模块;20--部分积产生模块;30--部分积累加模块。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本文中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在一个实施例中,参考说明书附图1、2,本发明提供的一种Booth乘法器,包括:
编码模块10,用于基于Booth算法对乘数进行编码,得到对应的编码信号,将编码信号传输给部分积产生模块20。Booth乘法器是一种快速且高效的乘法器,它可以在较短的时间内计算出两个二进制数的乘积。
编码模块10是采用常规的Booth算法对乘数进行编码,对9位乘数B通过基-4Booth算法进行编码,能够得到五组编码结果,定义9位乘数B = {b8,b7,...,b1,b0},将乘数B的低位补b_1 ,对于补位b_1 ,若正在进行9比特乘法运算时,乘数和被乘数均为9比特,补位b_1为乘数B的最低位,b_1为0;若进行混合精度乘法运算,如:进行18比特乘法运算时,乘数和被乘数均为18比特,将乘数B分为乘数B的高位和乘数B的低位,乘数B中的高位为乘数B的前9比特,乘数B的低位为乘数B的后9比特,对于计算乘数B中的高位的乘法器,将乘数B的高位补b_1为b8,乘数B的低位补b_1为0;
对乘数B进行每3bit交叠取数,如:{b1,b0,b_1},{b3,b2,b1},取得的数据有{000,001,010,011,100,101,110,111}八种情况,经过对取得数据进行编码,编码结果为,i为非负整数,当i=0时,b_1作为/>输入;当i=4时,由于输入为9比特,则需要将最高位进行扩展,将/>作为/>输入,得到编码结果可能为0,+1,+2,-1,-2;对应的编码信号由NEG信号,X1信号,X2信号构成;其中,NEG信号代表编码结果正负,当编码结果为正时,输出NEG信号为低电平“0”,当编码结果为负时,输出NEG信号为高电平“1”;X1信号代表编码结果是否为1,当编码结果为1或-1时,输出X1信号为高电平“1”;X2信号代表编码结果是否为2,当编码结果为2或-2,输出X2信号为高电平“1”。乘数B的数据、编码结果与编码信号的对应关系如下表表一所示:
表一
此外,说明书附图2还提供了一种编码模块10的实现电路,是基于与门电路、或门电路、非门电路实现。
部分积产生模块20,与编码模块10连接,用于根据编码信号,对被乘数进行处理,产生若干部分积和若干符号修正位,将若干部分积和若干符号修正位传输给部分积累加模块30。
具体地,将被乘数A的最低位补a_1 ,对于补位a_1 ,部分积产生模块20在进行9比特乘法运算时,补位a_1为0;若进行混合精度乘法运算,进行被乘数A的高位计算的乘法器,补位a_1为a8,进行被乘数A的低位计算的乘法器,a_1为0;部分积产生模块20根据编码模块10提供的乘数B的编码信号,对被乘数A进行处理,得到部分积。
部分积累加模块30,与部分积产生模块20连接,用于根据若干部分积的符号位,计算得到部分积的符号位的和。部分积累加模块30通过加法器阵列中的加法器对符号位进行扩展并求和,得到部分积的符号位的和。
部分积累加模块30,用于根据外部输入信号,选择相应的计算模式;计算模式包括:被乘数与乘数之间的低精度运算模式、被乘数与乘数之间的混合精度运算模式;混合精度运算模式包括:被乘数的低位与乘数的低位之间的运算,被乘数的高位与乘数的低位之间的运算,被乘数的高位与乘数的高位之间的运算,被乘数的低位与乘数的高位之间的运算。低精度运算模式是单个Booth乘法器输出运算结果的模式,混合精度运算模式是多个Booth乘法器相互拼接运算结果的模式。
部分积累加模块30,通过外部输入信号,调用Booth乘法器执行不同计算模式,能够选择Booth乘法器执行混合精度运算或低精度运算。
部分积累加模块30,还用于根据计算模式和若干符号修正位,选择Booth乘法器的进位端口的输入进位信号;根据计算模式和输入进位信号,对部分积的符号位进行修订。例如:部分积累计模块30在当前Booth乘法器的计算模式为被乘数的低位与乘数的高位之间的运算时,将当前Booth乘法器得到的符号修正位作下一个Booth乘法器的输入进位信号,其中,下一个Booth乘法器的计算模式是被乘数的高位与乘数的高位之间的运算,下一个Booth乘法器所计算的部分积的符号位能够通过进位信号进行修正。
部分积累加模块30,还用于根据计算模式,对若干部分积执行累加操作,并结合修订后的部分积的符号位的和,得到乘数与被乘数的乘积结果。例如:执行低精度运算模式时,对符号位完成扩展计算后,无需对部分积的符号位进行修正,直接对部分积进行累加,便可得到乘数和被乘数的乘积结果。
本实施例中通过编码模块10对输入的被乘数进行编码;部分积产生模块20进行译码产生部分积和符号修正位,通过符号修正位代表编码结果的正负,节约了在部分积产生模块20对部分积执行加一计算所需的加法器;部分积累加模块30用于对部分积进行累加求和得到部分和,并计算出部分积的符号位的和;部分积累加模块30还通过控制信号选择是否需要通过输入进位信号对部分积的符号位进行修正,使Booth乘法器在不同计算模式下,完成部分积累加和符号位扩展计算,最终求解出乘积结果。
本实施例在前一个实施例的基础上,参考说明书附图3,提供了一种Booth乘法器,包括:
部分积产生模块20,还用于根据编码信号,对被乘数移位和/或取反,得到部分积;编码结果与部分积的对应关系如下:当输入乘数B编码结果为0,即X1信号为0,X2信号为0,NEG信号为0时,部分积结果为0;当输入乘数B的编码结果为1,即X1信号为1,X2信号为0,NEG信号为0时,部分积结果为A;当输入乘数B的编码结果为2,即X1信号为0,X2信号为1,NEG信号为0时,部分积结果为A的移位;当输入乘数B的编码结果为-1,即X1信号为1,X2信号为0,NEG信号为1时,部分积结果为A的取反;当输入乘数B的编码结果为-2,即X1信号为0,X2信号为1,NEG信号为1时,部分积结果为A的移位取反。
部分积产生模块20,还用于根据编码信号为正数或负数,设定编码信号对应的符号修正位。例如:在编码结果为正数时,符号修正位amend[i]为0,在编码结果为负数时,符号修正位为amend[i]为1,i为正整数。
本实施例提供了部分积产生模块20根据编码结果,具体得到部分积和符号修正位的逻辑。在使用常规的Booth乘法器计算时,得到部分积是对被乘数进行取反,和/或移位,和/或加一,加一的计算中需要额外的加法器,而本实施例通过符号修正位amend[i]代表正负,并将符号修正位amend[i]发送给部分积累加模块30,使被乘数取反的计算过程放在部分积累加模块30再进行,节约了加一运算所需求的加法器。本实施例中的部分积产生模块20可通过说明书附图3中的若干数据选择器以及取反电路组成部分积产生电路。
本实施例在前述实施例的基础上,参考说明书附图7、8,提供了一种Booth乘法器,
部分积累加模块30,对部分积的符号位取反,将取反后的部分积的符号位以及求和计算式代入符号位扩展公式,计算得到部分积的符号位的和。
对符号位进行扩展可采用现有技术中的符号位扩展公式;符号位扩展公式如下:
其中,SIGN是部分积的符号位的和,s0是第一部分积的符号位、s1是第二部分积的符号位、s2是第三部分积的符号位、s3是第四部分积的符号位,s4是第五部分积的符号位;该符号位扩展公式可对部分积的符号位进行扩展,此时,若干部分积包括:第一部分积、第二部分积、第三部分积、第四部分积。
本实施例通过对部分积的符号位取反,将求和计算式:;部分积的符号位的取反式:/>带入上述符号位扩展公式。
得到取反符号位后的符号位扩展公式:,其中,sj为第j个部分积的符号位的取反值。
说明书附图7为符号位扩展算法A,符号位扩展算法A是符号位扩展公式对应的扩展方法,说明书附图8为符号位扩展算法B,符号位扩展算法B是取反符号位后的符号位扩展公式对应的扩展方法;由说明书附图7、8可见通过对符号位进行取反处理,能够减少说明书附图4中部分积累加模块30中的加法器阵列的加法器数量。图7中P00-P09是第一部分积的若干比特位,P09为第一部分积的最高位,即为第一部分积的符号位s0,图8中~P09为第一部分积的符号位P09的取反值;图7中P10-P19、P20-P29、P30-P39、P40-P49依次是第二部分积的若干比特位、第三部分积的若干比特位、第四部分积的若干比特位、第五部分积的若干比特位。
本实施例在前述实施例的基础上提供了一种Booth乘法器,
外部输入信号包括:外部输入的进位控制信号和外部输入的符号位控制信号。
部分积累加模块30,还用于在符号位控制信号是低电位时,将上一个Booth乘法器的符号修正位作为输入进位信号,输入到当前Booth乘法器的进位端口。
部分积累加模块30,还用于在符号位控制信号是高电位时,将当前Booth乘法器的符号修正位输入到当前Booth乘法器的进位端口。
本实施例中在符号位控制信号是低电平时,代表需要进行符号位修正,即Booth乘法器正在进行低精度运算或进行混合精度运算中被乘数的高位运算,低电平是电压低的状态, 即为0;而在符号位控制信号是高电位时,代表无需对符号位进行修正向符号位输入低电平,即Booth乘法器正在进行混合精度运算中被乘数的低位运算;高电平是电压高的状态, 即为1。
本实施例在前述实施例的基础上提供了一种Booth乘法器,
部分积累加模块30,还用于当进位控制信号为低电位时,对被乘数的高位进行运算;此时,被乘数的高位所在的部分积累加模块30中的进位输入口接收被乘数的低位所在的部分积累加模块30输出的进位信号,代表正在进行混合精度运算,被乘数的高位正在进行运算,当进位控制信号为高电位时,代表正在进行混合精度运算,被乘数的低位正在进行运算;或,正在进行低精度运算。
本实施例提供了进位控制信号的控制逻辑,通过进位控制信号结合前一个实施例中的符号位扩展信号,能够实现Booth乘法器的计算模式的选择;通过对若干Booth乘法器选择合适的计算模式,能够拼接若干Booth乘法器实现混合精度运算。其中,部分积累加模块30可通过说明书附图4所示的部分积累加电路实现,其中,部分积累加电路由若干反相器、若干半加器,若干数据选择器组成,ppn[m]为第n个部分积的第m比特位的值,in[k]为通过符号修正位生成的符号修正信号,ctrl信号为外部输入信号,Cin为进位信号,进位信号是根据符号修正位得到或由前一级的部分积累加模块30输出,prod[q]是部分和的第q位,Count[n]是第n个部分积的符号位,其中,m,n,k,p,q为非负正整数。
在一个实施例中,本发明提供了一种混合Booth乘法器,包括前述任意一个实施例所述的一种Booth乘法器,即,第一Booth乘法器和第二Booth乘法器,实现n比特乘以2n比特的混合精度乘法计算,通过修改第一Booth乘法器和第二Booth乘法器中的编码模块中编码器数量,部分积产生模块中的部分积产生器的数量,和部分积累加模块中加法器阵列的数量,能够改变单一Booth乘法器的计算能力,也就是n的大小。
第一Booth乘法器包括:第一编码模块、第一部分积产生模块、第一部分积累加模块;第二Booth乘法器,包括:第二编码模块、第二部分积产生模块、第二部分积累加模块。
第一编码模块、第二编码模块根据前述实施例的方法分别对n比特的乘数进行编码,并提供给部分积产生模块。
第一部分积累加模块,根据外部输入信号对第一部分积的符号位输入低电平,并直接对第一部分积执行累加操作,得到输出进位信号和第一部分和,并向第二Booth乘法器提供输出进位信号COUT和第一部分和prodL;第一部分积是乘数与被乘数的低位之间的部分积乘积结果。
第二Booth乘法器,与第一Booth乘法器连接,根据外部输入信号,并接收第一部分积累加模块提供的进位输出信号COUT,对第二部分积的符号位执行修正操作,并对第二部分积执行累加操作,得到第二部分和prodH;第二部分积是乘数与被乘数的高位之间的部分积乘积结果。
第二部分积累加模块,根据第一部分和prodL、第二部分和prodH,得到乘数和被乘数的乘积结果。
本实施例中通过第一Booth乘法器和第二Booth乘法器的结合,能够实现n比特乘以2n比特的乘法计算,Booth乘法器内部具有加法器的数量为ceil(n/2)*(n+1),其中ceil函数为向上取整函数;例如:参考说明书附图5所示的混合Booth乘法器能够实现9位与18位混合精度乘法,对于运算乘数B与被乘数低位AL的第一部分积累加模块,其内部5*10个全加器最低位的输入进位连接符号修正位am0~am4,对于运算乘数B与被乘数高位AH的第二部分积累加模块内,其内部的5*10个全加器最低位的输入进位连接第一部分积累加模块的输出进位。对于运算AL*B的部分积累加模块不需要考虑符号位优化,通过外部输入信号控制部分积累加模块,直接进行累加,对于AH*B进行运算的部分积累加模块,需要对符号位进行处理。通过部分积累加模块执行混合精度运算部分和的累加,相比传统的拼接方案,节约了加法器,在不降低运算精度的前提下减少了整体的电路面积,优化了时序,大幅度提升了乘法器的性能。
在一个实施例中,本发明提供了一种混合Booth乘法器,包括前述实施例中任意一项中所述的一种Booth乘法器,即第一Booth乘法器、第二Booth乘法器、第三Booth乘法器、第四Booth乘法器,以及一加法器;以实现18比特乘以18比特的混合精度乘法计算,也可通过修改Booth乘法器中的编码模块中编码器数量,部分积产生模块中的部分积产生器的数量,和部分积累加模块中加法器阵列的数量,实现2n比特乘以2n比特的乘法计算,其中n由单一Booth乘法器的计算能力决定;
第一Booth乘法器中的第一部分积累加模块,用于计算乘数的低位BL与被乘数的低位AL之间的第一部分积;第二Booth乘法器中的第二部分积累加模块,用于计算乘数的高位BH与被乘数的低位AL之间的第二部分积;第三Booth乘法器中的第三部分积累加模块,用于计算乘数的低位BL与被乘数的高位AH之间的第三部分积;第四Booth乘法器中的第四部分积累加模块,用于计算乘数的高位BH与被乘数的高位AH之间的第四部分积;
通过第一部分积累加模块、第二部分积累加模块、第三部分积累加模块、第四部分积累加模块,分别求和第一部分积、第二部分积、第三部分积、第四部分积,得到第一部分和、第二部分和、第三部分和、第四部分和;
第一部分积累加模块输出第一部分和中的第一乘积结果prod0,并向第二部分积累加模块提供第一部分和中的第一待运算部分;第二部分积累加模块输出第二部分和中的第二乘积结果prod2,并向第三部分积累加模块、加法器提供第二部分和的第二待运算部分;第三部分积累加模块向加法器提供第三部分和;加法器根据第二部分和、第三部分和向第四部分积累加模块提供第三待运算部分,并输出第三乘积结果prod1;第四部分积累加模块根据第三待运算部分和第四部分和,并输出第四乘积结果prod3;
通过拼接第一乘积结果、第二乘积结果、第三乘积结果、第四乘积结果,得到乘数和被乘数的乘积结果。
本实施例通过第一Booth乘法器、第二Booth乘法器、第三Booth乘法器、第四Booth乘法器,能够实现2n比特乘以2n比特的乘法计算,例如:参考说明书附图6所示的混合Booth乘法器能够实现18位与18位混合精度乘法,对于被乘数的低位AL参与的部分积累加模块(即运算AL*BL、AL*BH的部分积累加模块),其内部5*10个全加器最低位的输入进位连接符号修正位am0~am4,对于参与运算被乘数的高位AH的部分积累加模块内部5*10个全加器最低位的输入进位连接相应的AL*BL的输出进位、AL*BH的输出进位;对于参与计算被乘数的低位AL的部分积累加模块不需要考虑符号位优化,对于参与计算被乘数的高位AH的部分积累加模块需要对符号位进行处理。通过部分积累加模块执行混合精度运算部分和的累加,相比传统的拼接方案(传统的乘法器支持混合精度运算的方案,通常需要将乘数与被乘数分为低位与高位,分别组合输入四个乘法器当中,得出部分和,再移位和求和操作,而求和操作通常需要消耗四个加法器)节约了加法器;在不降低运算精度的前提下减少了整体的电路面积,优化了时序,大幅度提升了乘法器的性能。
在一个实施例中,参考说明书附图9,本发明提供了一种Booth乘法器的运算方法,包括:
S110,基于Booth算法对乘数进行编码,得到对应的编码信号。
S120,根据编码信号,对被乘数进行处理,产生若干部分积和若干符号修正位。
S130,根据若干部分积的符号位,计算得到部分积的符号位的和。
S140,根据外部输入信号,选择相应的计算模式。
S150,根据计算模式和若干符号修正位,选择Booth乘法器的进位端口的输入进位信号;根据计算模式和所述输入进位信号,对部分积的符号位进行修订。
S160,根据计算模式,对若干部分积执行累加操作,并结合修订后的部分积的符号位的和,得到乘数与被乘数的乘积结果。
本实施例通过生成符号修正位,对部分积只进行移位操作和取反操作,并通过外部输入信号使其处于不同计算模式下,使Booth乘法器在不同计算模式下,均能完成部分积累加和符号位计算,最终求解出乘积结果。
本实施例在前述实施例的基础上,提供了一种Booth乘法器的运算方法,步骤S130,包括:
外部输入信号包括:外部输入的进位控制信号和外部输入的符号位控制信号;
当进位控制信号为低电位时,对被乘数的高位进行运算;
当进位控制信号为高电位时,对被乘数的低位进行运算;
当符号位控制信号是低电位时,将上一个Booth乘法器的所述符号修正位作为输入进位信号,输入到当前Booth乘法器的进位端口;
当所述符号位控制信号是高电位时,将当前Booth乘法器的所述符号修正位输入到当前Booth乘法器的进位端口;
根据进位控制信号和符号位控制信号,选择相应的计算模式;计算模式包括:被乘数与乘数之间的低精度运算模式、被乘数与乘数之间的混合精度运算模式;混合精度运算模式包括:被乘数的低位与乘数的低位之间的运算,被乘数的高位与乘数的低位之间的运算,被乘数的高位与乘数的高位之间的运算,被乘数的低位与乘数的高位之间的运算。
本实施例提供了外部输入信号控制Booth乘法器的计算模式,例如:通过一个2比特的ctrl信号控制Booth乘法器,ctrl[0]作为进位控制信号控制进位,ctrl[1]作为符号位控制信号控制符号位计算;当ctrl信号为“00”时,代表被乘数的高位AH参与运算,即Booth乘法器正在计算AH*BL或AH*BH;当ctrl信号为“01”时,代表正在进行低精度乘法计算;当ctrl信号“11”时,代表被乘数的低位AL参与运算,即Booth乘法器正在计算AL*BH或AL*BL。
本实施例在前述实施例的基础上提供了一种Booth乘法器的运算方法,步骤S130,包括:
对部分积的符号位取反;
将取反后的部分积的符号位以及求和计算式代入符号位扩展公式,计算得到部分积的符号位的和。对符号位进行扩展可采用符号位扩展公式;符号位扩展公式如下:
其中,SIGN是部分和的符号位,s0是第一部分积的符号位、s1是第二部分积的符号位、s2是第三部分积的符号位、s3是第四部分积的符号位,s4是第五部分积的符号位;该符号位扩展公式可对部分积的符号位的和进行计算,此时,若干部分积包括:第一部分积、第二部分积、第三部分积、第四部分积。
本实施例通过对部分积的符号位取反,将求和计算式:;部分积的符号位的取反式:/>带入上述符号位扩展公式。
得到取反符号位后的符号位扩展公式:,其中,sj为第j部分积的符号位的取反值。
通过上述取反符号位后的符号位扩展公式,可以看出对符号位进行取反处理,能够减少加法器阵列中的加法器数量。
应当说明的是,上述实施例均可根据需要自由组合。以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种Booth乘法器,其特征在于,包括:
编码模块,用于基于Booth算法对乘数进行编码,得到对应的编码信号,将所述编码信号传输给部分积产生模块;
所述部分积产生模块,与所述编码模块连接,用于根据所述编码信号,对被乘数进行处理,产生若干部分积和若干符号修正位,将若干所述部分积和若干所述符号修正位传输给部分积累加模块;
所述部分积累加模块,与所述部分积产生模块连接,用于根据若干所述部分积的符号位,计算得到部分积的符号位的和;
所述部分积累加模块,还用于根据外部输入信号,选择相应的计算模式;
所述部分积累加模块,还用于根据所述计算模式和若干所述符号修正位,选择Booth乘法器的进位端口的输入进位信号;根据所述计算模式和所述输入进位信号,对所述部分积的符号位进行修订;
所述部分积累加模块,还用于根据所述计算模式,对若干所述部分积执行累加操作,并结合修订后的所述部分积的符号位的和,得到所述乘数与所述被乘数的乘积结果;
所述外部输入信号包括:外部输入的进位控制信号和外部输入的符号位控制信号;
所述部分积累加模块,还用于在所述符号位控制信号是低电位时,将上一个Booth乘法器的所述符号修正位作为输入进位信号,输入到当前Booth乘法器的进位端口;
所述部分积累加模块,还用于在所述符号位控制信号是高电位时,将当前Booth乘法器的所述符号修正位输入到当前Booth乘法器的进位端口。
2.根据权利要求1所述的一种Booth乘法器,其特征在于,
所述部分积产生模块,还用于根据所述编码信号,对所述被乘数移位和/或取反,得到所述部分积;
所述部分积产生模块,还用于根据所述编码信号为正数或负数,设定所述编码信号对应的符号修正位。
3.根据权利要求1所述的一种Booth乘法器,其特征在于,
所述部分积累加模块,对所述部分积的符号位取反,将取反后的所述部分积的符号位以及求和计算式代入符号位扩展公式,计算得到所述部分积的符号位的和;
所述求和计算式为
所述符号位扩展公式为
4.根据权利要求3所述的一种Booth乘法器,其特征在于,
所述部分积累加模块,还用于当所述进位控制信号为低电位时,对所述被乘数的高位进行运算;当所述进位控制信号为高电位时,对所述被乘数的低位进行运算。
5.根据权利要求1所述的一种Booth乘法器,其特征在于,
所述计算模式包括:所述被乘数与所述乘数之间的低精度运算模式、所述被乘数与所述乘数之间的混合精度运算模式;所述混合精度运算模式包括:所述被乘数的低位与所述乘数的低位之间的运算,所述被乘数的高位与所述乘数的低位之间的运算,所述被乘数的高位与所述乘数的高位之间的运算,所述被乘数的低位与所述乘数的高位之间的运算。
6.一种混合Booth乘法器,其特征在于,包括权利要求1至5任意一项中两个所述的一种Booth乘法器,即,第一Booth乘法器和第二Booth乘法器,
所述第一Booth乘法器包括:第一编码模块、第一部分积产生模块、第一部分积累加模块;所述第二Booth乘法器,包括:第二编码模块、第二部分积产生模块、第二部分积累加模块;
所述第一部分积累加模块,根据外部输入信号对第一部分积的符号位输入低电平,并直接对所述第一部分积执行累加操作,得到输出进位信号和第一部分和,并向所述第二Booth乘法器提供所述输出进位信号和所述第一部分和;所述第一部分积是所述乘数与所述被乘数的低位之间的部分积乘积结果;
所述第二Booth乘法器,与所述第一Booth乘法器连接,根据外部输入信号对第二部分积的符号位执行修正操作,并对所述第二部分积执行累加操作,得到第二部分和;所述第二部分积是所述乘数与所述被乘数的高位之间的部分积乘积结果;
所述第二部分积累加模块,根据所述第一部分和、所述第二部分和,得到所述乘数和所述被乘数的乘积结果。
7.一种混合Booth乘法器,其特征在于,包括权利要求1至5任意一项中四个所述的一种Booth乘法器,即第一Booth乘法器、第二Booth乘法器、第三Booth乘法器、第四Booth乘法器,以及一加法器;
所述第一Booth乘法器中的第一部分积累加模块,用于计算所述乘数的低位与所述被乘数的低位之间的第一部分积;所述第二Booth乘法器中的第二部分积累加模块,用于计算所述乘数的高位与所述被乘数的低位之间的第二部分积;所述第三Booth乘法器中的第三部分积累加模块,用于计算所述乘数的低位与所述被乘数的高位之间的第三部分积;所述第四Booth乘法器中的第四部分积累加模块,用于计算所述乘数的高位与所述被乘数的高位之间的第四部分积;
通过所述第一部分积累加模块、所述第二部分积累加模块、所述第三部分积累加模块、所述第四部分积累加模块,分别求和所述第一部分积、所述第二部分积、所述第三部分积、所述第四部分积,得到第一部分和、第二部分和、第三部分和、第四部分和;
所述第一部分积累加模块输出所述第一部分和中的第一乘积结果,并向所述第二部分积累加模块提供所述第一部分和中的第一待运算部分;所述第二部分积累加模块输出所述第二部分和中的第二乘积结果,并向所述第三部分积累加模块、所述加法器提供所述第二部分和的第二待运算部分;所述第三部分积累加模块向所述加法器提供所述第三部分和;所述加法器根据所述第二部分和、所述第三部分和向所述第四部分积累加模块提供第三待运算部分,并输出第三乘积结果;所述第四部分积累加模块根据所述第三待运算部分和所述第四部分和,并输出第四乘积结果;
通过拼接所述第一乘积结果、所述第二乘积结果、所述第三乘积结果、所述第四乘积结果,得到所述乘数和所述被乘数的乘积结果。
8.一种Booth乘法器的运算方法,其特征在于,包括:
基于Booth算法对乘数进行编码,得到对应的编码信号;
根据所述编码信号,对被乘数进行处理,产生若干部分积和若干符号修正位;
根据若干所述部分积的符号位,计算得到部分积的符号位的和;
根据外部输入信号,选择相应的计算模式;
根据所述计算模式和若干所述符号修正位,选择Booth乘法器的进位端口的输入进位信号;根据所述计算模式和所述输入进位信号,对所述部分积的符号位进行修订;
根据所述计算模式,对若干所述部分积执行累加操作,并结合修订后的所述部分积的符号位的和,得到所述乘数与所述被乘数的乘积结果。
9.根据权利要求8所述的一种Booth乘法器的运算方法,其特征在于,所述的根据外部输入信号,选择相应的计算模式,包括:
所述外部输入信号包括:外部输入的进位控制信号和外部输入的符号位控制信号;
当所述进位控制信号为低电位时,对所述被乘数的高位进行运算;
当所述进位控制信号为高电位时,对所述被乘数的低位进行运算;
当所述符号位控制信号是低电位时,将上一个Booth乘法器的所述符号修正位作为输入进位信号,输入到当前Booth乘法器的进位端口;
当所述符号位控制信号是高电位时,将当前Booth乘法器的所述符号修正位输入到当前Booth乘法器的进位端口;
根据所述进位控制信号和所述符号位控制信号,选择相应的计算模式;所述计算模式包括:所述被乘数与所述乘数之间的低精度运算模式、所述被乘数与所述乘数之间的混合精度运算模式;所述混合精度运算模式包括:所述被乘数的低位与所述乘数的低位之间的运算,所述被乘数的高位与所述乘数的低位之间的运算,所述被乘数的高位与所述乘数的高位之间的运算,所述被乘数的低位与所述乘数的高位之间的运算。
10.根据权利要求8所述的一种Booth乘法器的运算方法,其特征在于,所述的根据若干所述部分积的符号位,计算得到部分积的符号位的和,包括:
对所述部分积的符号位取反;
将取反后的所述部分积的符号位以及求和计算式代入符号位扩展公式,计算得到所述部分积的符号位的和。
CN202311244047.8A 2023-09-26 2023-09-26 Booth乘法器、混合Booth乘法器及运算方法 Active CN116991359B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311244047.8A CN116991359B (zh) 2023-09-26 2023-09-26 Booth乘法器、混合Booth乘法器及运算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311244047.8A CN116991359B (zh) 2023-09-26 2023-09-26 Booth乘法器、混合Booth乘法器及运算方法

Publications (2)

Publication Number Publication Date
CN116991359A CN116991359A (zh) 2023-11-03
CN116991359B true CN116991359B (zh) 2023-12-22

Family

ID=88525094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311244047.8A Active CN116991359B (zh) 2023-09-26 2023-09-26 Booth乘法器、混合Booth乘法器及运算方法

Country Status (1)

Country Link
CN (1) CN116991359B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1598757A (zh) * 2004-09-02 2005-03-23 中国人民解放军国防科学技术大学 一种支持单指令多操作数的混合乘法器的设计方法
CN101122850A (zh) * 2007-09-21 2008-02-13 清华大学 基于二次Booth编码的大数乘法器
CN111488133A (zh) * 2020-04-15 2020-08-04 电子科技大学 高基数近似布斯编码方法和混合基数布斯编码近似乘法器
CN112540743A (zh) * 2020-12-21 2021-03-23 清华大学 面向可重构处理器的有无符号乘累加器及方法
CN113031915A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 乘法器、数据处理方法、装置及芯片
CN113031912A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 乘法器、数据处理方法、装置及芯片
CN115982528A (zh) * 2022-11-25 2023-04-18 上海交通大学 基于Booth算法的近似预编码卷积运算方法及系统
CN116205244A (zh) * 2023-05-06 2023-06-02 中科亿海微电子科技(苏州)有限公司 一种数字信号处理结构

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043517B2 (en) * 2003-03-07 2006-05-09 Faraday Technology Corp. Multiply accumulator for two N bit multipliers and an M bit addend
CN100517213C (zh) * 2004-08-26 2009-07-22 松下电器产业株式会社 乘法装置
US20090198758A1 (en) * 2008-01-31 2009-08-06 International Business Machines Corporation Method for sign-extension in a multi-precision multiplier
US8892621B2 (en) * 2011-12-19 2014-11-18 Lsi Corporation Implementation of negation in a multiplication operation without post-incrementation
US10684825B2 (en) * 2018-08-28 2020-06-16 Cavium, Llc Compressing like magnitude partial products in multiply accumulation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1598757A (zh) * 2004-09-02 2005-03-23 中国人民解放军国防科学技术大学 一种支持单指令多操作数的混合乘法器的设计方法
CN101122850A (zh) * 2007-09-21 2008-02-13 清华大学 基于二次Booth编码的大数乘法器
CN113031915A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 乘法器、数据处理方法、装置及芯片
CN113031912A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 乘法器、数据处理方法、装置及芯片
CN111488133A (zh) * 2020-04-15 2020-08-04 电子科技大学 高基数近似布斯编码方法和混合基数布斯编码近似乘法器
CN112540743A (zh) * 2020-12-21 2021-03-23 清华大学 面向可重构处理器的有无符号乘累加器及方法
CN115982528A (zh) * 2022-11-25 2023-04-18 上海交通大学 基于Booth算法的近似预编码卷积运算方法及系统
CN116205244A (zh) * 2023-05-06 2023-06-02 中科亿海微电子科技(苏州)有限公司 一种数字信号处理结构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种嵌入于微处理器的8位乘加器的设计;韩桂泽;胡越黎;向慧芳;;计算机测量与控制(第05期);第651-654页 *

Also Published As

Publication number Publication date
CN116991359A (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
US20210349692A1 (en) Multiplier and multiplication method
US6704762B1 (en) Multiplier and arithmetic unit for calculating sum of product
US10776078B1 (en) Multimodal multiplier systems and methods
Kim et al. A carry-free 54b/spl times/54b multiplier using equivalent bit conversion algorithm
US20040071041A1 (en) DSP unit for multi-level global accumulation
US6754689B2 (en) Method and apparatus for performing subtraction in redundant form arithmetic
US20040252829A1 (en) Montgomery modular multiplier and method thereof using carry save addition
JP2007234004A (ja) ブース乗算の装置および方法
Al-Khaleel et al. Fast and compact binary-to-BCD conversion circuits for decimal multiplication
JPS60163128A (ja) 乗算回路
US7912891B2 (en) High speed low power fixed-point multiplier and method thereof
CN100382011C (zh) 蒙哥马利乘法器中的流水线内核
US20090013022A1 (en) Multiplier Engine Apparatus and Method
CN116991359B (zh) Booth乘法器、混合Booth乘法器及运算方法
JP2006172035A (ja) 除算・開平演算器
US7840628B2 (en) Combining circuitry
CN109379191B (zh) 一种基于椭圆曲线基点的点乘运算电路和方法
KR20000024841A (ko) 레머 알고리즘을 이용한 난수발생기
US5999962A (en) Divider which iteratively multiplies divisor and dividend by multipliers generated from the divisors to compute the intermediate divisors and quotients
Tomczak Hierarchical residue number systems with small moduli and simple converters
CN115658007A (zh) 一种高带宽可配流水级的并行乘法器运算方法
TWI713311B (zh) 借助表示法變換執行極化解碼之方法及相關極化解碼器
CN113672196A (zh) 一种基于单数字信号处理单元的双乘法计算装置和方法
TWI858950B (zh) k簇殘數系統及產生k簇殘數系統的方法
JP2991788B2 (ja) 復号器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant