CN104572010A - 基于fpga芯片的乘法器 - Google Patents

基于fpga芯片的乘法器 Download PDF

Info

Publication number
CN104572010A
CN104572010A CN201310472755.7A CN201310472755A CN104572010A CN 104572010 A CN104572010 A CN 104572010A CN 201310472755 A CN201310472755 A CN 201310472755A CN 104572010 A CN104572010 A CN 104572010A
Authority
CN
China
Prior art keywords
multiplier
data
look
multiplicand
volume data
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
CN201310472755.7A
Other languages
English (en)
Other versions
CN104572010B (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.)
Capital Microelectronics Beijing Technology Co Ltd
Original Assignee
Capital Microelectronics Beijing 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 Capital Microelectronics Beijing Technology Co Ltd filed Critical Capital Microelectronics Beijing Technology Co Ltd
Priority to CN201310472755.7A priority Critical patent/CN104572010B/zh
Publication of CN104572010A publication Critical patent/CN104572010A/zh
Application granted granted Critical
Publication of CN104572010B publication Critical patent/CN104572010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及一种基于FPGA芯片的乘法器,包括:部分积产生器,由第一查找表实现,用于对乘数和被乘数中每一位分别进行与操作,获得n项部分积数据,其中,所述第一查找表根据乘数和被乘数中每一位分别进行与操作时,和所述被乘数相与的数据的位置而选定,使前述对乘数和被乘数中每一位分别进行与操作的所述第一查找表彼此相对移位,使得n项部分积数据彼此实现移位;累加器,由第二查找表实现,用于实现对所述n项部分积数据的累加处理,获得求和数据。由此实现了利用FPGA芯片中的加法进位链来实现乘法的功能,而且基于最优二叉树构建的累加器的运用提高了整个FPGA芯片的运行效率。

Description

