CN101625634A - 一种可重构的乘法器 - Google Patents
一种可重构的乘法器 Download PDFInfo
- Publication number
- CN101625634A CN101625634A CN200810116397A CN200810116397A CN101625634A CN 101625634 A CN101625634 A CN 101625634A CN 200810116397 A CN200810116397 A CN 200810116397A CN 200810116397 A CN200810116397 A CN 200810116397A CN 101625634 A CN101625634 A CN 101625634A
- Authority
- CN
- China
- Prior art keywords
- multiplier
- carry
- output
- partial
- partial product
- 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.)
- Pending
Links
Images
Landscapes
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种可重构的乘法器,包括:输入单元,用于将乘数和被乘数分别输出至部分积产生单元;部分积产生单元,用于对接收自输入单元的乘数和被乘数的每一位进行操作产生一个部分积,并输出给部分积压缩单元;部分积压缩单元,用于对部分积产生单元输入的部分积进行进位保留加法器累加压缩,得到一排和信号以及一排进位信号,输出给最终积合成单元;最终积合成单元,包括一低位超前进位加法器和一高位超前进位加法器,用于对接收自部分积压缩单元的一排和信号以及一排进位信号进行合并而产生积,并输出给输出单元;输出单元,用于将接收自最终积合成单元的积采用异步操作或同步操作方式进行输出。本发明能够大大提高FPGA处理数据运算的速度。
Description
技术领域
本发明涉及集成电路及可编程门阵列(Field Programmable Gate Array简称FPGA)设计技术领域,具体涉及到FPGA芯片中专用乘法器模块的设计,为了满足日益增长的对信号处理能力的需求,本发明提供了一种用于FPGA芯片中的专用的可重构的乘法器。
背景技术
在多媒体及通信领域,一般要涉及到大量的数据运算。比如:在音视频处理中的离散余弦变换及其逆变换、快速傅里叶变换以及GSM通讯系统中的编码/解码等,每秒钟都要进行数百万次的数据运算,因此提高数据运算的速度具有非常重大的意义。
而乘法运算是这些数据运算中最主要也是最耗费时间的运算,因此高性能的乘法器在多媒体处理及通讯类芯片、现代微处理器、数字信号处理器以及FPGA芯片中具有很重要的地位。
发明内容
(一)要解决的技术问题
有鉴于此,为了提高FPGA处理数据运算的速度,本发明提供一种嵌入在FPGA芯片中的专用的可重构乘法器。
(二)技术方案
为达到上述目的,本发明提供了一种可重构的乘法器,包括:
输入单元,用于将乘数和被乘数分别输出至部分积产生单元;
部分积产生单元,用于对接收自输入单元的乘数和被乘数的每一位进行操作产生一个部分积,并输出给部分积压缩单元;
部分积压缩单元,用于对部分积产生单元输入的部分积进行进位保留加法器累加压缩,得到一排和信号以及一排进位信号,输出给最终积合成单元;
最终积合成单元,包括一低位超前进位加法器和一高位超前进位加法器,用于对接收自部分积压缩单元的一排和信号以及一排进位信号进行合并而产生积,并输出给输出单元;
输出单元,用于将接收自最终积合成单元的积采用异步操作或同步操作方式进行输出。
上述方案中,所述输入单元包括一乘数寄存器、一乘数选择器、一被乘数寄存器和一被乘数选择器,其中,乘数和被乘数的每一位进入各自寄存器,然后寄存器的输出信号与寄存器的输入信号作为选择器的两个输入信号,在外部配置电路产生的选择信号的作用下选择输出哪一个信号至部分积产生单元,且乘数的每一位经过寄存器与选择器后的输出信号按三位一组,作为部分积产生单元中波茨编码器的输入信号。
上述方案中,所述部分积产生单元包括一波茨编码器和一部分积产生器,波茨编码器对接收自输入单元的三位一组的输入信号进行编码,产生三个控制信号comp、shift、zero,并将产生的三个控制信号comp、shift、zero输出给部分积产生器;部分积产生器利用波茨编码器产生的三个控制信号comp、shift、zero控制被乘数依次经过寄存器和选择器的输出信号的每一位进行操作产生一个部分积,并输出给部分积压缩单元。
上述方案中,所述部分积产生器利用波茨编码器产生的三个控制信号comp、shift、zero控制被乘数依次经过寄存器和选择器的输出信号的每一位进行操作产生一个部分积包括:当shift、zero均为“1”,comp为“0”或“1”中的任一个时,部分积产生器的输出为0;当comp、shift、zero均为“0”时,部分积产生器的输出为被乘数a的对应位ai;当comp、zero均为“0”,同时shift为“1”时,部分积产生器的输出为被乘数a的对应位ai的低位信号ai-1,即左移一位;当comp、shift均为“1”,同时zero为“0”时,部分积产生器的输出为被乘数a的对应位ai的低位信号ai-1的取反ai-1,即左移一位并取反;当shift、zero均为“0”,同时comp为“1”时,部分积产生器的输出为被乘数a的对应位ai的取反ai。
上述方案中,所述部分积压缩单元是一进位保留加法器阵列,对于18×18的可重构的乘法器,是采用8级的进位保留加法器来累加9排的部分积,其中第一排和第二排部分积作为第一级进位保留加法器的输入,这一级产生的和信号以及进位信号与第三排部分积作为第二级进位保留加法器的输入,然后以此类推;经过8级进位保留加法器累加后,输出两排信号即一排和信号与一排进位信号,输出给最终积合成单元。
上述方案中,所述在8级的进位保留加法器阵列的中间即第4级和第5级进位保留加法器之间加入一排寄存器和选择器,来选择是采用带流水线的操作还是不带流水线的操作。
上述方案中,所述最终积合成单元中的低位超前进位加法器和高位超前进位加法器,是低18位超前进位加法器和高18位超前进位加法器,该低18位超前进位加法器和高18位超前进位加法器将部分积压缩单元输入的两排信号分成低18位与高18位两组,每组由4个4位超前进位加法器和1个2位超前进位加法器来合并,其中4位超前进位加法器之间、4位超前进位加法器与2位超前进位加法器之间以及低位超前进位加法器和高位超前进位加法器之间都采用行波进位方式,最后产生36位的积,输出给输出单元。
上述方案中,所述输出单元包括一高位输出寄存器、一高位选择器、一低位输出寄存器和一低位选择器,最终积合成单元输入的积依次进入高位寄存器和高位选择器,或者低位寄存器和低位选择器,来选择是采用异步操作还是同步操作,最后从输出单元中高位选择器或低位选择器输出的36位信号就是最后的结果。
上述方案中,该可重构的乘法器通过外部配置电路对输入单元、输出单元以及部分积压缩单元中选择器的选择位进行配置,该乘法器共可配置成以下五种工作模式:
模式1:异步操作模式,乘法器的输入、输出以及中间结果都不带寄存器,乘法器完全由组合电路组成;
模式2:输入同步模式,在乘法器的两个输入即被乘数和乘数之后带寄存器,对输入进行同步;
模式3:输出同步模式,在乘法器的最后结果即积后带寄存器,对输出进行同步;
模式4:中间结果同步模式,对于18×18的乘法器,在8级的CSA array的中间即第4级和第5级进位保留加法器之间加入一排寄存器对中间结果进行同步;
模式5:流水线工作模式,对于18×18的乘法器,在乘法器的输入、输出以及8级CSA array的中间即第4级和第5级进位保留加法器之间均加入寄存器,实现一级的流水线操作,以提高乘法器的数据吞吐量与性能。
上述方案中,所述外部配置电路是基于SRAM的6管单元,且该可重构的乘法器是可扩展的,可扩展为任意位数的乘法器,在整个FPGA芯片中可根据应用的需要增加或者减少乘法器的数目,乘法器的数目是参数化的。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
1、本发明提供的这种嵌入在FPGA芯片中的专用的可重构乘法器,由于采用了专用的硬件来实现乘法运算,而不是采用FPGA中的速度较慢并且需要用到大量的速度很慢并且占用很大面积的布线资源的查找表来实现乘法,所以,能够大大提高FPGA处理数据运算的速度。
2、本发明提供的这种嵌入在FPGA芯片中的专用的可重构乘法器,由于采用了波茨编码算法将部分积减少了一半,所以,能够大大节省产生部分积以及累加部分积所需要的硬件资源,从而大大节约了芯片面积并且极大地提高了芯片速度。
3、本发明提供的这种嵌入在FPGA芯片中的专用的可重构乘法器,由于采用了结构规则并且速度很快的进位保留加法器阵列来累加部分积,所以,能够得到很规则的芯片版图,并且大大提高了扩展性,可以很方便的将其扩展为位数更宽的乘法器。
4、本发明提供的这种嵌入在FPGA芯片中的专用的可重构乘法器,由于采用了两组超前进位加法器,每组由4个4位超前进位加法器和1个2位超前进位加法器来合并最终积,所以,能够最大限度的满足乘法器速度与面积的折衷。
5、本发明提供的这种嵌入在FPGA芯片中的专用的可重构乘法器,由于在输入、输出以及中间结果处都插入了寄存器与选择器,可以配置成同步操作模式以及流水线模式,而不需要用到FPGA中逻辑单元中的D触发器以及大量的速度很慢并且占用很大面积的布线资源来实现同步操作和流水线操作,所以,能够大大提高芯片的速度,节约芯片的资源。
附图说明
图1是本发明提供的乘法器的结构示意图;
图2是本发明提供的乘法器的五种工作模式的示意图;其中,(a)是模式1:异步操作模式,(b)是模式2:输入同步模式,(c)是模式3:输出同步模式,(d)是模式4:中间结果同步模式,(e)是模式5:流水线工作模式;
图3是本发明提供的乘法器的外部配置电路的电路图示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明是一个用于FPGA芯片中的专用的可重构的乘法器。该乘法器采用改进的波茨编码算法来减少部分积的数目。该乘法器的两个输入a和b都是18位的,输出p是36位的,并且都用二进制补码表示。该乘法器可以完成18×18的有符号乘法,也可以完成17×17的无符号乘法,并且是可重构的。该乘法器可以配置成异步的操作与同步的操作,同时也可以配置成带流水线的操作与不带流水线的操作。该乘法器一共可配置成五种工作模式。
该乘法器的构造方法为:首先采用改进的波茨编码算法对乘数b(18位)进行波茨编码来产生3个控制信号,并且用这三个控制信号来控制被乘数a(18位)的每一位ai进行操作并产生部分积;然后用加法器树将产生的部分积进行累加从而产生最后两排的和与进位;最后用一个快速加法器将最后两排的和与进位相加从而产生最后的积p。
如图1所示,图1是本发明提供的乘法器的结构示意图,该乘法器包括输入单元、部分积产生单元、部分积压缩单元、最终积合成单元和输出单元。其中,输入单元用于将乘数和被乘数分别输出至部分积产生单元;部分积产生单元用于对接收自输入单元的乘数和被乘数的每一位进行操作产生一个部分积,并输出给部分积压缩单元;部分积压缩单元用于对部分积产生单元输入的部分积进行进位保留加法器累加压缩,得到一排和信号以及一排进位信号,输出给最终积合成单元;最终积合成单元,包括一低位超前进位加法器和一高位超前进位加法器,用于对接收自部分积压缩单元的一排和信号以及一排进位信号进行合并而产生积,并输出给输出单元;输出单元用于将接收自最终积合成单元的积采用异步操作或同步操作方式进行输出。
该输入单元包括一乘数寄存器、一乘数选择器、一被乘数寄存器和一被乘数选择器。其中,乘数和被乘数的每一位进入各自寄存器,然后寄存器的输出信号与寄存器的输入信号作为选择器的两个输入信号,在外部配置电路产生的选择信号的作用下选择输出哪一个信号至部分积产生单元,且乘数的每一位经过寄存器与选择器后的输出信号按三位一组,作为部分积产生单元中波茨编码器的输入信号。
该部分积产生单元包括一波茨编码器和一部分积产生器,波茨编码器对接收自输入单元的三位一组的输入信号进行编码,产生三个控制信号comp、shift、zero,并将产生的三个控制信号comp、shift、zero输出给部分积产生器;部分积产生器利用波茨编码器产生的三个控制信号comp、shift、zero控制被乘数依次经过寄存器和选择器的输出信号的每一位进行操作产生一个部分积,并输出给部分积压缩单元。该部分积产生器利用波茨编码器产生的三个控制信号comp、shift、zero控制被乘数依次经过寄存器和选择器的输出信号的每一位进行操作产生一个部分积包括:当shift、zero均为“1”,comp为“0”或“1”中的任一个时,部分积产生器的输出为0;当comp、shift、zero均为“0”时,部分积产生器的输出为被乘数a的对应位ai;当comp、zero均为“0”,同时shift为“1”时,部分积产生器的输出为被乘数a的对应位ai的低位信号ai-1,即左移一位;当comp、shift均为“1”,同时zero为“0”时,部分积产生器的输出为被乘数a的对应位ai的低位信号ai-1的取反ai-1,即左移一位并取反;当shift、zero均为“0”,同时comp为“1”时,部分积产生器的输出为被乘数a的对应位ai的取反ai。
该部分积压缩单元是一进位保留加法器阵列,对于18×18的可重构的乘法器,是采用8级的进位保留加法器来累加9排的部分积,其中第一排和第二排部分积作为第一级进位保留加法器的输入,这一级产生的和信号以及进位信号与第三排部分积作为第二级进位保留加法器的输入,然后以此类推;经过8级进位保留加法器累加后,输出两排信号即一排和信号与一排进位信号,输出给最终积合成单元。在8级的进位保留加法器阵列的中间即第4级和第5级进位保留加法器之间加入一排寄存器和选择器,来选择是采用带流水线的操作还是不带流水线的操作。
该最终积合成单元中的低位超前进位加法器和高位超前进位加法器,是低18位超前进位加法器和高18位超前进位加法器,该低18位超前进位加法器和高18位超前进位加法器将部分积压缩单元输入的两排信号分成低18位与高18位两组,每组由4个4位超前进位加法器和1个2位超前进位加法器来合并,其中4位超前进位加法器之间、4位超前进位加法器与2位超前进位加法器之间以及低位超前进位加法器和高位超前进位加法器之间都采用行波进位方式,最后产生36位的积,输出给输出单元。
该输出单元包括一高位输出寄存器、一高位选择器、一低位输出寄存器和一低位选择器,最终积合成单元输入的积依次进入高位寄存器和高位选择器,或者低位寄存器和低位选择器,来选择是采用异步操作还是同步操作,最后从输出单元中高位选择器或低位选择器输出的36位信号就是最后的结果。
该可重构的乘法器通过外部配置电路对输入单元、输出单元以及部分积压缩单元中选择器的选择位进行配置,该乘法器共可配置成以下五种工作模式:
模式1:异步操作模式,乘法器的输入、输出以及中间结果都不带寄存器,乘法器完全由组合电路组成;
模式2:输入同步模式,在乘法器的两个输入即被乘数和乘数之后带寄存器,对输入进行同步;
模式3:输出同步模式,在乘法器的最后结果即积后带寄存器,对输出进行同步;
模式4:中间结果同步模式,对于18×18的乘法器,在8级的CSA array的中间即第4级和第5级进位保留加法器之间加入一排寄存器对中间结果进行同步;
模式5:流水线工作模式,对于18×18的乘法器,在乘法器的输入、输出以及8级CSA array的中间即第4级和第5级进位保留加法器之间均加入寄存器,实现一级的流水线操作,以提高乘法器的数据吞吐量与性能。
该乘法器的外部配置电路是基于SRAM的存储单元,且该可重构的乘法器是可扩展的,可扩展为任意位数的乘法器,在整个FPGA芯片中可以根据应用的需要增加或者减少乘法器的数目,也就是说乘法器的数目是参数化的。
下面结合附图对本发明的实施方法作具体的详细的描述。本发明可以有许许多多实现的途径,本实施方法中所举例的实例只是其中之一。该实例的提供是为了使本公开是彻底的和完整的,并且向熟悉本领域的人员全面地传达本发明的思想。但本发明并不仅局限于本具体实施方式。
乘法操作可以分为三步来完成:第一步,产生部分积;第二步,累加部分积;第三步,最终相加。
如图1所示的本发明提供的乘法器的结构示意图,其中第一步,产生部分积是由图中的部分积产生单元1来完成的,部分积产生单元1又包括两个模块,即波茨编码器和部分积产生器,其中波茨编码器的功能是对乘数b进行波茨编码,部分积产生器的功能是控制被乘数a产生部分积。第二步,累加部分积是由图中的部分积压缩单元2即进位保留加法器阵列来完成的,其功能是将部分积压缩成两排信号即一排和信号与一排进位信号,第三步,最终相加是由图中的最终积合成单元3来完成的,最终积合成单元3又分为两部分,即低位超前进位加法器和高位超前进位加法器,他们的功能是将部分积压缩单元2输出的两排信号即一排和信号与一排进位信号合并成最后的积。
由于我们的乘法器是可重构的,这部分是由图中的输入单元4、输出单元5以及部分积压缩单元2中的部分模块来完成的,它们都是由寄存器模块、选择器模块以及外部配置电路组成的,这部分的功能是通过外部配置电路配置选择器的选择位来决定乘法器是采用异步的操作还是同步的操作,以及是带流水线的操作还是不带流水线的操作。
当外部配置电路使输入单元4中的选择器模块的选择位为“1”时,该乘法器采用输入同步操作;当外部配置电路使输出单元5中的选择器模块的选择位为“1”时,该乘法器采用输出同步操作;当外部配置电路使部分积压缩单元2中的选择器模块的选择位为“1”时,该乘法器采用中间结果同步操作;当外部配置电路同时使输入单元4中的选择器模块的选择位、输出单元5中的选择器模块的选择位以及部分积压缩单元2中的选择器模块的选择位为“0”时,该乘法器采用异步操作;当外部配置电路同时使输入单元4中的选择器模块的选择位、输出单元5中的选择器模块的选择位以及部分积压缩单元2中的选择器模块的选择位为“1”时,该乘法器采用流水线操作,其他情况为不带流水线的操作。
下面再按照信号流的方向对这些单元以及模块的功能来进行详细说明:
第一步:如图1所示,乘法器的两个输入即被乘数a与乘数b的每一位都经过一个寄存器,然后寄存器的输出信号与寄存器的输入信号作为选择器的两个输入,用外部配置电路产生的选择信号来选择是输出哪一个。其中乘数b的每一位经过寄存器与选择器后的输出信号按三位一组分别作为波茨编码器的输入信号。
其中波茨编码器的工作原理如下:根据波茨编码,乘数b依次经过寄存器和选择器的输出信号按三位一组进行划分,相互重叠一位。波茨编码器将每一组的三位按表1进行编码,并产生三个控制信号comp、shift、zero。其中表1(表1是波茨编码的真值表)第四列中的编码值的意义如下:+0x与-0x表示部分积全为0;+1x表示部分积为被乘数的一个副本;+2x表示部分积是被乘数乘以2;-2x表示部分积是被乘数乘以-2;-1x表示部分积是被乘数乘以-1。波茨编码器产生的3个输出信号进入部分积产生器。
bi+1 | bi | bi-1 | Booth encoder | comp | shift | zero |
0 | 0 | 0 | +0x | 0 | 1 | 1 |
0 | 0 | 1 | +1x | 0 | 0 | 0 |
0 | 1 | 0 | +1x | 0 | 0 | 0 |
0 | 1 | 1 | +2x | 0 | 1 | 0 |
1 | 0 | 0 | -2x | 1 | 1 | 0 |
1 | 0 | 1 | -1x | 1 | 0 | 0 |
1 | 1 | 0 | -1x | 1 | 0 | 0 |
1 | 1 | 1 | -0 | 1 | 1 | 1 |
表1
部分积产生器的工作原理如下:用波茨编码器产生的三个输出信号comp、shift、zero作为控制信号来控制被乘数a依次经过寄存器和选择器的输出信号的每一位进行操作,并产生一个部分积,即当shift、zero均为“1”,comp为“0”或“1”中的任一个时,部分积产生器的输出为0;当comp、shift、zero均为“0”时,部分积产生器的输出为被乘数a的对应位ai;当comp、zero均为“0”,同时shift为“1”时,部分积产生器的输出为被乘数a的对应位ai的低位信号ai-1,即左移一位;当comp、shift均为“1”,同时zero为“0”时,部分积产生器的输出为被乘数a的对应位ai的低位信号ai-1的取反ai-1,即左移一位并取反;当shift、zero均为“0”,同时comp为“1”时,部分积产生器的输出为被乘数a的对应位ai的取反ai。因此针对被乘数的每一位都有一个部分积产生器,同一排的部分积产生器的3个控制信号都是相同的,都来自于对应的波茨编码器。对于18×18的乘法器,共需要9个波茨编码器,每个波茨编码器控制一排共18个部分积产生器来产生一排部分积,其中每个部分积产生器的输入信号从低到高依次为被乘数的每一位a0~a18经过寄存器和选择器的输出信号.因此,对于18×18的乘法器,一共有9排部分积产生器共产生9排部分积,其中每排部分积产生器的输入都是相同的,即被乘数的每一位a0~a18经过寄存器和选择器的输出信号。这样经过部分积产生单元1就产生了9排部分积。
第二步:9排部分积产生之后,必须将他们相加。如图1所示,这部分是由其中的部分积压缩单元2即进位保留加法器阵列来完成的。对于18×18的乘法器,将需要8级的进位保留加法器来累加9排的部分积。其中第一排和第二排部分积作为第一级进位保留加法器的输入,这一级产生的和信号与进位信号与第三排部分积作为第二级进位保留加法器的输入,然后以此类推。同时我们在8级的进位保留加法器阵列的中间即第4级和第5级进位保留加法器之间也加入了一排寄存器和选择器来选择是采用带流水线的操作还是不带流水线的操作。经过8级进位保留加法器累加后最后输出两排信号即一排和信号与一排进位信号进入最终积合成单元。
第三步:9排部分积经过8级进位保留加法器累加后输出的两排即一排和信号与一排进位信号进入最终积合成单元3即超前进位加法器。由于最终积合成单元的操作性能对整个乘法器的性能至关重要,因此我们采用了超前进位加法器CLA(Carry Look-ahead Adder)来合并最后的结果。如图1所示,这一部分是由图中的最终积合成单元3即低位超前进位加法器和高位超前进位加法器来完成的。由于4位的超前进位加法器能够达到性能和面积的最好折衷,而我们最后的部分积是36位,同时我们将最终积合成单元分为低18位与高18位。因此,我们将最后需要合并的向量分成低18位与高18位两组,其中每组由4个4位超前进位加法器和1个2位超前进位加法器来合并,最后产生36位的积。也就是说,部分积压缩单元2输出的两排信号,分为低18位与高18位两组,每组用4个4位超前进位加法器和1个2位超前进位加法器来合并,其中4位超前进位加法器之间、4位超前进位加法器与2位超前进位加法器之间以及低位超前进位加法器和高位超前进位加法器之间都采用行波进位方式。这样经过最终积合成单元3超前进位加法器的合并,最后就产生了36位的积p。同时,最后产生的积p进入输出单元5,即依次进入寄存器和选择器来选择是采用异步操作还是同步操作。最后从输出单元5中选择器模块输出的36位信号就是最后的结果。
我们的乘法器是可以配置的。通过外部配置电路对输入单元4、输出单元5以及部分积压缩单元2中的选择器的配置,即配置选择器的选择位,该乘法器一共可配置成五种工作模式。这五种工作方式如图2所示。对乘法器进行配置的电路是基于SRAM的6管单元,其电路图如图3所示。在整个FPGA芯片中可以根据应用的需要增加或者减少乘法器的数目,也就是说乘法器的数目是参数化的。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1、一种可重构的乘法器,其特征在于,包括:
输入单元,用于将乘数和被乘数分别输出至部分积产生单元;
部分积产生单元,用于对接收自输入单元的乘数和被乘数的每一位进行操作产生一个部分积,并输出给部分积压缩单元;
部分积压缩单元,用于对部分积产生单元输入的部分积进行进位保留加法器累加压缩,得到一排和信号以及一排进位信号,输出给最终积合成单元;
最终积合成单元,包括一低位超前进位加法器和一高位超前进位加法器,用于对接收自部分积压缩单元的一排和信号以及一排进位信号进行合并而产生积,并输出给输出单元;
输出单元,用于将接收自最终积合成单元的积采用异步操作或同步操作方式进行输出。
2、根据权利要求1所述的可重构的乘法器,其特征在于,所述输入单元包括一乘数寄存器、一乘数选择器、一被乘数寄存器和一被乘数选择器,其中,乘数和被乘数的每一位进入各自寄存器,然后寄存器的输出信号与寄存器的输入信号作为选择器的两个输入信号,在外部配置电路产生的选择信号的作用下选择输出哪一个信号至部分积产生单元,且乘数的每一位经过寄存器与选择器后的输出信号按三位一组,作为部分积产生单元中波茨编码器的输入信号。
3、根据权利要求1所述的可重构的乘法器,其特征在于,所述部分积产生单元包括一波茨编码器和一部分积产生器,波茨编码器对接收自输入单元的三位一组的输入信号进行编码,产生三个控制信号comp、shift、zero,并将产生的三个控制信号comp、shift、zero输出给部分积产生器;部分积产生器利用波茨编码器产生的三个控制信号comp、shift、zero控制被乘数依次经过寄存器和选择器的输出信号的每一位进行操作产生一个部分积,并输出给部分积压缩单元。
4、根据权利要求3所述的可重构的乘法器,其特征在于,所述部分积产生器利用波茨编码器产生的三个控制信号comp、shift、zero控制被乘数依次经过寄存器和选择器的输出信号的每一位进行操作产生一个部分积包括:
当shift、zero均为“1”,comp为“0”或“1”中的任一个时,部分积产生器的输出为0;当comp、shift、zero均为“0”时,部分积产生器的输出为被乘数a的对应位ai;当comp、zero均为“0”,同时shift为“1”时,部分积产生器的输出为被乘数a的对应位ai的低位信号ai-1,即左移一位;当comp、shift均为“1”,同时zero为“0”时,部分积产生器的输出为被乘数a的对应位ai的低位信号ai-1的取反ai-1,即左移一位并取反;当shift、zero均为“0”,同时comp为“1”时,部分积产生器的输出为被乘数a的对应位ai的取反ai。
5、根据权利要求1所述的可重构的乘法器,其特征在于,所述部分积压缩单元是一进位保留加法器阵列,对于18×18的可重构的乘法器,是采用8级的进位保留加法器来累加9排的部分积,其中第一排和第二排部分积作为第一级进位保留加法器的输入,这一级产生的和信号以及进位信号与第三排部分积作为第二级进位保留加法器的输入,然后以此类推;经过8级进位保留加法器累加后,输出两排信号即一排和信号与一排进位信号,输出给最终积合成单元。
6、根据权利要求5所述的可重构的乘法器,其特征在于,所述在8级的进位保留加法器阵列的中间即第4级和第5级进位保留加法器之间加入一排寄存器和选择器,来选择是采用带流水线的操作还是不带流水线的操作。
7、根据权利要求1所述的可重构的乘法器,其特征在于,所述最终积合成单元中的低位超前进位加法器和高位超前进位加法器,是低18位超前进位加法器和高18位超前进位加法器,该低18位超前进位加法器和高18位超前进位加法器将部分积压缩单元输入的两排信号分成低18位与高18位两组,每组由4个4位超前进位加法器和1个2位超前进位加法器来合并,其中4位超前进位加法器之间、4位超前进位加法器与2位超前进位加法器之间以及低位超前进位加法器和高位超前进位加法器之间都采用行波进位方式,最后产生36位的积,输出给输出单元。
8、根据权利要求1所述的可重构的乘法器,其特征在于,所述输出单元包括一高位输出寄存器、一高位选择器、一低位输出寄存器和一低位选择器,最终积合成单元输入的积依次进入高位寄存器和高位选择器,或者低位寄存器和低位选择器,来选择是采用异步操作还是同步操作,最后从输出单元中高位选择器或低位选择器输出的36位信号就是最后的结果。
9、根据权利要求1所述的可重构的乘法器,其特征在于,该可重构的乘法器通过外部配置电路对输入单元、输出单元以及部分积压缩单元中选择器的选择位进行配置,该乘法器共可配置成以下五种工作模式:
模式1:异步操作模式,乘法器的输入、输出以及中间结果都不带寄存器,乘法器完全由组合电路组成;
模式2:输入同步模式,在乘法器的两个输入即被乘数和乘数之后带寄存器,对输入进行同步;
模式3:输出同步模式,在乘法器的最后结果即积后带寄存器,对输出进行同步;
模式4:中间结果同步模式,对于18×18的乘法器,在8级的CSA array的中间即第4级和第5级进位保留加法器之间加入一排寄存器对中间结果进行同步;
模式5:流水线工作模式,对于18×18的乘法器,在乘法器的输入、输出以及8级CSA array的中间即第4级和第5级进位保留加法器之间均加入寄存器,实现一级的流水线操作,以提高乘法器的数据吞吐量与性能。
10、根据权利要求9所述的可重构的乘法器,其特征在于,所述外部配置电路是基于SRAM的6管单元,且该可重构的乘法器是可扩展的,可扩展为任意位数的乘法器,在整个FPGA芯片中可根据应用的需要增加或者减少乘法器的数目,乘法器的数目是参数化的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810116397A CN101625634A (zh) | 2008-07-09 | 2008-07-09 | 一种可重构的乘法器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810116397A CN101625634A (zh) | 2008-07-09 | 2008-07-09 | 一种可重构的乘法器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101625634A true CN101625634A (zh) | 2010-01-13 |
Family
ID=41521490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810116397A Pending CN101625634A (zh) | 2008-07-09 | 2008-07-09 | 一种可重构的乘法器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101625634A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268690A (zh) * | 2017-09-29 | 2018-07-10 | 成都华微电子科技有限公司 | Fpga内部alu电路 |
CN109117114A (zh) * | 2018-08-16 | 2019-01-01 | 电子科技大学 | 一种基于查找表的低复杂度近似乘法器 |
CN110515590A (zh) * | 2019-08-30 | 2019-11-29 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110554854A (zh) * | 2019-09-24 | 2019-12-10 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
CN111008003A (zh) * | 2019-09-24 | 2020-04-14 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
CN111025133A (zh) * | 2019-10-24 | 2020-04-17 | 北京时代民芯科技有限公司 | 一种二阶Booth编码Wallace树乘法器电路的测试方法 |
CN111258633A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN112383782A (zh) * | 2020-10-10 | 2021-02-19 | 河南工程学院 | 一种位矢量变换累加移位的一维dct/idct变换器 |
CN112486457A (zh) * | 2020-11-23 | 2021-03-12 | 杭州电子科技大学 | 一种实现改进的fios模乘算法的硬件系统 |
CN113032723A (zh) * | 2021-05-25 | 2021-06-25 | 广东省新一代通信与网络创新研究院 | 一种矩阵乘法器的实现方法及矩阵乘法器装置 |
CN113031916A (zh) * | 2019-12-24 | 2021-06-25 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、装置及芯片 |
-
2008
- 2008-07-09 CN CN200810116397A patent/CN101625634A/zh active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268690A (zh) * | 2017-09-29 | 2018-07-10 | 成都华微电子科技有限公司 | Fpga内部alu电路 |
CN108268690B (zh) * | 2017-09-29 | 2021-03-02 | 成都华微电子科技有限公司 | Fpga内部alu电路 |
CN109117114A (zh) * | 2018-08-16 | 2019-01-01 | 电子科技大学 | 一种基于查找表的低复杂度近似乘法器 |
CN111258633A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN111258633B (zh) * | 2018-11-30 | 2022-08-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110515590A (zh) * | 2019-08-30 | 2019-11-29 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN111008003A (zh) * | 2019-09-24 | 2020-04-14 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
CN110554854A (zh) * | 2019-09-24 | 2019-12-10 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
CN111008003B (zh) * | 2019-09-24 | 2023-10-13 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
CN110554854B (zh) * | 2019-09-24 | 2024-05-03 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
CN111025133A (zh) * | 2019-10-24 | 2020-04-17 | 北京时代民芯科技有限公司 | 一种二阶Booth编码Wallace树乘法器电路的测试方法 |
CN111025133B (zh) * | 2019-10-24 | 2022-02-22 | 北京时代民芯科技有限公司 | 一种二阶Booth编码Wallace树乘法器电路的测试方法 |
CN113031916A (zh) * | 2019-12-24 | 2021-06-25 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、装置及芯片 |
CN113031916B (zh) * | 2019-12-24 | 2024-10-18 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、装置及芯片 |
CN112383782A (zh) * | 2020-10-10 | 2021-02-19 | 河南工程学院 | 一种位矢量变换累加移位的一维dct/idct变换器 |
CN112486457A (zh) * | 2020-11-23 | 2021-03-12 | 杭州电子科技大学 | 一种实现改进的fios模乘算法的硬件系统 |
CN113032723A (zh) * | 2021-05-25 | 2021-06-25 | 广东省新一代通信与网络创新研究院 | 一种矩阵乘法器的实现方法及矩阵乘法器装置 |
CN113032723B (zh) * | 2021-05-25 | 2021-08-10 | 广东省新一代通信与网络创新研究院 | 一种矩阵乘法器的实现方法及矩阵乘法器装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101625634A (zh) | 一种可重构的乘法器 | |
CN105183425B (zh) | 一种具有高精度低复杂度特性的固定位宽乘法器 | |
Jagadeshwar Rao et al. | A high speed wallace tree multiplier using modified booth algorithm for fast arithmetic circuits | |
CN112540743B (zh) | 面向可重构处理器的有无符号乘累加器及方法 | |
CN102184161A (zh) | 基于余数系统的矩阵求逆装置及方法 | |
CN101136070A (zh) | 基于可重构架构的多协议射频标签读写器基带处理器 | |
Jaberipur et al. | Efficient realisation of arithmetic algorithms with weighted collection of posibits and negabits | |
CN116450217A (zh) | 一种多功能定点乘法和乘累加运算装置及方法 | |
CN103412737B (zh) | 实现基4-Booth编码方法的门电路和基于该方法的流水线大数乘法器 | |
CN103176948B (zh) | 一种低成本的单精度初等函数运算加速器 | |
CN103955585B (zh) | 一种适用于低功耗容错电路的fir滤波器结构 | |
Haritha et al. | Design of an enhanced array based approximate arithmetic computing model for multipliers and squarers | |
CN110825346B (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
CN1324456C (zh) | 采用混合压缩两级流水乘加单元的数字信号处理器 | |
Kumar et al. | Performance analysis of FIR filter using booth multiplier | |
CN101110016A (zh) | 子字并行整数乘法器 | |
CN103092559A (zh) | 用于hevc标准下dct/idct电路的乘法器结构 | |
Daud et al. | Hybrid modified booth encoded algorithm-carry save adder fast multiplier | |
Kumar et al. | Complex multiplier: implementation using efficient algorithms for signal processing application | |
CN114089949A (zh) | 一种可直接支持多操作数加法运算的数字信号处理器 | |
Laxman et al. | FPGA implementation of different multiplier architectures | |
CN112732224B (zh) | 一种面向卷积神经网络的可重构近似张量乘加单元及方法 | |
CN114063972A (zh) | 乘法器装置 | |
CN114237550A (zh) | 一种基于Wallace树的多输入移位求和累加器 | |
CN115857873B (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100113 |