CN104090737A - 一种改进型部分并行架构乘法器及其处理方法 - Google Patents
一种改进型部分并行架构乘法器及其处理方法 Download PDFInfo
- Publication number
- CN104090737A CN104090737A CN201410319001.2A CN201410319001A CN104090737A CN 104090737 A CN104090737 A CN 104090737A CN 201410319001 A CN201410319001 A CN 201410319001A CN 104090737 A CN104090737 A CN 104090737A
- Authority
- CN
- China
- Prior art keywords
- shift register
- selector switch
- group
- data
- register group
- 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
Links
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种改进型部分并行架构乘法器及其处理方法,属于数字信号与系统技术领域,包括外部模块、第一选择开关、控制模块、部分积运算模块以及第一、第二、第三移位寄存器组;所述部分积运算模块包括第二、第三选择开关、高位加法器组和低位加法器组,部分积运算模块并行完成各阶段部分积的运算并将结果通过移位寄存器组保存,控制模块产生其他各模块的工作使能信号、各阶段相应模块的操作数选择信号以及输出使能信号,选择开关根据控制信号选取相应操作数送入移位寄存器组中完成移位操作。通过对加法器的复用,可以大大降低加法器寄存器数量,从而节省硬件资源。同时,在进行乘法运算时,采用了分级处理的方式,各级运算并行执行,降低了整体电路的运算延时。
Description
技术领域
本发明涉及一种定点二进制有/无符号数的乘法运算及其硬件电路实现,具体涉及乘法运算中的部分积运算方法以及加法器复用,为一种具有较快计算速度和低复杂度的乘法器电路结构。
背景技术
在数字信号处理领域和通信技术领域,乘法运算作为一种基本的运算方法之一有着极为广泛的应用。在涉及到硬件电路实现时,高处理速度和低复杂度一直都是人们追求的目标。乘法器作为数字信号处理器中的重要组成部分,在图像、语音等数字信号处理领域扮演着不可替代的重要角色,并在很大程度上左右着系统的整体性能。此外,在微处理器、数字电视芯片以及基带通信芯片等各种专业集成电路中也得到了广泛的使用。
乘法器的硬件架构有移位累加架构,全并行流水线架构,查找表架构以及布思编码乘法器架构等。传统移位累加乘法器采用串行输入和并行输出的方式进行数据处理,在进行部分积运算时,根据乘数相应位数是否为1决定当前部分积运算结果。对于N位的乘数与被乘数乘法运算,其处理延时为2N个时钟周期,延时很大。全并行架构流水线乘法器在部分积运算采用整体并行的方式进行,通过增加加法器和寄存器的数量,使得各阶段部分积运算可以同时进行,实现流水线架构。单级处理延时则为log2N个时钟周期。布思编码算法对乘数进行编码操作,可以将操作数的位数压缩,从而减少部分积运算的次数。但是其编码较为复杂。查找表架构乘法器的运算速度很快,通过查找表的方式将运算结果输出,但是需要穷举所有可能情况下的计算结果,并将其存储,因此在操作数的位数较高时需要极大的存储空间。
乘法器的应用十分广泛。例如在OFDM系统中,调制解调的核心模块为IFFT/FFT模块,在FFT模块中,基4蝶形运算单元的使用十分广泛。为了降低硬件的消耗,通常在基4蝶形运算单元中对乘法器架构进行优化以降低复杂度。对于浮点数乘法运算,其运算过程包括符号位处理,阶码处理,尾数处理及特殊情况处理。在对尾数进行运算时,采用的是定点数乘法运算的方式进行处理。因此,对于尾数处理部分来说,优化其处理方法对于减少硬件消耗十分重要。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种改进型部分并行架构乘法器,通过对加法器的复用可以减少加法器和寄存器的数量,同时单级处理延时不变,从而降低硬件复杂度,提升整体运算速度。
为实现上述目的,本发明采用的技术方案为:一种改进型部分并行架构乘法器,应用于被乘数和乘数位数均为N位二进制数的乘法运算,其中所述N=2k,k为正整数,包括第一选择开关、控制模块、部分积运算模块以及第一、第二、第三移位寄存器组;所述部分积运算模块包括第二、第三选择开关、高位加法器组和低位加法器组;
所述外部模块用于向控制模块和第一移位寄存器组输入复位信号,用于向控制模块输入工作使能信号,用于向第一选择开关和控制模块输入数据;
所述第一选择开关用于根据第一选通信号和外部模块的输入数据选择待操作数,并将该待操作数存入第一移位寄存器组;根据第一选通信号将第二移位寄存器组、第三移位寄存器组发送的数据均送入到第一移位寄存器组;
所述第一移位寄存器组用于根据第一移位控制信号完成待操作数、第二移位寄存器组以及第三移位寄存器组发送的数据的保存与移位,同时将保存与移位的数据发送给第二选择开关、第三选择开关;
所述第二选择开关用于根据第二选通信号从第一移位寄存器组发送的保存与移位的数据中选取相应数据送入部分积运算模块中的高位加法器组;
所述第三选择开关用于根据第三选通信号从第一移位寄存器组发送的保存与移位的数据中选取相应数据送入部分积运算模块中的低位加法器组;
所述高位加法器组用于根据第一使能信号和第二选择开关发送的数据进行部分积的运算,同时将计算后的结果发送给第二移位寄存器;
所述低位加法器组用于根据第二使能信号和第三选择开关发送的数据进行部分积的运算,同时将计算后的结果发送给第三移位寄存器;
所述第二移位寄存器组用于根据第二移位控制信号完成高位加法器组输入的数据的保存与移位;同时将该数据发送给第一选择开关,并且根据控制模块的控制信号将最终计算结果输出;
所述第三移位寄存器组用于根据第三移位控制信号完成低位加法器组输入的数据的保存与移位;同时将该数据发送给第一选择开关;
所述控制模块用于根据工作使能信号和输入数据产生第一选择开关、第二选择开关、第三选择开关相对应的第一、第二、第三选通信号,并通过第一、第二、第三选通信号控制相对应的第一选择开关、第二选择开关、第三选择开关;产生最终运算结果的输出使能信号;产生第一、第二、第三移位寄存器组相对应的第一、第二、第三移位控制信号,并通过第一、第二、第三移位控制信号控制相对应的第一、第二、第三移位寄存器组;产生高位加法器组和低位加法器组相对应的第一、第二使能信号,并通过第一、第二使能信号控制相对应的高位加法器组和低位加法器组的工作,同时根据使能输出信号将最终运算结果的使能信号输出;用于控制第二移位寄存器组将最终计算结果输出。优选的:所述第一选择开关设置有5N/2个输入端口和2N个输出端口,所述第二、第三选择开关均设置有N/2个输入端口和N/2个输出端口;所述第一移位寄存器组由N/2个2*N位寄存器和N/2个(N+1)位寄存器组成;所述第二移位寄存器组由N/2个2*N位寄存器组成,所述第三移位寄存器组由N/2个3*N/2位寄存器组成。
优选的:所述控制模块包括计数器,所述计数器通过计数的方式产生第一、第二、第三选通信号,第一、第二使能信号,第一、第二、第三移位控制信号以及输出使能信号。
一种改进型部分并行架构乘法器处理方法,电路开始工作时,外部模块向控制模块和第一移位寄存器组输入复位信号,向控制模块输入工作使能信号,向第一选择开关和控制模块输入数据;
控制模块根据工作使能信号和输入数据产生第一选择开关、第二选择开关、第三选择开关相对应的第一、第二、第三选通信号,并通过第一、第二、第三选通信号控制相对应的第一选择开关、第二选择开关、第三选择开关;产生最终运算结果的输出使能信号;产生第一、第二、第三移位寄存器组相对应的第一、第二、第三移位控制信号,并通过第一、第二、第三移位控制信号控制相对应的第一、第二、第三移位寄存器组;产生高位加法器组和低位加法器组相对应的第一、第二使能信号,并通过第一、第二使能信号控制相对应的高位加法器组和低位加法器组的工作,同时根据使能输出信号将最终运算结果的使能信号输出;控制第二移位寄存器组将最终计算结果输出;
第一选择开关根据第一选通信号和外部模块的输入数据选择待操作数,并将该待操作数存入第一移位寄存器组;根据第一选通信号将第二移位寄存器组、第三移位寄存器组发送的数据均送入到第一移位寄存器组;
第一移位寄存器组根据第一移位控制信号完成待操作数、第二移位寄存器组以及第三移位寄存器组发送的数据的保存与移位,同时将保存与移位的数据发送给第二选择开关、第三选择开关;
第二选择开关根据第二选通信号从第一移位寄存器组发送的保存与移位的数据中选取相应数据送入部分积运算模块中的高位加法器组;
第三选择开关根据第三选通信号从第一移位寄存器组发送的保存与移位的数据中选取相应数据送入部分积运算模块中的低位加法器组;
高位加法器组根据第一使能信号和第二选择开关发送的数据进行部分积的运算,同时将计算后的结果发送给第二移位寄存器;
低位加法器组根据第二使能信号和第三选择开关发送的数据进行部分积的运算,同时将计算后的结果发送给第三移位寄存器;
第二移位寄存器组根据第二移位控制信号完成高位加法器组输入的数据的保存与移位;同时将该数据发送给第一选择开关,并且根据控制模块的控制信号将最终计算结果输出;
第三移位寄存器组根据第三移位控制信号完成低位加法器组输入的数据的保存与移位;同时将该数据发送给第一选择开关。
优选的:所述第一、第二、第三选通信号,第一、第二使能信号,第一、第二、第三移位控制信号以及输出使能信号通过控制模块里的计数器计数的方式产生;
当计数值为0时,第一选择开关选择输入数据,输入移位寄存器组,第二选择开关和第三选择开关选择对应操作数送入至高位加法器组和低位加法器组中,第一阶段的部分积运算结果送入第二移位寄存器组中保存;
当计数值为1时,第三移位寄存器组完成相应移位操作,并通过第一选择开关送入第一移位寄存器组,第二选择开关选通数据送入高位加法器组,第三选择开关和低位加法器组关断;第二阶段运算结果由第二移位寄存器组直接保存;
当计数器计数至(log2N-1)时,控制模块控制第一选择开关将上一阶段的部分积运算结果送入至第一移位寄存器组中,部分积运算模块内部第二选择开关选取数据送入高位加法器组中,得出最终运算结果,同时使输出使能信号有效。
本发明提供的一种改进型部分并行架构乘法器及其处理方法,相比现有技术,具有以下有益效果:由控制模块通过计数器计数的方式产生各个模块的控制信号,包括选择开关的选通信号、移位寄存器组的使能信号、部分积运算模块的使能信号以及其内部的控制信号和输出使能信号。部分积运算模块在控制模块的控制下,利用高位加法器组和低位加法器组完成第一阶段部分积的运算,然后利用高位加法器组完成以后阶段的部分积运算,并输出最后的运算结果。移位寄存器组在控制信号的作用下对各阶段的部分积运算结果进行移位操作。工作使能信号有效后,控制模块内部计数器开始计数,根据计数器的计数值产生各模块的控制信号。因此对于两个N位的二进制数相乘时,只需要N/2个加法器就可以在log2N个时钟周期内完成运算。移位操作只需在计数器为0和1的时候在第一和第三移位寄存器组中进行有规律的操作。通过在各阶段部分积运算中对加法器进行复用,加法器和寄存器的数量缩减到全并行架构流水线乘法器的一半,整体处理延时则保持不变。
综上所述:通过对加法器的复用,可以大大降低加法器寄存器数量,从而节省硬件资源。同时,在进行乘法运算时,采用了分级处理的方式,各级运算并行执行,降低了整体电路的运算延时。
附图说明
图1为乘法器在编码电路中的位置。
图2为全并行流水线架构16位乘法器电路结构图。
图3为本发明提出的改进型部分并行架构定点数乘法器结构图。
图4为基于本发明的16位改进型乘法器中部分积运算模块具体实施结构图。
图5为基于本发明的16位改进型乘法器中控制模块的具体实施结构图。
其中,801为第一选择开关,802为第一移位寄存器组,803为部分积运算模块,804为第二选择开关,805为高位加法器组,806为第二移位寄存器组,807为控制模块,808为第三选择开关,809为低位加法器组,810为第三移位寄存器组。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如图1、2所示为一种改进型部分并行架构乘法器,应用于被乘数和乘数位数均为N位二进制数的乘法运算,其中所述N=2k,k为正整数。从整体上将其分为log2N级,每级运算产生相应部分积结果,并将结果存入移位寄存器组,通过控制模块控制每级运算被操作数的选择与结果的存储以及最终运算结果的输出。
包括外部模块、第一选择开关、控制模块、部分积运算模块以及第一、第二、第三移位寄存器组;所述部分积运算模块包括第二、第三选择开关、高位加法器组和低位加法器组;
所述外部模块用于向控制模块和第一移位寄存器组输入复位信号,用于向控制模块输入工作使能信号,用于向第一选择开关和控制模块输入数据;
所述第一选择开关用于根据第一选通信号和外部模块的输入数据选择待操作数,并将该待操作数存入第一移位寄存器组;根据第一选通信号将第二移位寄存器组、第三移位寄存器组发送的数据均送入到第一移位寄存器组;
所述第一移位寄存器组用于根据第一移位控制信号完成待操作数、第二移位寄存器组以及第三移位寄存器组发送的数据的保存与移位,同时将保存与移位的数据发送给第二选择开关、第三选择开关;
所述第二选择开关用于根据第二选通信号从第一移位寄存器组发送的保存与移位的数据中选取相应数据送入部分积运算模块中的高位加法器组;
所述第三选择开关用于根据第三选通信号从第一移位寄存器组发送的保存与移位的数据中选取相应数据送入部分积运算模块中的低位加法器组;
所述高位加法器组用于根据第一使能信号和第二选择开关发送的数据进行部分积的运算,同时将计算后的结果发送给第二移位寄存器;
所述低位加法器组用于根据第二使能信号和第三选择开关发送的数据进行部分积的运算,同时将计算后的结果发送给第三移位寄存器;
所述第二移位寄存器组用于根据第二移位控制信号完成高位加法器组输入的数据的保存与移位;同时将该数据发送给第一选择开关,并且根据控制模块的控制信号将最终计算结果输出;
所述第三移位寄存器组用于根据第三移位控制信号完成低位加法器组输入的数据的保存与移位;同时将该数据发送给第一选择开关;
所述控制模块用于根据工作使能信号和输入数据产生第一选择开关、第二选择开关、第三选择开关相对应的第一、第二、第三选通信号,并通过第一、第二、第三选通信号控制相对应的第一选择开关、第二选择开关、第三选择开关;产生最终运算结果的使能信号的使能输出信号;产生第一、第二、第三移位寄存器组相对应的第一、第二、第三移位控制信号,并通过第一、第二、第三移位控制信号控制相对应的第一、第二、第三移位寄存器组;产生高位加法器组和低位加法器组相对应的第一、第二使能信号,并通过第一、第二使能信号控制相对应的高位加法器组和低位加法器组的工作,同时根据使能输出信号将最终运算结果的使能信号输出;用于控制第二移位寄存器组将最终计算结果输出。
所述第一选择开关设置有5N/2个输入端口和2N个输出端口,所述第二、第三选择开关均设置有N/2个输入端口和N/2个输出端口;所述第一移位寄存器组由N/2个2*N位寄存器和N/2个(N+1)位寄存器组成;所述第二移位寄存器组由N/2个2*N位寄存器组成,所述第三移位寄存器组由N/2个3*N/2位寄存器组成。
第一选择开关是由多个传输门组成的受控开关。其内部可分为两大部分,部分积运算传输开关和操作数传输开关。其中部分积运算传输开关为由N/4个2N位的传输门和N/4个(N+1)位的传输门组成。操作数传输开关由2N个N位的传输门组成。第一选择开关的总体控制信号与内部的所有传输门控制信号连接。
第一移位寄存器组为部分积运算结果存储单元,其内部组成为包含有由操作数控制的移位寄存器。设操作数为A和B,则在第一移位寄存器组中,根据B每一位上的数值,A完成相应移位操作。对于部分积运算结果输入数据,该寄存器组只负责保存。
第二选择开关和第三选择开关皆为由N/2个内部多位传输门组成的多路选择开关。第二选择开关中内部传输门的位数为2N位,第三选择开关内部皆为(N+1)位的传输门。内部传输门直接由控制模块的控制信号控制。
高位加法器组和低位加法器组皆由N/4个加法器构成。高位加法器组在整个乘法运算的每一阶段都参与运算,最终结果也是在其内部运算完成,并通过第二移位寄存器组输出。低位加法器组只在运算的第一阶段参与运算。其位数皆为(N+1)位。
第二和第三移位寄存器组皆由N/2个寄存器组成。第二移位寄存器组只负责数据的保存,第三移位寄存器组负责第一阶段运算数据的保存与移位操作。
所述控制模块包括计数器,所述计数器通过计数的方式产生第一、第二、第三选通信号,第一、第二使能信号,第一、第二、第三移位控制信号以及输出使能信号。计数器的计数范围为0~(log2N-1),共log2N个时钟周期。各模块的控制信号由其内部的组合逻辑产生。具体的组合逻辑电路遵循以下规则:对于第一选择开关的控制信号,其产生由计数器的计数值为0,1和2控制。对于第二选择开关,控制信号为由0~1,2~(log2N-1)分阶段控制。对于第三选择开关,由计数值为0控制。高位加法器组,其控制信号由计数值为0~1,2~(log2N-1)分阶段产生。低位加法器组,其控制信号由计数值为0产生。第二移位寄存器组,其控制信号由计数值为0~1,2~(log2N-1)分阶段产生。第三移位寄存器组,其控制信号由计数值为0和1产生。
一种改进型部分并行架构乘法器处理方法,电路开始工作时,外部模块向控制模块和第一移位寄存器组输入复位信号,向控制模块输入工作使能信号,向第一选择开关和控制模块输入数据;
控制模块根据工作使能信号和输入数据产生第一选择开关、第二选择开关、第三选择开关相对应的第一、第二、第三选通信号,并通过第一、第二、第三选通信号控制相对应的第一选择开关、第二选择开关、第三选择开关;产生最终运算结果的输出使能信号;产生第一、第二、第三移位寄存器组相对应的第一、第二、第三移位控制信号,并通过第一、第二、第三移位控制信号控制相对应的第一、第二、第三移位寄存器组;产生高位加法器组和低位加法器组相对应的第一、第二使能信号,并通过第一、第二使能信号控制相对应的高位加法器组和低位加法器组的工作,同时根据使能输出信号将最终运算结果的使能信号输出;控制第二移位寄存器组将最终计算结果输出;
第一选择开关根据第一选通信号和外部模块的输入数据选择待操作数,并将该待操作数存入第一移位寄存器组;根据第一选通信号将第二移位寄存器组、第三移位寄存器组发送的数据均送入到第一移位寄存器组;
第一移位寄存器组根据第一移位控制信号完成待操作数、第二移位寄存器组以及第三移位寄存器组发送的数据的保存与移位,同时将保存与移位的数据发送给第二选择开关、第三选择开关;
第二选择开关根据第二选通信号从第一移位寄存器组发送的保存与移位的数据中选取相应数据送入部分积运算模块中的高位加法器组;
第三选择开关根据第三选通信号从第一移位寄存器组发送的保存与移位的数据中选取相应数据送入部分积运算模块中的低位加法器组;
高位加法器组根据第一使能信号和第二选择开关发送的数据进行部分积的运算,同时将计算后的结果发送给第二移位寄存器;
低位加法器组根据第二使能信号和第三选择开关发送的数据进行部分积的运算,同时将计算后的结果发送给第三移位寄存器;
第二移位寄存器组根据第二移位控制信号完成高位加法器组输入的数据的保存与移位;同时将该数据发送给第一选择开关,并且根据控制模块的控制信号将最终计算结果输出;
第三移位寄存器组根据第三移位控制信号完成低位加法器组输入的数据的保存与移位;同时将该数据发送给第一选择开关。
当计数值为0时,控制信号控制第一选择开关将输入数据存放至第一移位寄存器组中进行移位操作。对应移位的位数为:第一移位寄存器组的上N/2个2*N的寄存器中,从上到下依次左移(N-1)位,(N-2)位,(N-3)位,一直到(N-N/2)即N/2位;第一移位寄存器组的下N/2个(N+1)位寄存器中,从上到下依次移位1位,0位,1位,0位,一直到最低位的操作数移位0位。控制模块控制部分积运算模块通过其内部第二选择开关和第三选择开关取出相应数据,分别送至高位加法器组和低位加法器组中进行第一阶段的部分积运算,产生N/2个部分积结果,分别送入第二移位寄存器组和第三移位寄存器组中保存。
当计数值为1时,控制模块控制第三移位寄存器组进行数据移位操作,移位位数从上到下依次左移(N/2-2)位,(N/2-4)位,一直到左移0位。移位操作完毕后,控制第一选择开关将第二移位寄存器组和第三移位寄存器组中移位之后的数据,即第一阶段的部分积运算结果存入第一移位寄存器组中的N/2个2*N位的寄存器中。部分积运算模块通过第二选择开关选取相应数据送至高位加法器组中,进行第二阶段的部分积运算,产生N/4个部分积结果,存入第二移位寄存器组中保存。
当计数值为2时,控制模块控制第一选择开关选取第二移位寄存器组的数据,将第二阶段的部分积运算结果存入第一移位寄存器组中。然后控制部分积运算模块内部的第二选择开关将相应N/4组数据取出送至高位加法器组中的最高位数的N/8个加法器中,进行第三阶段的部分积运算,产生N/8个部分积结果,同时控制第一选择开关将第二阶段的部分积运算结果存入第一移位寄存器组中。
如此继续进行以后阶段的操作,从第二阶段之后,控制模块控制部分积运算模块关闭第三选择开关和低位加法器组,只使用第二选择开关和高位加法器组进行以后阶段部分积的运算。
当计数值为log2N-1时,控制模块控制第一选择开关将上一阶段的部分积运算结果送入至第一移位寄存器组中,控制信号控制部分积运算模块通过第二选择开关将N/8组数据送至高位加法器组中的最高位数加法器中,进行最后一阶段部分积的运算。最终运算结果通过高位加法器组送至第二移位寄存器组中并输出。同时,控制模块产生输出使能信号。
电路开始工作时,所有移位寄存器组清零,高低位加法器组的输出清零,控制模块内部计数器清零。外部模块送入使能信号时,控制模块内部计数器开始计数,计数区间为[0,log2N-1],控制模块同时根据当前计数值向各模块发送控制信号。各模块在相应控制信号下完成各阶段的上述操作。
实例
如图3、图5为本发明中乘法器的具体实施结构图。为更好的说明本发明中的数据处理方法,以16*16位的乘法运算为例进行说明。首先对全并行架构的数据处理做简要介绍。如图2所示为16位全并行架构乘法器,图中加法器均为32位加法器。在进行计算时,设A为被乘数,B为乘数,A,B都为16位二进制数(对于有符号数,只需对符号位做简单异或操作即可)。首先将数据按图中所述方式做处理,然后送入乘法器中逐级进行部分积的运算。从架构可以看出,全并行架构同时需要很多加法器和寄存器,这些部分将耗费大量的硬件资源。
基于本发明的16*16乘法器中,只有三个移位寄存器组,部分积运算模块一共有8个加法器,用于计算部分积。8个加法器中,有由4个17位的加法器组成的低位加法器组和4个更高位数的加法器组成的高位加法器组,其位数从下向上分别为:26位,28位,30位和32位。第一选择开关有24个输入端口16个输出端口,第二选择开关和第三选择开关都各有8个输入和8个输出端口。部分积运算模块的具体实施结构图如图4所示。下面对其具体的各阶段下工作方式进行详细的说明。
当外部使能到来时,控制器开始进行计数,由于被操作数为16位,故计数区间为0~3,即(log216-1),各计数值下对应的操作如下:
当计数器计数值为0时,第一选择开关选择输入数据(如图4左边的数据所示),存入第一移位寄存器组中进行移位操作,具体移位操作从上而下如下:
高寄存器组
215×A×B[15]
214×A×B[14]
213×A×B[13]
212×A×B[12]
211×A×B[11]
210×A×B[10]
29×A×B[9]
28×A×B[8]
低寄存器组
2×A×B[7]
A×B[6]
2×A×B[5]
A×B[4]
2×A×B[3]
A×B[2]
2×A×B[1]
A×B[0]
此处,与2相乘的操作在移位寄存器组中即为数据左移相应位数。
第二选择开关和第三选择开关同时工作,从移位寄存器组中选取相应数据送入加法器组中,得到第一阶段的部分积结果:sum10~sum17,共8个。在计算sum10~sum17时,相应的计算公式如下:
高位加法器组中第一阶段的加法操作
sum17=215×A×B[15]+214×A×B[14]
sum16=213×A×B[13]+212×A×B[12]
sum15=211×A×B[11]+210×A×B[10]
sum14=29×A×B[9]+28×A×B[8]
低位加法器组中第一阶段的加法操作
sum13=2×A×B[7]+A×B[6]
sum12=2×A×B[5]+A×B[4]
sum11=2×A×B[3]+A×B[2]
sum10=2×A×B[1]+A×B[0]
其中sum10~sum13为18位数据。运算结果保存到第二移位寄存器组中。
计数器计数值为1时,控制模块控制第三移位寄存器组进行移位操作,并将移位后的数据送入第一寄存器组。具体操作如下:
26×sum13
24×sum12
22×sum11
sum10
此处的与2的指数相乘在寄存器中即为左移相应位数,尾数补零。
移位操作完成之后,控制信号控制部分积运算模块内部的第二选择开关和高位加法器组工作,从第一移位寄存器组中选取第一阶段的部分积运算结果,送入高位加法器组中进行加法运算,得到第二阶段运算结果sum20~sum23,并将结果存入第二移位寄存器组中。
其中,sum20~sum23的计算公式如下:
高位加法器组第二阶段加法操作:
sum23=sum16+sum17
sum22=sum14+sum15
sum21=24×sum12+26×sum13
sum20=sum10+22×sum11
当计数值为2时,控制模块控制部分积运算模块内部第二选择开关和高位加法器组工作,从寄存器中取出第二阶段的部分积结果,输入至高位加法器组中的最宽位数加法器和次宽位数加法器中,进行第三阶段的部分积运算结果sum30和sum31,并将结果存入移位寄存器组中。
其中,sum30和sum31的计算公式如下:
高位加法器组中位宽为32和30的两个加法器加法操作:
sum30=sum20+sum21
sum31=sum22+sum23
当计数器计数值为3时,控制模块控制部分积运算内部的第二选择开关和高位加法器组工作,将移位寄存器组中存储的第三阶段的部分积运算结果输入至高位加法器组中最宽位加法器中,进行最后一阶段的部分积运算,得到最终计算结果sum40:
高位加法器组中32为加法器加法操作:
sum40=sum30+sum31
此时将计算结果通过第二移位寄存器组输出,同时控制模块产生输出使能信号。
由于两个16位无符号二进制数相乘,其结果最大为32位二进制数,因此本发明中不会出现结果溢出的现象。在进行部分积运算的过程中,只需要对第一阶段的被操作数和部分积运算结果进行扩展位数的操作。由乘法运算的运算规则可以得出,sum10~sum13在进行第二阶段的加法操作时,其位数扩展十分简单,只需从下到上依次比前一操作数多扩展2位即可,即sum10低位扩展0位,sum11低位扩展2位,sum12低位扩展4位,sum13低位扩展6位,此处低位扩展就是在低位执行补零操作。对于其他部分积则只需直接输入至加法器中进行操作即可。扩展补零操作在移位寄存器组中完成。
本发明通过对部分积运算模块内部的高位加法器组进行复用,可以将加法器的总数目降低至全并行架构的一半,同时单级处理延时不变,为log2N个时钟周期。同时,节省了大量的寄存器资源,只需在部分积运算模块之前加入一个移位寄存器组。该种架构的乘法器相比于全并行架构在硬件资源消耗上具有很大优势。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (5)
1.一种改进型部分并行架构乘法器,应用于被乘数和乘数位数均为N位二进制数的乘法运算,其中所述N=2k,k为正整数,其特征在于:包括外部模块、第一选择开关、控制模块、部分积运算模块以及第一、第二、第三移位寄存器组;所述部分积运算模块包括第二、第三选择开关、高位加法器组和低位加法器组;
所述外部模块用于向控制模块和第一移位寄存器组输入复位信号,用于向控制模块输入工作使能信号,用于向第一选择开关和控制模块输入数据;
所述第一选择开关用于根据第一选通信号和外部模块的输入数据选择待操作数,并将该待操作数存入第一移位寄存器组;根据第一选通信号将第二移位寄存器组、第三移位寄存器组发送的数据均送入到第一移位寄存器组;
所述第一移位寄存器组用于根据第一移位控制信号完成待操作数、第二移位寄存器组以及第三移位寄存器组发送的数据的保存与移位,同时将保存与移位的数据发送给第二选择开关、第三选择开关;
所述第二选择开关用于根据第二选通信号从第一移位寄存器组发送的保存与移位的数据中选取相应数据送入部分积运算模块中的高位加法器组;
所述第三选择开关用于根据第三选通信号从第一移位寄存器组发送的保存与移位的数据中选取相应数据送入部分积运算模块中的低位加法器组;
所述高位加法器组用于根据第一使能信号和第二选择开关发送的数据进行部分积的运算,同时将计算后的结果发送给第二移位寄存器;
所述低位加法器组用于根据第二使能信号和第三选择开关发送的数据进行部分积的运算,同时将计算后的结果发送给第三移位寄存器;
所述第二移位寄存器组用于根据第二移位控制信号完成高位加法器组输入的数据的保存与移位;同时将该数据发送给第一选择开关,并且根据控制模块的控制信号将最终计算结果输出;
所述第三移位寄存器组用于根据第三移位控制信号完成低位加法器组输入的数据的保存与移位;同时将该数据发送给第一选择开关;
所述控制模块用于根据工作使能信号和输入数据产生第一选择开关、第二选择开关、第三选择开关相对应的第一、第二、第三选通信号,并通过第一、第二、第三选通信号控制相对应的第一选择开关、第二选择开关、第三选择开关;产生最终运算结果的输出使能信号;产生第一、第二、第三移位寄存器组相对应的第一、第二、第三移位控制信号,并通过第一、第二、第三移位控制信号控制相对应的第一、第二、第三移位寄存器组;产生高位加法器组和低位加法器组相对应的第一、第二使能信号,并通过第一、第二使能信号控制相对应的高位加法器组和低位加法器组的工作,同时根据使能输出信号将最终运算结果的使能信号输出;用于控制第二移位寄存器组将最终计算结果输出。
2.根据权利要求1所述的改进型部分并行架构乘法器,其特征在于:所述第一选择开关设置有5N/2个输入端口和2N个输出端口,所述第二、第三选择开关均设置有N/2个输入端口和N/2个输出端口;所述第一移位寄存器组由N/2个2*N位寄存器和N/2个(N+1)位寄存器组成;所述第二移位寄存器组由N/2个2*N位寄存器组成,所述第三移位寄存器组由N/2个3*N/2位寄存器组成。
3.根据权利要求1所述的改进型部分并行架构乘法器,其特征在于:所述控制模块包括计数器,所述计数器通过计数的方式产生第一、第二、第三选通信号,第一、第二使能信号,第一、第二、第三移位控制信号以及输出使能信号。
4.根据权利要求1所述的改进型部分并行架构乘法器处理方法,其特征在于:电路开始工作时,外部模块向控制模块和第一移位寄存器组输入复位信号,向控制模块输入工作使能信号,向第一选择开关和控制模块输入数据;
控制模块根据工作使能信号和输入数据产生第一选择开关、第二选择开关、第三选择开关相对应的第一、第二、第三选通信号,并通过第一、第二、第三选通信号控制相对应的第一选择开关、第二选择开关、第三选择开关;产生最终运算结果的输出使能信号;产生第一、第二、第三移位寄存器组相对应的第一、第二、第三移位控制信号,并通过第一、第二、第三移位控制信号控制相对应的第一、第二、第三移位寄存器组;产生高位加法器组和低位加法器组相对应的第一、第二使能信号,并通过第一、第二使能信号控制相对应的高位加法器组和低位加法器组的工作,同时根据使能输出信号将最终运算结果的使能信号输出;控制第二移位寄存器组将最终计算结果输出;
第一选择开关根据第一选通信号和外部模块的输入数据选择待操作数,并将该待操作数存入第一移位寄存器组;根据第一选通信号将第二移位寄存器组、第三移位寄存器组发送的数据均送入到第一移位寄存器组;
第一移位寄存器组根据第一移位控制信号完成待操作数、第二移位寄存器组以及第三移位寄存器组发送的数据的保存与移位,同时将保存与移位的数据发送给第二选择开关、第三选择开关;
第二选择开关根据第二选通信号从第一移位寄存器组发送的保存与移位的数据中选取相应数据送入部分积运算模块中的高位加法器组;
第三选择开关根据第三选通信号从第一移位寄存器组发送的保存与移位的数据中选取相应数据送入部分积运算模块中的低位加法器组;
高位加法器组根据第一使能信号和第二选择开关发送的数据进行部分积的运算,同时将计算后的结果发送给第二移位寄存器;
低位加法器组根据第二使能信号和第三选择开关发送的数据进行部分积的运算,同时将计算后的结果发送给第三移位寄存器;
第二移位寄存器组根据第二移位控制信号完成高位加法器组输入的数据的保存与移位;同时将该数据发送给第一选择开关,并且根据控制模块的控制信号将最终计算结果输出;
第三移位寄存器组根据第三移位控制信号完成低位加法器组输入的数据的保存与移位;同时将该数据发送给第一选择开关。
5.根据权利要求4所述的改进型部分并行架构乘法器处理方法,其特征在于:所述第一、第二、第三选通信号,第一、第二使能信号,第一、第二、第三移位控制信号以及输出使能信号通过控制模块里的计数器计数的方式产生;
当计数值为0时,第一选择开关选择输入数据,输入移位寄存器组,第二选择开关和第三选择开关选择对应操作数送入至高位加法器组和低位加法器组中,第一阶段的部分积运算结果送入第二移位寄存器组中保存;
当计数值为1时,第三移位寄存器组完成相应移位操作,并通过第一选择开关送入第一移位寄存器组,第二选择开关选通数据送入高位加法器组,第三选择开关和低位加法器组关断;第二阶段运算结果由第二移位寄存器组直接保存;
当计数器计数至(log2N-1)时,控制模块控制第一选择开关将上一阶段的部分积运算结果送入至第一移位寄存器组中,部分积运算模块内部第二选择开关选取数据送入高位加法器组中,得出最终运算结果,同时使输出使能信号有效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410319001.2A CN104090737B (zh) | 2014-07-04 | 2014-07-04 | 一种改进型部分并行架构乘法器及其处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410319001.2A CN104090737B (zh) | 2014-07-04 | 2014-07-04 | 一种改进型部分并行架构乘法器及其处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104090737A true CN104090737A (zh) | 2014-10-08 |
CN104090737B CN104090737B (zh) | 2017-04-05 |
Family
ID=51638456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410319001.2A Active CN104090737B (zh) | 2014-07-04 | 2014-07-04 | 一种改进型部分并行架构乘法器及其处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104090737B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017092284A1 (zh) * | 2015-12-01 | 2017-06-08 | 中国科学院计算技术研究所 | 加法器装置、数据累加方法及数据处理装置 |
CN109284827A (zh) * | 2017-07-19 | 2019-01-29 | 阿里巴巴集团控股有限公司 | 神经网络计算方法、设备、处理器及计算机可读存储介质 |
CN110750232A (zh) * | 2019-10-17 | 2020-02-04 | 电子科技大学 | 一种基于sram的并行乘加装置 |
CN111522528A (zh) * | 2020-04-22 | 2020-08-11 | 厦门星宸科技有限公司 | 乘法器、乘法运算方法、运算芯片、电子设备及存储介质 |
CN111753962A (zh) * | 2020-06-24 | 2020-10-09 | 国汽(北京)智能网联汽车研究院有限公司 | 一种加法器、乘法器、卷积层结构、处理器及加速器 |
CN114968175A (zh) * | 2022-06-06 | 2022-08-30 | 湖南毂梁微电子有限公司 | 一种用于智能计算加速的可配置移位加法融合单元 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050240646A1 (en) * | 2004-04-23 | 2005-10-27 | The Research Foundation Of State University Of New York | Reconfigurable matrix multiplier architecture and extended borrow parallel counter and small-multiplier circuits |
CN1702613A (zh) * | 2004-03-02 | 2005-11-30 | 三星电子株式会社 | 蒙哥马利模乘法器 |
CN103268217A (zh) * | 2013-04-19 | 2013-08-28 | 荣成市鼎通电子信息科技有限公司 | 基于循环左移的准循环矩阵串行乘法器 |
CN103902508A (zh) * | 2014-04-23 | 2014-07-02 | 荣成市鼎通电子信息科技有限公司 | 部分并行输入的累加左移准循环矩阵乘法器 |
-
2014
- 2014-07-04 CN CN201410319001.2A patent/CN104090737B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1702613A (zh) * | 2004-03-02 | 2005-11-30 | 三星电子株式会社 | 蒙哥马利模乘法器 |
US20050240646A1 (en) * | 2004-04-23 | 2005-10-27 | The Research Foundation Of State University Of New York | Reconfigurable matrix multiplier architecture and extended borrow parallel counter and small-multiplier circuits |
CN103268217A (zh) * | 2013-04-19 | 2013-08-28 | 荣成市鼎通电子信息科技有限公司 | 基于循环左移的准循环矩阵串行乘法器 |
CN103902508A (zh) * | 2014-04-23 | 2014-07-02 | 荣成市鼎通电子信息科技有限公司 | 部分并行输入的累加左移准循环矩阵乘法器 |
Non-Patent Citations (2)
Title |
---|
MENG ZHANG ET AL.: "The design and implementation of Reed-Solomon Decoder in Broadband Wireless Access", 《2008 4TH INTERNATIONAL CONFERENCE ON WIRELESS COMMUNICATIONS,NETWORKING AND MOBILE COMPUTING》 * |
凌朝东等: "用CPLD的实现的FIR滤波器", 《华侨大学学报(自然科学版)》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017092284A1 (zh) * | 2015-12-01 | 2017-06-08 | 中国科学院计算技术研究所 | 加法器装置、数据累加方法及数据处理装置 |
US10416964B2 (en) | 2015-12-01 | 2019-09-17 | Institute Of Computing Technology, Chinese Academy Of Sciences | Adder device, data accumulation method and data processing device |
CN109284827A (zh) * | 2017-07-19 | 2019-01-29 | 阿里巴巴集团控股有限公司 | 神经网络计算方法、设备、处理器及计算机可读存储介质 |
CN110750232A (zh) * | 2019-10-17 | 2020-02-04 | 电子科技大学 | 一种基于sram的并行乘加装置 |
CN110750232B (zh) * | 2019-10-17 | 2023-06-20 | 电子科技大学 | 一种基于sram的并行乘加装置 |
CN111522528A (zh) * | 2020-04-22 | 2020-08-11 | 厦门星宸科技有限公司 | 乘法器、乘法运算方法、运算芯片、电子设备及存储介质 |
CN111522528B (zh) * | 2020-04-22 | 2023-03-28 | 星宸科技股份有限公司 | 乘法器、乘法运算方法、运算芯片、电子设备及存储介质 |
CN111753962A (zh) * | 2020-06-24 | 2020-10-09 | 国汽(北京)智能网联汽车研究院有限公司 | 一种加法器、乘法器、卷积层结构、处理器及加速器 |
CN111753962B (zh) * | 2020-06-24 | 2023-07-11 | 国汽(北京)智能网联汽车研究院有限公司 | 一种加法器、乘法器、卷积层结构、处理器及加速器 |
CN114968175A (zh) * | 2022-06-06 | 2022-08-30 | 湖南毂梁微电子有限公司 | 一种用于智能计算加速的可配置移位加法融合单元 |
CN114968175B (zh) * | 2022-06-06 | 2023-03-07 | 湖南毂梁微电子有限公司 | 一种用于智能计算加速的可配置移位加法融合单元 |
Also Published As
Publication number | Publication date |
---|---|
CN104090737B (zh) | 2017-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104090737A (zh) | 一种改进型部分并行架构乘法器及其处理方法 | |
CN100405361C (zh) | 用于执行计算操作的方法、系统以及设备 | |
CN104375802B (zh) | 一种乘除法器及运算方法 | |
CN102103479A (zh) | 浮点运算器及浮点运算的处理方法 | |
CN102231102A (zh) | 基于余数系统的rsa密码处理方法及协处理器 | |
CN105183425B (zh) | 一种具有高精度低复杂度特性的固定位宽乘法器 | |
CN104991757A (zh) | 一种浮点处理方法及浮点处理器 | |
CN102184161A (zh) | 基于余数系统的矩阵求逆装置及方法 | |
CN102184086B (zh) | 一种Booth编码器及乘法器 | |
CN104407836A (zh) | 利用定点乘法器进行级联乘累加运算的装置和方法 | |
CN107092462B (zh) | 一种基于fpga的64位异步乘法器 | |
CN102253822B (zh) | 一种模(2^n-3)乘法器 | |
Molahosseini et al. | A new five-moduli set for efficient hardware implementation of the reverse converter | |
Pokhriyal et al. | Compressor Based Area-Efficient Low-Power 8x8 Vedic Multiplier | |
Singh | Design of low area and low power modified 32-BIT square root carry select adder | |
CN112631546A (zh) | 基于ko-8算法的高性能模乘器 | |
CN101257483A (zh) | 一种应用于无线通信系统基带信号处理的可配置处理器 | |
Murali et al. | An optimized implementation of vedic multiplier using barrel shifter in FPGA technology | |
Moayedi et al. | Design and evaluation of novel effective Montgomery modular multiplication architecture | |
CN105634567B (zh) | 一种面向mimo检测系统的可重构计算单元微结构及配置机制 | |
Nepolean et al. | An optimized design for Fused add-multiply operation | |
Nithyashree et al. | Design of an efficient vedic binary squaring circuit | |
Bai et al. | An efficient modified Booth recoder for different applications | |
CN115658007A (zh) | 一种高带宽可配流水级的并行乘法器运算方法 | |
RAJINI et al. | A Novel Efficient Design of the Add-Multiply Operator Based on Optimized Modified Booth Re-coder |
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 |