基于FPGA芯片的乘法器
技术领域
本发明涉及一种乘法器,尤其涉及一种基于FPGA芯片的乘法器。
背景技术
在FPGA设计中,经常要用到乘法操作。而在FPGA的芯片架构中,通常会拥有大量的进位链用于实现加法操作。
现有技术中,在FPGA芯片中利用加法进位链实现乘法功能的研究目前还处于空白状态,而利用其他方法实现乘法的功能时,由于最终乘积的串行加法运算的次数往往过大,从而造成整个FPGA芯片运行效率低。
发明内容
本发明的目的是针对现有技术的缺陷,提供了一种基于FPGA芯片的乘法器,该乘法器可以利用FPGA芯片中的加法进位链来实现乘法的功能。
为实现上述目的,本发明提供了一种基于FPGA芯片的乘法器,该乘法器包括:
部分积产生器,由第一查找表实现,用于对乘数和被乘数中每一位分别进行与操作,获得n项部分积数据,所述乘数包括m位数据,所述被乘数包括n位数据,所述n项部分积数据中各项均包括m位数据,其中,所述第一查找表根据乘数和被乘数中每一位分别进行与操作时,和所述被乘数相与的数据的位置而选定,使前述对乘数和被乘数中每一位分别进行与操作的所述第一查找表彼此相对移位,使得n项部分积数据彼此实现移位;
累加器,由第二查找表实现,用于实现对所述n项部分积数据的累加处理,获得求和数据,所述求和数据包括m+n位数据。
在一种可能的实现方式,当所述乘法器处理的乘数和被乘数具有符号位时,所述部分积产生器还用于对所述获得的n项部分积数据中第1、2、...、n-1项部分积数据的第n位进行取反操作,同时对第n项部分积数据的第1、2、...、n-1位进行取反操作。
在一种可能的实现方式中,所述累加器包括第三查找表,用于实现对所述n项部分积数据的累加处理后的进位处理。
在一种可能的实现方式中,用最优二叉树来构建实现对所述n项部分积数据的累加处理的累加器。
在一种可能的实现方式中,所述第一查找表对乘数的第i位和被乘数的第j位进行与操作而获得一项部分积数据中的一位,所述第二查找表输入乘数的第I位和被乘数的第J位以及所述一项部分积数据中的一位,对乘数的第I位和被乘数的第J位执行与操作而获得另一项部分积数据中的一位,对所述一项部分积数据中的一位和所述另一项部分积数据中的一位执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述两项部分积数据中两位的第一累加和,其中,i,j,I和J均为自然数,i,I≤m,j,J≤n。
在一种可能的实现方式中,所述第二查找表输入乘数的第t位和被乘数的第T位以及两项部分积数据中两位的第一累加和,对乘数的第t位和被乘数的第T位进行与操作而获得另一项部分积数据中的一位,对所述第一累加和和所述另一项部分积数据中的一位执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述三项部分积数据中三位的第二累加和,其中,t和T均为自然数,t≤m,T≤n。
在一种可能的实现方式中,所述累加器还包括第四查找表;所述第四查找表输入两项部分积数据中两位的第三累加和和另两项部分积数据中两位的第四累加和,对所述第三累加和和所述第四累加和执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述四项部分积数据中四位的第五累加和。
在一种可能的实现方式中,所述部分积产生器中的所述第一查找表和所述累加器中的所述第二查找表部分合并为同一个查找表。
在一种可能的实现方式中,所述累加器还用于:对所述获得的求和数据和一个常数项做累加处理。
本发明的基于FPGA芯片的乘法器,在对乘数和被乘数进行乘法运算时,其中,乘数包括m位,被乘数包括n位,且m>=n,通过由查找表实现的部分积产生器产生n项部分积数据,通过基于最优二叉树构建的累加器实现该n项部分积数据的累加,从而保证了n项部分积数据的串行加法次数不超过log2 n次,提高了整个FPGA芯片的运行效率。
附图说明
图1为本发明实施例一提供的基于FPGA芯片的乘法器;
图2为用查找表实现4*4无符号数累加处理示意图;
图3为用查找表实现进位处理的示意图;
图4为本发明实施例二提供的基于FPGA芯片的乘法器;
图5为用最优二叉树构建的累加器实现4*4无符号数累加处理的示意图;
图6为用查找表实现累加操作示意图之一;
图7为用查找表实现累加操作示意图之二;
图8为用查找表实现累加操作示意图之三;
图9为本发明利用最优二叉树构建累加器的逻辑示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明实施例一提供的基于FPGA芯片的乘法器,如图1所示,该基于FPGA芯片的乘法器10包括部分积产生器101和累加器102。
部分积产生器101,由第一查找表实现,用于对乘数和被乘数中每一位分别进行与操作,获得n项部分积数据,所述乘数包括m位数据,所述被乘数包括n位数据,所述n项部分积数据中各项均包括m位数据,其中,所述第一查找表根据乘数和被乘数中每一位分别进行与操作时,和所述被乘数相与的数据的位置而选定,使前述对乘数和被乘数中每一位分别进行与操作的所述第一查找表彼此相对移位,使得n项部分积数据彼此实现移位。
具体地,假如乘数包括m位数据,表示为A[0]、A[1]、...、A[m-1],被乘数包括n位数据,表示为B[0]、B[1]、...、B[n-1],将乘数和被乘数的每一位分别进行与操作,获得n项部分积数据;需要说明的是,此处m>=n,当m<n的时候,需要将乘数与被乘数进行交换,这样才能保证部分积的数量尽量少,从而累加的次数尽量少,运行的效率才会高。将乘数和被乘数的每一位分别进行与操作具体实现为首先将A[0]、A[1]、...、A[m-1]分别与B[0]进行与操作,获得第一项部分积数据p0[0]、p0[1]、...、p0[m-1],该第一项部分积数据总共包括m位,然后将A[0]、A[1]、...、A[m-1]分别与B[1]进行与操作,获得第二项部分积数据p1[0]、p1[1]、...、p1[m-1],该第二项部分积数据总也包括m位,以此类推,直至将A[0]、A[1]、...、A[m-1]分别与B[n-1]进行与操作,获得第n项部分积数据pn-1[0]、pn-1[1]、...、pn-1[m-1]。需要说明的是,在上述过程中,乘数的第i位A[i-1]和被乘数的第j位B[j-1]的与操作通过第一查找表实现,其中,i,j均为自然数,且i≤m,j≤n,该第一查找表只实现两位数据相与的操作;在将乘数的第i位A[i-1]和被乘数的第j位B[j-1]进行相与的操作时,根据j去选定相应的第一查找表,从而使前述对乘数和被乘数中每一位分别进行与操作的第一查找表彼此相对移位,使得n项部分积数据彼此实现移位。
累加器102,由第二查找表实现,用于实现对所述n项部分积数据的累加处理,获得求和数据,所述求和数据包括m+n位数据。
为了提高运算效率,即在实现与操作的同时进行异或操作,将部分积产生器101中的第一查找表和累加器102中的第二查找表部分合并为同一个查找表。优选地,由第二查找表同时实现对输入的数据进行与操作和异或操作。图2为用查找表实现4*4无符号数累加处理示意图,图中,乘数包括4位数据,表示为A[0]、A[1]、...、A[3],被乘数包括4位数据,表示为B[0]、B[1]、...、B[3],第一列是乘数的各位与被乘数的第一位B[0]进行与操作,即从第一行开始依次选定四个第一查找表LUTAND即可,第二列是乘数的各位与被乘数的第二位B[1]进行与操作,由于是与被乘数的第二位进行与操作,且同时可与第一列的结果数据进行异或操作,所以从第二行开始依次选定四个第二查找表LUT4CA即可,依次类推,直至选定第四列的四个第二查找表LUT4CA。从图2中可以看出,上述选定的4列查找表彼此相对移位,使得四项部分积数据彼此实现移位;对该四项部分积数据做累加处理之后,即可获得求和数据p[0]、p[1]、...、p[7],该求和数据包括4+4=8位数据。
需要说明的是,当乘数和被乘数均为符号数时,部分积产生器101还用于对获得的n项部分积数据中第1、2、...、n-1项部分积数据的第n位进行取反操作,同时对第n项部分积数据的第1、2、...、n-1位进行取反操作;累加器102还用于对所述获得的求和数据和一个常数项做累加处理。具体为,在获得求和数据之后,当乘数和被乘数包括的数据位数相等时,即m=n时,累加器102还用于对该求和数据中的第m位、第2*m-1位分别和1做累加处理;当乘数和被乘数包括的数据位数不相等时,累加器102还用于对获得的求和数据中的第n-1位、第m-1位和第2*m-1位分别和1做累加处理。参见图2,在乘数A[0]、A[1]、...、A[3]和被乘数B[0]、B[1]、...、B[3]均为符号数时,通过LUTAND对A[3]与B[0]相与之后得到的第一项部分积数据的最高位p0[3]取反之后输入到相应的LUT4CA中,同样通过LUT4CA对A[3]与B[1]相与之后得到的第二项部分积数据的最高位p1[3]取反之后输入到相应的LUT4CA中,通过LUT4CA对A[3]与B[2]相与之后得到的第三项部分积数据的最高位p2[3]取反之后输入到相应的LUT4CA中;同时通过LUT4CA对A[2]与B[3]相与之后得到的第四项部分积数据的第3位p3[2]取反之后输出,通过LUT4CA对A[1]与B[3]相与之后得到的第四项部分积数据的第2位p3[1]取反之后输出,通过LUT4CA对A[0]与B[3]相与之后得到的第四项部分积数据的第1位p3[0]取反之后输出;在获得求和数据之后,因为m=n=4,所以需要对求和数据的第4位p[3]和第7位p[6]分别和1做累加处理。
优选地,累加器102还包括第三查找表,用于实现对所述n项部分积数据的累加处理后的进位处理。具体地,如图2所示,在第二查找表LUT4CA对乘数的最高位A[3]与被乘数除第一位之外的其他位B[1]、B[2]和B[3]相与之后,通过第三查找表LUT4C0实现向高位的进位。举例为,参见图3所示的用查找表实现进位处理的示意图,图中,在第二查找表LUT4CA对乘数的最高位A[3]与被乘数的最高位B[3]相与之后,向高位的进位co输入到XOR2中,第三查找表LUT4C0输出恒为0,将第三查找表的输出和向高位的进位co进行异或处理之后,即可输出向高位的进位co。
图4为本发明实施例二提供的基于FPGA芯片的乘法器,如图4所示,该基于FPGA芯片的乘法器40包括部分积产生器401和累加器402。部分积产生器401,由第一查找表实现,用于对乘数和被乘数中每一位分别进行与操作,获得n项部分积数据,所述乘数包括m位数据,所述被乘数包括n位数据,所述n项部分积数据中各项均包括m位数据,其中,所述第一查找表根据乘数和被乘数中每一位分别进行与操作时,和所述被乘数相与的数据的位置而选定,使前述对乘数和被乘数中每一位分别进行与操作的所述第一查找表彼此相对移位,使得n项部分积数据彼此实现移位。
需要说明的是,此处m>=n,当m<n的时候,需要将乘数与被乘数进行交换,这样才能保证部分积的数量尽量少,从而累加的次数尽量少,运行的效率才会高。
累加器402,由第二查找表和第四查找表实现,用于实现对所述n项部分积数据的累加处理,获得求和数据,所述求和数据包括m+n位数据。
第四查找表LUT4C实现对输入的两个数据的异或操作。优选地,用最优二叉树来构建实现对所述n项部分积数据的累加处理的累加器402。图5为用最优二叉树构建的累加器实现4*4无符号数累加处理的示意图,图5中,乘数包括4位数据,表示为A[0]、A[1]、...、A[3],被乘数包括4位数据,表示为B[0]、B[1]、...、B[3],将乘数和被乘数的每一位分别进行与操作,获得4项部分积数据,在对4项部分积数据做累加处理时,给定该4项部分积数据4个权值,举例为,该权值可以为1,根据给定的4个权值,将该4项部分积数据作为4个叶子节点构建最优二叉树,根据构建的最优二叉树,并且根据和被乘数相与的数据的位置而选定相应的4列查找表,该4列查找表既包括第一查找表LUTAND又包括第二查找表LUT4CA;将上述4项部分积数据通过选定的查找表实现两两累加运算,得到两个累加和,最后通过第四查找表LUT4C对得到的两个累加和进行累加。
需要说明的是,当乘数和被乘数均为符号数时,部分积产生器401还用于对获得的n项部分积数据中第1、2、...、n-1项部分积数据的第n位进行取反操作,同时对第n项部分积数据的第1、2、...、n-1位进行取反操作;累加器102还用于对所述获得的求和数据和一个常数项做累加处理。具体为,在获得求和数据之后,当乘数和被乘数包括的数据位数相等时,即m=n时,累加器102还用于对该求和数据中的第m位、第2*m-1位分别和1做累加处理;当乘数和被乘数包括的数据位数不相等时,累加器102还用于对获得的求和数据中的第n-1位、第m-1位和第2*m-1位分别和1做累加处理。参见图5,在乘数A[0]、A[1]、...、A[3]和被乘数B[0]、B[1]、...、B[3]均为符号数时,通过LUTAND对A[3]与B[0]相与之后得到的第一项部分积数据的最高位p0[3]取反之后输入到相应的LUT4CA中,同样通过LUT4CA对A[3]与B[1]相与之后得到的第二项部分积数据的最高位p1[3]取反之后输入到相应的LUT4C中,通过LUTAND对A[3]与B[2]相与之后得到的第三项部分积数据的最高位p2[3]取反之后输入到相应的LUT4CA中;同时通过LUT4CA对A[2]与B[3]相与之后得到的第四项部分积数据的第3位p3[2]取反之后再执行与其他数据的异或操作,通过LUT4CA对A[1]与B[3]相与之后得到的第四项部分积数据的第2位p3[1]取反之后再执行与其他数据的异或操作,通过LUT4CA对A[0]与B[3]相与之后得到的第四项部分积数据的第1位p3[0]取反之后再执行与其他数据的异或操作;在获得求和数据之后,因为m=n=4,所以需要对求和数据的第4位p[3]和第7位p[6]分别和1做累加处理。
优选地,累加器402还包括第三查找表,用于实现对所述n项部分积数据的累加处理后的进位处理。具体地,如图5所示,图中的累加运算只需要用到两个第三查找表,在第二查找表LUT4CA对乘数的最高位A[3]与被乘数的最高位B[3]相与之后,以及在第二查找表LUT4CA对乘数的最高位A[3]与被乘数的第2位B[1]相与之后,通过第三查找表LUT4C0实现向高位的进位。
为了便于理解累加器如何通过查找表实现累加运算,以下将对第一查找表、第二查找表和第三查找表实现数据运算的过程进行详细说明。
第一查找表对乘数的第i位和被乘数的第j位进行与操作而获得一项部分积数据中的一位,所述第二查找表输入乘数的第I位和被乘数的第J位以及所述一项部分积数据中的一位,对乘数的第I位和被乘数的第J位执行与操作而获得另一项部分积数据中的一位,对所述一项部分积数据中的一位和所述另一项部分积数据中的一位执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述两项部分积数据中两位的第一累加和,其中,i,j,I和J均为自然数,i,I≤m,j,J≤n。举例为,参见图6所示的用查找表实现累加操作示意图之一,如图6所示,乘数包括4位数据,表示为A[0]、A[1]、...、A[3],被乘数包括4位数据,表示为B[0]、B[1]、...、B[3],第一查找表LUTAND对乘数的第2位A[1]和被乘数的第1位B[0]进行与操作而获得第1项部分积数据中的第2位,第二查找表LUT4CA输入乘数的第1位A[0]和被乘数的第2位B[1]以及上述求得的第1项部分积数据中的第2位,第二查找表LUT4CA首先对乘数的第1位A[0]和被乘数的第2位B[1]执行与操作而获得第2项部分积数据中的第1位,然后对第1项部分积数据中的第2位和第2项部分积数据中的第1位执行异或运算,将运算结果输入到多路选择器和两输入的异或门中,多路选择器中同时输入低位向该位的进位ci,并且输入乘数的第1位A[0],经处理之后输出该位向高位的进位co;上述两输入的异或门中同时也输入低位向该位的进位ci,两输入的异或门对ci和第二查找表输出的结果进行异或运算后输出第1项部分积数据中的第2位和第2项部分积数据中的第1位的第一累加和。
第二查找表输入乘数的第t位和被乘数的第T位以及两项部分积数据中两位的第一累加和,对乘数的第t位和被乘数的第T位进行与操作而获得另一项部分积数据中的一位,对所述两项部分积数据中两位的第一累加和和所述另一项部分积数据中的一位执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述三项部分积数据中三位的第二累加和,其中,t和T均为自然数,t≤m,T≤n。举例为,参见图7所示的用查找表实现累加操作示意图之二,如图7所示,假如乘数包括3位数据,表示为A[0]、A[1]、A[2],被乘数包括3位数据,表示为B[0]、B[1]、B[2],第二查找表LUT4CA输入乘数的第1位和被乘数的第3位以及第1项部分积数据中第3位和第2项部分积数据中第2位的第一累加和,表示为S1,对乘数的第1位A[0]和被乘数的第3位B[2]进行与操作而获得第3项部分积数据中的第1位,对S1和第3项部分积数据中的第1位执行异或运算,将运算结果输入到多路选择器和两输入的异或门中,多路选择器中同时输入低位向该位的进位ci,并且输入乘数的第1位A[0],经处理之后输出该位向高位的进位co;上述两输入的异或门中同时也输入低位向该位的进位ci,两输入的异或门对ci和第二查找表输出的结果进行异或运算后输出S1与第3项部分积数据中的第1位的第二累加和。
第四查找表LUT4C输入两项部分积数据中两位的第三累加和和另两项部分积数据中两位的第四累加和,对所述第三累加和和所述第四累加和执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述四项部分积数据中四位的累加和。举例为,参见图8所示的用查找表实现累加操作示意图之三,如图8所示,乘数包括4位数据,表示为A[0]、A[1]、...、A[3],被乘数包括4位数据,表示为B[0]、B[1]、...、B[3],第四查找表LUT4C输入第1项部分积数据中第4位和第2项部分积数据中第3位的第三累加和S3以及第3项部分积数据中第2位和第4项部分积数据中第1位的第四累加和S4,对S3和S4执行异或运算,将运算结果输入到多路选择器和两输入的异或门中,多路选择器中同时输入低位向该位的进位ci,并且输入S4,经处理之后输出该位向高位的进位co;上述两输入的异或门中同时也输入低位向该位的进位ci,两输入的异或门对ci和第二查找表输出的结果进行异或运算后输出S3和S4的第五累加和。
图9为本发明利用最优二叉树构建累加器的逻辑示意图,图9中,A、B、C和D分别表示通过部分积移位器处理后得到的4项部分积数据。该4项部分积数据产生3个加法,表示为A+B+C+D,分别为A、B、C和D赋予4个权值,举例为,4个权值均为1。将上述三个加法以树状结构表示,并通过最优二叉树的算法对这棵加法树进行深度上的平衡,就可以得到分别以A、B、C和D为叶子节点的最优二叉树,根据该最优二叉树计算上述加法运算的过程为:先计算A+B,再计算C+D,然后将两者计算得到的和做累加处理;或者先计算C+D,再计算A+B,然后将两者计算得到的和做累加处理。利用最优二叉树对加法运算进行平衡处理之后再做累加处理,可以保证整个加法运算的过程中串行加法次数不超过log2n次,其中n表示通过部分积移位器处理后得到的n项部分积数据,从而提高整个FPGA芯片的运行效率。
本发明的基于FPGA芯片的乘法器,通过由查找表实现的部分积产生器产生n项部分积数据,通过基于最优二叉树构建的累加器实现该n项部分积数据的累加,从而保证了n项部分积数据的串行加法次数不超过log2 n次,提高了整个FPGA芯片的运行效率。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于FPGA芯片的乘法器,其特征在于,所述乘法器包括:
部分积产生器,由第一查找表实现,用于对乘数和被乘数中每一位分别进行与操作,获得n项部分积数据,所述乘数包括m位数据,所述被乘数包括n位数据,所述n项部分积数据中各项均包括m位数据,其中,所述第一查找表根据乘数和被乘数中每一位分别进行与操作时,和所述被乘数相与的数据的位置而选定,使前述对乘数和被乘数中每一位分别进行与操作的所述第一查找表彼此相对移位,使得n项部分积数据彼此实现移位;
累加器,由第二查找表实现,用于实现对所述n项部分积数据的累加处理,获得求和数据,所述求和数据包括m+n位数据。
2.根据权利要求1所述的乘法器,其特征在于,当所述乘法器处理的乘数和被乘数具有符号位时,所述部分积产生器还用于对所述获得的n项部分积数据中第1、2、...、n-1项部分积数据的第n位进行取反操作,同时对第n项部分积数据的第1、2、...、n-1位进行取反操作。
3.根据权利要求1或2所述的乘法器,其特征在于,所述累加器包括第三查找表,用于实现对所述n项部分积数据的累加处理后的进位处理。
4.根据权利要求1或2所述的乘法器,其特征在于,用最优二叉树来构建实现对所述n项部分积数据的累加处理的累加器。
5.根据权利要求4所述的乘法器,其特征在于,所述第一查找表对乘数的第i位和被乘数的第j位进行与操作而获得一项部分积数据中的一位,所述第二查找表输入乘数的第I位和被乘数的第J位以及所述一项部分积数据中的一位,对乘数的第I位和被乘数的第J位执行与操作而获得另一项部分积数据中的一位,对所述一项部分积数据中的一位和所述另一项部分积数据中的一位执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述两项部分积数据中两位的第一累加和,其中,i,j,I和J均为自然数,i,I≤m,j,J≤n。
6.根据权利要求4所述的乘法器,其特征在于,所述第二查找表输入乘数的第t位和被乘数的第T位以及两项部分积数据中两位的第一累加和,对乘数的第t位和被乘数的第T位进行与操作而获得另一项部分积数据中的一位,对所述第一累加和和所述另一项部分积数据中的一位执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述三项部分积数据中三位的第二累加和,其中,t和T均为自然数,t≤m,T≤n。
7.根据权利要求4所述的乘法器,其特征在于,所述累加器还包括第四查找表;所述第四查找表输入两项部分积数据中两位的第三累加和和另两项部分积数据中两位的第四累加和,对所述第三累加和和所述第四累加和执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述四项部分积数据中四位的第五累加和。
8.根据权利要求1所述的乘法器,其特征在于,所述部分积产生器中的所述第一查找表和所述累加器中的所述第二查找表部分合并为同一个查找表。
9.根据权利要求2所述的乘法器,其特征在于,所述累加器还用于:对所述获得的求和数据和一个常数项做累加处理。
CN201310472755.7A 2013-10-11 2013-10-11 基于fpga芯片的乘法器 Active CN104572010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310472755.7A CN104572010B (zh) 2013-10-11 2013-10-11 基于fpga芯片的乘法器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310472755.7A CN104572010B (zh) 2013-10-11 2013-10-11 基于fpga芯片的乘法器

