基于fpga芯片的乘法器的制造方法_3

文档序号:8257890阅读:来源:国知局
一项部分积数据中的一位执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述三项部分积数据中三位的第二累加和,其中,t和T均为自然数,t^m,T^n0举例为,参见图7所示的用查找表实现累加操作示意图之二,如图7所示,假如乘数包括3位数据,表示为A[0]、A[1]、A[2],被乘数包括3位数据,表示为B[0]、B[1]、B [2],第二查找表LUT4CA输入乘数的第I位和被乘数的第3位以及第I项部分积数据中第3位和第2项部分积数据中第2位的第一累加和,表示SS1,对乘数的第I位A[0]和被乘数的第3位B[2]进行与操作而获得第3项部分积数据中的第I位,对S1和第3项部分积数据中的第I位执行异或运算,将运算结果输入到多路选择器和两输入的异或门中,多路选择器中同时输入低位向该位的进位ci,并且输入乘数的第I位A[0],经处理之后输出该位向高位的进位CO;上述两输入的异或门中同时也输入低位向该位的进位ci,两输入的异或门对ci和第二查找表输出的结果进行异或运算后输出S1与第3项部分积数据中的第I位的第二累加和。
[0043]第四查找表LUT4C输入两项部分积数据中两位的第三累加和和另两项部分积数据中两位的第四累加和,对所述第三累加和和所述第四累加和执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述四项部分积数据中四位的累加和。举例为,参见图8所示的用查找表实现累加操作示意图之三,如图8所示,乘数包括4位数据,表示为A [O]、A [I].....A [3],被乘数包括4位数据,表示为B[0]、B[l].....B [3],第四查找表LUT4C输入第I项部分积数据中第4位和第2项部分积数据中第3位的第三累加和S3以及第3项部分积数据中第2位和第4项部分积数据中第I位的第四累加和S4,对S3和S4执行异或运算,将运算结果输入到多路选择器和两输入的异或门中,多路选择器中同时输入低位向该位的进位ci,并且输入S4,经处理之后输出该位向高位的进位CO;上述两输入的异或门中同时也输入低位向该位的进位ci,两输入的异或门对ci和第二查找表输出的结果进行异或运算后输出S3和S4的第五累加和。
[0044]图9为本发明利用最优二叉树构建累加器的逻辑示意图,图9中,A、B、C和D分别表示通过部分积移位器处理后得到的4项部分积数据。该4项部分积数据产生3个加法,表示为A+B+C+D,分别为A、B、C和D赋予4个权值,举例为,4个权值均为I。将上述三个加法以树状结构表示,并通过最优二叉树的算法对这棵加法树进行深度上的平衡,就可以得到分别以A、B、C和D为叶子节点的最优二叉树,根据该最优二叉树计算上述加法运算的过程为:先计算A+B,再计算C+D,然后将两者计算得到的和做累加处理;或者先计算C+D,再计算A+B,然后将两者计算得到的和做累加处理。利用最优二叉树对加法运算进行平衡处理之后再做累加处理,可以保证整个加法运算的过程中串行加法次数不超过log2n次,其中η表示通过部分积移位器处理后得到的η项部分积数据,从而提高整个FPGA芯片的运行效率。
[0045]本发明的基于FPGA芯片的乘法器,通过由查找表实现的部分积产生器产生η项部分积数据,通过基于最优二叉树构建的累加器实现该η项部分积数据的累加,从而保证了 η项部分积数据的串行加法次数不超过。^"次,提高了整个FPGA芯片的运行效率。
[0046]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0047]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0048]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于FPGA芯片的乘法器,其特征在于,所述乘法器包括: 部分积产生器,由第一查找表实现,用于对乘数和被乘数中每一位分别进行与操作,获得η项部分积数据,所述乘数包括m位数据,所述被乘数包括η位数据,所述η项部分积数据中各项均包括m位数据,其中,所述第一查找表根据乘数和被乘数中每一位分别进行与操作时,和所述被乘数相与的数据的位置而选定,使前述对乘数和被乘数中每一位分别进行与操作的所述第一查找表彼此相对移位,使得η项部分积数据彼此实现移位; 累加器,由第二查找表实现,用于实现对所述η项部分积数据的累加处理,获得求和数据,所述求和数据包括m+n位数据。
2.根据权利要求1所述的乘法器,其特征在于,当所述乘法器处理的乘数和被乘数具有符号位时,所述部分积产生器还用于对所述获得的η项部分积数据中第1、2.....η-1项部分积数据的第η位进行取反操作,同时对第η项部分积数据的第1、2.....η-1位进行取反操作。
3.根据权利要求1或2所述的乘法器,其特征在于,所述累加器包括第三查找表,用于实现对所述η项部分积数据的累加处理后的进位处理。
4.根据权利要求1或2所述的乘法器,其特征在于,用最优二叉树来构建实现对所述η项部分积数据的累加处理的累加器。
5.根据权利要求4所述的乘法器,其特征在于,所述第一查找表对乘数的第i位和被乘数的第j位进行与操作而获得一项部分积数据中的一位,所述第二查找表输入乘数的第I位和被乘数的第J位以及所述一项部分积数据中的一位,对乘数的第I位和被乘数的第J位执行与操作而获得另一项部分积数据中的一位,对所述一项部分积数据中的一位和所述另一项部分积数据中的一位执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述两项部分积数据中两位的第一累加和,其中,i,j,I和J均为自然数,i,I彡m,j,J彡η。
6.根据权利要求4所述的乘法器,其特征在于,所述第二查找表输入乘数的第t位和被乘数的第T位以及两项部分积数据中两位的第一累加和,对乘数的第t位和被乘数的第T位进行与操作而获得另一项部分积数据中的一位,对所述第一累加和和所述另一项部分积数据中的一位执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述三项部分积数据中三位的第二累加和,其中,t和T均为自然数,t彡m,T彡η。
7.根据权利要求4所述的乘法器,其特征在于,所述累加器还包括第四查找表;所述第四查找表输入两项部分积数据中两位的第三累加和和另两项部分积数据中两位的第四累加和,对所述第三累加和和所述第四累加和执行异或运算,将运算结果输入到多路选择器和逻辑电路中,由所述多路选择器向高位数据进位,由所述逻辑电路输出所述四项部分积数据中四位的第五累加和。
8.根据权利要求1所述的乘法器,其特征在于,所述部分积产生器中的所述第一查找表和所述累加器中的所述第二查找表部分合并为同一个查找表。
9.根据权利要求2所述的乘法器,其特征在于,所述累加器还用于:对所述获得的求和数据和一个常数项做累加处理。
【专利摘要】本发明涉及一种基于FPGA芯片的乘法器,包括:部分积产生器,由第一查找表实现,用于对乘数和被乘数中每一位分别进行与操作,获得n项部分积数据,其中,所述第一查找表根据乘数和被乘数中每一位分别进行与操作时,和所述被乘数相与的数据的位置而选定,使前述对乘数和被乘数中每一位分别进行与操作的所述第一查找表彼此相对移位,使得n项部分积数据彼此实现移位;累加器,由第二查找表实现,用于实现对所述n项部分积数据的累加处理,获得求和数据。由此实现了利用FPGA芯片中的加法进位链来实现乘法的功能,而且基于最优二叉树构建的累加器的运用提高了整个FPGA芯片的运行效率。
【IPC分类】G06F7-52
【公开号】CN104572010
【申请号】CN201310472755
【发明人】耿嘉, 樊平, 刘明
【申请人】京微雅格(北京)科技有限公司
【公开日】2015年4月29日
【申请日】2013年10月11日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1