发明内容
本发明的目的是针对现有技术的缺陷,提供了一种FPGA中多功能硬件专用乘法器,该乘法器能够实现高速、高性能的乘法运算,实现滤波器设计、数据比较,尤其是大位宽数据的乘法和比较的功能。
本发明第一方面提供一种FPGA中多功能硬件专用乘法器,该乘法器包括前加法器、后加法器、数据选择器、进位控制器、数据匹配比较器以及乘法计算单元;其中,所述前加法器的输入端接收FPGA芯片的第一串并行数据,其输出端与所述乘法计算单元的输入端相连;所述乘法计算单元的输出端与所述后加法器的第一输入端相连;所述数据选择器的输入端接收FPGA芯片的第一串并行数据,其输出端与所述后加法器的第二输入端相连;所述进位控制器的输入端接收FPGA芯片的第一串并行数据,其输出端与所述前加法器的第三输入端相连;所述后加法器一个输出端输出第二串并行数据,其另一个输出端与所述数据匹配比较器的一个输入端相连;所述数据匹配比较器的另一个输入端接收FPGA芯片的第一串并行数据。
在上述乘法器中,所述前加法器包括两个单独的18比特位宽的计算单元以及加法选择器;其中,所述两个单独的计算单元合并可实现34比特位宽的加、减法运算,其余2比特位做进位保护位;所述加法选择器的输入端可从所述前加法器的运算结果输入、FPGA芯片的逻辑输入、所述乘法器的输入以及与所述乘法器位置相邻的前一个乘法器的级联输入中选择。
在上述乘法器中,所述乘法器计算单元包括两个单独的18×18二进制补码的布斯子乘法器。
在上述乘法器中,所述后加法器包括四个输入端口和两个输出端口;其中,四个输入端口为三个56比特位宽的数据输入以及一个比特位宽的进位控制器输入,且三个56比特位宽的数据输入来自三种不同类型的选择器。
在上述乘法器中,所述数据选择器为8选1的56位选择器。
在上述乘法器中,所述进位控制器的输入为五个1比特位的数据输入和控制信号输入,其内部包括检测逻辑。
在上述乘法器中,所述数据匹配比较器包括两个输入端口以及四个输出端口;其中,所述两个输入端口支持最高位宽为56比特位的数据输入。
在上述乘法器中,所述乘法器在FPGA芯片的底部逐一排列至芯片的顶部,且每个乘法器都有多个数据进位端口与相连的上、下的乘法器级联。
本发明第二方面提供一种FPGA芯片,所述芯片包括如上任一所述的乘法器。
本发明提供了一种FPGA中多功能硬件专用乘法器,该乘法器能够实现高速、高性能的乘法运算,实现滤波器设计、数据比较,尤其是大位宽数据的乘法和比较的功能;该乘法器能够满足高性能FPGA芯片的要求。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
本发明提供了一种FPGA中多功能硬件专用乘法器,该乘法器能够实现高速、高性能的乘法运算,实现滤波器设计、数据比较,尤其是大位宽数据的乘法和比较的功能。
下面以图1为例,对本发明实施例进行说明。图1为本发明实施例提供的一种FPGA中多功能硬件专用乘法器的示意图。
如图1所示,该乘法器包括前加法器、后加法器、数据选择器、进位控制器、数据匹配比较器以及乘法计算单元。
具体地,所述前加法器的输入端接收FPGA芯片的第一串并行数据,其输出端与所述乘法计算单元的输入端相连;所述乘法计算单元的输出端与所述后加法器的第一输入端相连;所述数据选择器的输入端接收FPGA芯片的第一串并行数据,其输出端与所述后加法器的第二输入端相连;所述进位控制器的输入端接收FPGA芯片的第一串并行数据,其输出端与所述后加法器的第三输入端相连;所述后加法器一个输出端输出第二串并行数据,其另一个输出端与所述数据匹配比较器的一个输入端相连;所述数据匹配比较器的另一个输入端接收FPGA芯片的第一串并行数据。
在上述乘法器中,所述前加法器包括两个单独的18比特位宽的计算单元以及加法选择器;其中,所述两个单独的计算单元合并可实现34比特位宽的加、减法运算,其余2比特位做进位保护位;所述加法选择器的输入端可从所述前加法器的运算结果输入、FPGA芯片的逻辑输入、所述乘法器的输入以及与所述乘法器位置相邻的前一个乘法器的级联输入中选择。
下面以图2为例对前加法器进行说明,图2为本发明实施例提供的一种多功能乘法器中前加法器的示意图。
如图2所示,前加法器中包括连个独立的18比特位宽的加、减法器,并且前加法器总共支持10路18比特位宽数据的输入和8路18比特位宽的输出;其中,包括4路级联数据的输入和4路级联数据的输出。前加法器中包括大量的数据选择器,可支持C_U、D_U、C_L、D_L、C_U_CAS_IN和C_L_CAS_IN之间的任意加、减法的组合。并且,前加法器中每一条数据通路包括0~2级可选的流水线寄存器,以便支持高性能滤波器设计;同时两个计算单元合并扩展,实现大比特,如34位加法、减法运算。加法选择器支持4路18比特位宽数据输入和输出的任意组合;故本发明实施例的乘法器可支持(A+B)2的形式。
在这里,前加法器带有0、1、2级流水线寄存器的选择,前加法器的输入选择器可以选择FPGA的逻辑输入、该乘法器本身连线输入以及与该乘法器相邻的前一个乘法器的级联输入,可以做灵活的选择。
在上述乘法器中,所述乘法器计算单元包括两个单独的18×18二进制补码的布斯子乘法器。
在上述乘法器中,所述后加法器包括四个输入端口和两个输出端口;其中,四个输入端口为三个56比特位宽的数据输入以及一个比特位宽的进位控制器输入,且三个56比特位宽的数据输入来自三种不同类型的选择器。
下面以图3为例,对后本发明实施例中的加法器进行说明。图3为本发明实施例提供的一种多功能乘法器中后加法器的示意图。
如图3所示,后加法器包括四输入端口,其中三个为56比特位宽的数据输入和一个1比特位宽的控制信号输入;两个输出端口,且所有的输出端口可经过可选的流水线寄存器作为级联输出。通过不同的控制选项,该后加法器可支持三输入加法、减法的任意组合。并且后加法器经过相应的设置,两个输入端口可实现“或”、“与”、“异或”、“与非”、“或非”和“同或”等逻辑比较功能;同时,两个输入端可支持均为补码形式或其中一个为补码形式的“或”、“与”、“异或”、“与非”、“或非”和“同或”等逻辑关系。
需要说明的是,后加法器的四个输入端口,三个输入端口的输入来自三种不同类型的选择器,并且可以与乘法计算单元的两个乘法计算单元的输出、后加法器的反馈以及与该乘法器位置相邻的前一个乘法器的级联输入做灵活的选择。并且逻辑运算器包括在后加法器中,通过特殊的逻辑电路实现两个超大位宽数据比较的逻辑关系。
在这里,输出至后加法器的选择器,可支持后加法器结果的反馈,通过一级流水线寄存器的反馈以及与该乘法器位置相邻的前一个乘法器的级联输入,并支持这些输入的逻辑移位选择器;例如:左移17位、左移34位等,通过不同移位选择器可以灵活的实现各种大位宽乘法的运算,如35乘35、18乘69等。
在上述乘法器中,所述数据选择器为8选1的56位选择器。
下面以图4为例,对本发明实施例的数据选择器进行说明。图4为本发明实施例提供的一种多功能乘法器中数据选择器的示意图。
如图4所述的数据选择器,为8选1的56位选择器,支持前一级乘法器结果的级联、一级寄存器以及右移35或17位的选项。同时支持该乘法器中后加法器结果的反馈以及右移35或17位的选项。此外,该数据选择器还支持一路来自FPGA逻辑的数据输入,同时数据选择器的结果作为后加法器的一路输入。
在上述乘法器中,所述进位控制器的输入为五个1比特位的数据输入和控制信号输入,其内部包括检测逻辑。
下面以图5为例,对本发明实施例中的进位控制器进行说明。图5为本发明实施例提供的一种多功能乘法器中进位控制器的示意图。
如图5所示,进位控制器支持5路1比特位数据输入和一路控制信号输入。该进位控制器内部包括检测逻辑,可根据两个子乘法器或后加法器的结果的最高位,即符号位,产生相应的进位信息,从而实现四舍五入的逻辑功能。此外,进位控制器可支持前一级乘法的进位级联,从而可实现多个乘法器组合的超大比特位(如112位及以上)的加、减法。
需要说明的是,进位控制器包括支持FPGA逻辑的输入和该乘法器位置相邻的前一个加法器的级联输入,将选择的结果输出到后加法器中。
在上述乘法器中,所述数据匹配比较器包括两个输入端口以及四个输出端口;其中,所述两个输入端口支持最高位宽为56比特位的数据输入。
下面以图6为例,对本发明实施例的数据匹配比较器进行说明。图6为本发明实施例提供的一种多功能乘法器中数据匹配比较器的示意图。
如图6所示,数据匹配比较器可以同时支持两路超大位宽的数据,如56比特数据的相等的比较及补码形式的比较。其中两路超大位宽的数据可来自于FPGA逻辑或乘法器的结果,且两组数据的匹配可以以1-56位任意长度设置为有效位。数据匹配比较器和其他逻辑电路组合可实现任意自定义比特位的上溢出和下溢出检测。上、下溢出的指示信号可以选择直接输出或经过寄存器后输出。
在上述乘法器中,所述乘法器在FPGA芯片的底部逐一排列至芯片的顶部,且每个乘法器都有多个数据进位端口与相连的上、下的乘法器级联。
下面以图7为例,对本发明实施例中的乘法器级联进行说明。图7为本发明实施例提供的一种多功能乘法器两级级联的示意图。
如图7所示,该乘法器以列为单位,从FPGA阵列中的底部逐一进行排列到阵列的顶部。其中,每个乘法器具有大量的数据进位端口与其相邻的上、下的乘法器级联。
需要说明的是,本发明实施例中的乘法器,还包括乘法器的专用连线接口,这些专用连线接口可以与该乘法器中位置相邻的上、下专用乘法器直接连接。
本发明提供了一种FPGA中多功能硬件专用乘法器,该乘法器能够实现高速、高性能的乘法运算,实现滤波器设计、数据比较,尤其是大位宽数据的乘法和比较的功能;该乘法器能够满足高性能FPGA芯片的要求。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。