Publications (2)

Publication Number Publication Date
CN104572010A true CN104572010A (zh) 2015-04-29
CN104572010B CN104572010B (zh) 2017-08-25

Family

ID=53088190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310472755.7A Active CN104572010B (zh) 2013-10-11 2013-10-11 基于fpga芯片的乘法器

Country Status (1)

Country Link
CN (1) CN104572010B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808206A (zh) * 2016-03-04 2016-07-27 广州海格通信集团股份有限公司 基于ram实现乘法运算的方法及其系统
CN107885485A (zh) * 2017-11-08 2018-04-06 无锡中微亿芯有限公司 一种基于超前进位实现快速加法的可编程逻辑单元结构
CN111752528A (zh) * 2020-06-30 2020-10-09 无锡中微亿芯有限公司 一种支持高效乘法运算的基本逻辑单元
CN116402106A (zh) * 2023-06-07 2023-07-07 深圳市九天睿芯科技有限公司 神经网络加速方法、神经网络加速器、芯片及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259523A (zh) * 2012-02-17 2013-08-21 京微雅格(北京)科技有限公司 一种加法链优化的方法和采用该加法链的集成电路
CN103258566A (zh) * 2012-02-17 2013-08-21 京微雅格(北京)科技有限公司 一种采用移位链的集成电路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259523A (zh) * 2012-02-17 2013-08-21 京微雅格(北京)科技有限公司 一种加法链优化的方法和采用该加法链的集成电路
CN103258566A (zh) * 2012-02-17 2013-08-21 京微雅格(北京)科技有限公司 一种采用移位链的集成电路

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
朱世宇等: "基于FPGA的阵列乘法器的设计与实现", 《自动化与仪器仪表》 *
王文理等: "基于FPGA数字乘法器的设计", 《电脑知识与技术》 *
王荣海等: "基于FPGA的16位乘法器芯片的设计", 《四川理工学院学报(自然科学版)》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808206A (zh) * 2016-03-04 2016-07-27 广州海格通信集团股份有限公司 基于ram实现乘法运算的方法及其系统
CN105808206B (zh) * 2016-03-04 2019-01-08 广州海格通信集团股份有限公司 基于ram实现乘法运算的方法及其系统
CN107885485A (zh) * 2017-11-08 2018-04-06 无锡中微亿芯有限公司 一种基于超前进位实现快速加法的可编程逻辑单元结构
CN107885485B (zh) * 2017-11-08 2021-07-06 无锡中微亿芯有限公司 一种基于超前进位实现快速加法的可编程逻辑单元结构
CN111752528A (zh) * 2020-06-30 2020-10-09 无锡中微亿芯有限公司 一种支持高效乘法运算的基本逻辑单元
CN111752528B (zh) * 2020-06-30 2021-12-07 无锡中微亿芯有限公司 一种支持高效乘法运算的基本逻辑单元
CN116402106A (zh) * 2023-06-07 2023-07-07 深圳市九天睿芯科技有限公司 神经网络加速方法、神经网络加速器、芯片及电子设备
CN116402106B (zh) * 2023-06-07 2023-10-24 深圳市九天睿芯科技有限公司 神经网络加速方法、神经网络加速器、芯片及电子设备

Also Published As

Publication number Publication date
CN104572010B (zh) 2017-08-25

Similar Documents

Publication Publication Date Title
Kumar et al. Design of High Speed 8-bit Vedic Multiplier using Brent Kung Adders
CN104572010A (zh) 基于fpga芯片的乘法器
CN101295237B (zh) 求商和余数的高速除法器
Jaberipur et al. Efficient realisation of arithmetic algorithms with weighted collection of posibits and negabits
Samavi et al. Modular array structure for non-restoring square root circuit
Surendran et al. Implementation of fast multiplier using modified Radix-4 booth algorithm with redundant binary adder for low energy applications
Haritha et al. Design of an enhanced array based approximate arithmetic computing model for multipliers and squarers
Kumar et al. Analysis of high speed radix-4 serial multiplier
Kumawat et al. Design and comparison of 8× 8 Wallace Tree Multiplier using CMOS and GDI technology
Timarchi et al. A novel high-speed low-power binary signed-digit adder
Kodali et al. Fpga implementation of 160-bit vedic multiplier
Laxman et al. FPGA implementation of different multiplier architectures
Sadeghian et al. Optimized low-power elementary function approximation for Chebyshev series approximations
Vun et al. Thermometer code based modular arithmetic
Liang et al. An innovative Booth algorithm
Kashyap et al. Implementation of High Performance Fir Filter Using Low Power Multiplier and Adder
Chang et al. Fixed-point computing element design for transcendental functions and primary operations in speech processing
Liang et al. An IMPLY-based Memristive Multiplier for Computing-in-Memory Systems with Weight-Stationary CNN Acceleration
Samundiswary et al. Design and Analysis of CMOS Based DADDA Multiplier
Meher Memory-based computation of inner-product for digital signal processing applications
Bhosale et al. Optimization of Partial Products in Modified Booth Multiplier Check for updates
Sahoo et al. A high speed FIR filter architecture based on novel higher radix algorithm
Priya et al. Implementation and comparison of vedic multiplier using area efficient CSLA architectures
Amaricai et al. SRT radix-2 dividers with (5, 4) redundant representation of partial remainder
Kapur et al. Implementation of 9 bit Signed Vedic Multiplier on Zed Board

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PP01 Preservation of patent right

Effective date of registration: 20180601

Granted publication date: 20170825

PP01 Preservation of patent right
PD01 Discharge of preservation of patent

Date of cancellation: 20210601

Granted publication date: 20170825

PD01 Discharge of preservation of patent