CN108958703B - 加法器 - Google Patents
加法器 Download PDFInfo
- Publication number
- CN108958703B CN108958703B CN201710350866.9A CN201710350866A CN108958703B CN 108958703 B CN108958703 B CN 108958703B CN 201710350866 A CN201710350866 A CN 201710350866A CN 108958703 B CN108958703 B CN 108958703B
- Authority
- CN
- China
- Prior art keywords
- carry
- circuit
- value
- output
- input value
- 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.)
- Active
Links
- 238000007781 pre-processing Methods 0.000 claims description 40
- 238000004364 calculation method Methods 0.000 abstract description 40
- 238000010586 diagram Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 101100322581 Caenorhabditis elegans add-1 gene Proteins 0.000 description 3
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供一种加法器,通过在加法计算电路中,采用稀疏树进位电路,同时先根据第一输入值和第二输入值提前计算出第一输出值,根据第一输入值、第二输入值和1提前计算出第二输出值,再根据实际进位值在两个输出值中选择求和的结果,以及求和加1的结果,使得加法器电路结构可同时计算两个多位二进制数的求和以及求和加1,并能够简化电路结构,提高加法器的性能。
Description
技术领域
本发明涉及电子器件,尤其涉及一种加法器。
背景技术
在高性能微处理器的运算部件中,加法运算是最常用的功能。在算术逻辑单元、内存地址产生单元以及整数部件和浮点部件中,都用到了大量的加法运算,加法运算也常常处于高性能处理器运算部件的关键路径中,因此加法运算的时间对处理器的速度起着决定性的作用。
在浮点乘加单元中,浮点运算按照先加法、再规格化、后舍入的顺序操作,在舍入时可能会引入加1操作,并需要一个加法器来完成加1操作,在加法操作后再执行加1操作会严重降低浮点乘加单元的计算速度。现有的加法器通过实现加法操作和舍入操作的同时执行,以避免加法操作后舍入操作引入的加1操作。具体通过在嵌入式CPU浮点乘加单元的舍入模块实现中,为一个多位加法器同时设计实现加法操作和舍入操作的电路结构,使得在一次加法运算中同时产生2个计算结果:n bit(比特)二进制操作数A加n bit二进制操作数B,即sum=A+B,以及n bit二进制操作数A加n bit二进制操作数B再加1,即sum+1=A+B+1,然后通过对两个计算结果进行选择实现舍入操作。从而避免了因加法操作后再执行加1操作而导致的运算时间较长的问题。
为同时实现求和以及求和加1运算,可采用现有的并行前缀加法器结构如Kogge-Stone结构、Brent-Kung结构或Han-Crison结构,采用上述结构的加法器在计算时通常增加新的进位计算路径,新的进位计算路径将已有的进位路径的计算结果与输入1相结合为求和加1运算计算新的进位。但是现有的基于并行前缀加法器结构的加法器结构性能较差,占用面积和功耗均较大,在增加了求和加1的模块后,面积和功耗较大的问题更加显著。
发明内容
本发明提供一种加法器,用以解决现有加法器占用面积和功耗均较大的问题。
本发明提供一种加法器,包括:稀疏树进位电路、预求和电路和输出电路;所述稀疏树进位电路包括共用电路、第一进位电路和第二进位电路;其中,
所述共用电路分别与所述第一进位电路和所述第二进位电路连接;所述共用电路用于,根据第一输入值和第二输入值,生成共用进位项;所述第一进位电路用于,根据所述共用进位项生成第一进位输出值;所述第二进位电路用于,根据进位输入值以及所述共用进位项生成第二进位输出值;
所述预求和电路用于,将所述第一输入值和所述第二输入值相加得到第一输出值,将所述第一输入值、所述第二输入值和1相加得到第二输出值;
所述输出电路分别与所述第一进位电路、所述第二进位电路和所述预求和电路连接;所述输出电路用于,根据所述第一进位输出值,输出所述第一输出值或所述第二输出值作为求和的结果;所述输出电路还用于,根据所述第二进位输出值,输出所述第一输出值或所述第二输出值作为求和加1的结果。
如上所述的加法器还包括:预处理电路;
所述预处理电路的输入端接收第一输入值、第二输入值、进位输入值和0值,所述预处理电路的输出端和所述稀疏树进位电路连接。
如上所述的加法器,所述预处理电路包括第一预处理电路和第二预处理电路;
所述第一预处理电路与所述共用电路连接,用于根据所述第一输入值和所述第二输入值,生成第一进位传播项和第一进位产生项,并将所述第一进位传播项和所述第一进位产生项发送给所述共用电路;
所述第二预处理电路与所述第二进位电路连接,用于根据所述进位输入值和0值生成第二进位传播项和第二进位产生项,并将所述第二进位传播项和所述第二进位产生项发送给所述第二进位电路。
如上所述的加法器,所述共用电路用于根据所述第一进位传播项和第一进位产生项生成共用进位项;
所述第二进位电路用于根据所述第二进位传播项和所述第二进位产生项以及所述共用进位项生成所述第二进位输出值。
如上所述的加法器,所述输出电路包括:第一判断电路和第二判断电路;
所述第一判断电路分别与所述第一进位电路的输出端和所述预求和电路的输出端连接;所述第二判断电路分别与所述第二进位电路的输出端和所述预求和电路的输出端连接;
所述第一判断电路,用于判断所述第一进位输出值是否为1,当所述第一进位输出值不为1时,输出所述第一输出值作为所述求和的结果,当所述第一进位输出值为1时,输出所述第二输出值作为所述求和的结果;
所述第二判断电路,用于判断所述第二进位输出值是否为1,当所述第二进位输出值不为1时,输出所述第一输出值作为所述求和加1的结果,当所述第二进位输出值为1时,输出所述第二输出值作为所述求和加1的结果。
如上所述的加法器,所述第一预处理电路具体用于,根据所述第一输入值A的每1个比特位A[i]和所述第二输入值B的每1个比特位B[i]生成所述第一进位传播项p[i]和所述第一进位产生项g[i];
其中,g[i]为A[i]和B[i]的相与,p[i]为A[i]和B[i]的相或,i的取值范围为0至n-1的正整数,n为所述第一输入值A和所述第二输入值B中较大数值的比特位数;
所述第二预处理电路具体用于,根据所述进位输入值c和0值生成所述第二进位传播项p0和所述第二进位产生项g0;
其中,g0为c和0的相与,p0为c和0的相或。
如上所述的加法器,所述稀疏树进位电路用于根据所述第一输入值和所述第二输入值的每4个比特位生成一个所述第一进位输出值和一个所述第二进位输出值。
如上所述的加法器,所述第一进位电路具体用于根据n位的所述第一输入值和所述第二输入值中的低3位生成的低3位第一进位传播项和低3位第一进位产生项生成一个所述第一进位输出值。
如上所述的加法器,所述预求和电路根据所述第一输入值和所述第二输入值的每4个比特位生成一个所述第一输出值和一个所述第二输出值。
本发明实施例提供的加法器,通过在计算进位的过程中,采用稀疏树进位电路,使得高位的进位计算无需在接收到低位的进位后才开始计算,提高了进位计算的速度,同时先根据第一输入值和第二输入值提前计算出第一输出值和第二输出值,再根据实际进位值在第一输入值和第二输入值中进行选择,输出求和的结果,以及求和加1的结果,使得加法器电路结构可同时计算两个多位二进制数的求和以及求和加1,并能够简化电路结构,提高加法器的性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明加法器实施例一的结构示意图;
图2为本发明加法器实施例二的结构示意图;
图3为本发明加法器实施例三的结构示意图;
图4为本发明加法器实施例四的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明加法器实施例一的结构示意图。本实施例的加法器可以为独立的硬件电路结构,也可以为芯片或微处理器等其他器件中的基础电路单元结构。
如图1所示,本发明实施例中的加法器,稀疏树进位电路10、预求和电路11和输出电路12;稀疏树进位电路包括共用电路13、第一进位电路14和第二进位电路15;其中,
共用电路13分别与第一进位电路14和第二进位电路15连接;共用电路13用于,根据第一输入值和第二输入值,生成共用进位项;第一进位电路14用于,根据共用进位项生成第一进位输出值;第二进位电路15用于,根据进位输入值以及共用进位项生成第二进位输出值;
预求和电路11用于,将第一输入值和第二输入值相加得到第一输出值,将第一输入值、第二输入值和1相加得到第二输出值;
输出电路12分别与第一进位电路14、第二进位电路15和预求和电路11连接;输出电路12用于,根据第一进位输出值,输出第一输出值或第二输出值作为求和的结果;输出电路12还用于,根据第二进位输出值,输出第一输出值或第二输出值作为求和加1的结果。
具体的,本发明实施例提供的加法器,包括稀疏树进位电路10、预求和电路11和输出电路12。其中预求和电路11用于计算第一输出值和第二输出值。其中,第一输出值根据第一输入值和第二输入值得到,第一输出值中的每一比特位在计算时,均不考虑进位。第二输出值根据第一输入值、第二输入值和1得到,第二输出值中的每一比特位在计算时,均认为进位为1。由于求和过程无需等待进位,故可提高计算速度。
具体的,进位的计算采用稀疏树进位电路来计算,稀疏树进位电路10包括共用电路13、第一进位电路14和第二进位电路15。第一进位电路14接收第一输入值和第二输入值,用于在不考虑舍入操作可能引入加1操作的情况下,计算两个输入值的求和过程中的进位。第二进位电路15接收第一输入值、第二输入值和进位输入值,用于在考虑舍入操作引入加1操作的情况下,计算两个输入值的求和加1的过程中的进位。其中,进位输入值为1。
由于求和计算中的每一个比特位的进位的计算,都取决于低位的所有比特位的进位。因此,为提高进位计算的速度,通常采用稀疏树结构。采用稀疏树结构的进位计算过程,根据两个输入值的比特位数,将多个比特位划为一组,并进一步将多个组进一步分组,组成树状结构的进位计算方法。通过将输入值按比特位分组,可提前计算本比特位分组相关的进位,而无需在接收到低位的进位后才计算高位的比特位的进位。
具体的,输出电路12同时输出求和的结果,以及求和加1的结果。在输出求和的结果时,根据第一进位电路14输出的进位为1或0,在第一输出值和第二输出值中选择求和结果。在输出求和加1的结果时,根据第二进位电路15输出的进位为1或0,在第一输出值和第二输出值中选择求和结果。
具体的,第一输出值、第二输出值、第一进位电路、第二进位电路中的计算都以比特位为单位,故在输出求和的结果,以及求和加1的结果时,同样以比特位为单位在第一进位电路、第二进位电路中进行选择。
本发明实施例提供的加法器,通过在计算进位的过程中,采用稀疏树进位电路,使得高位的进位计算无需在接收到低位的进位后才开始计算,提高了进位计算的速度,同时先根据第一输入值和第二输入值提前计算出第一输出值和第二输出值,再根据实际进位值在第一输入值和第二输入值中进行选择,输出求和的结果,以及求和加1的结果,使得加法器电路结构可同时计算两个多位二进制数的求和以及求和加1,并能够简化电路结构,提高加法器的性能。
在图1所示实施例的基础上,图2为本发明加法器实施例二的结构示意图。本实施例中的加法器还包括预处理电路16,并对加法器中各电路进行详细说明。如图2所示,加法器还包括:预处理电路16;
预处理电路16的输入端接收第一输入值、第二输入值、进位输入值和0值,预处理电路的输出端和稀疏树进位电路连接。预处理电路16包括第一预处理电路17和第二预处理电路18。其中,第一预处理电路17与共用电路13连接,用于根据第一输入值和第二输入值,生成第一进位传播项和第一进位产生项,并将第一进位传播项和第一进位产生项发送给共用电路13;第二预处理电路18与第二进位电路15连接,用于根据进位输入值和0值生成第二进位传播项和第二进位产生项,并将第二进位传播项和第二进位产生项发送给第二进位电路15。
共用电路13用于根据第一进位传播项和第一进位产生项生成共用进位项;第二进位电路15用于根据第二进位传播项和第二进位产生项以及共用进位项生成第二进位输出值。
输出电路12包括:第一判断电路19和第二判断电路20;
第一判断电路19分别与第一进位电路14的输出端和预求和电路11的输出端连接;第二判断电路20分别与第二进位电路15的输出端和预求和电路11的输出端连接;
第一判断电路19,用于判断第一进位输出值是否为1,当第一进位输出值不为1时,输出第一输出值作为求和的结果,当第一进位输出值为1时,输出第二输出值作为求和的结果;
第二判断电路20,用于判断第二进位输出值是否为1,当第二进位输出值不为1时,输出第一输出值作为求和加1的结果,当第二进位输出值为1时,输出第二输出值作为求和加1的结果。
本发明实施例提供的加法器,可将第一输入值A、第二输入值B和进位输入值c进行加和,同时得到求和sum,以及求和加1,即sum+1。其中,求和sum=A+B;求和加1,sum+1=A+B+1。通过同时计算得出A与B的和sum,以及sum+1,方便了浮点乘加单元后续直接根据舍入结果对sum、sum+1进行选择,避免了在计算得出sum后,在sum的基础上再加1,计算sum+1,节约了计算时间。示例性的,A和B为n比特位的二进制数,n为不超过加法器所能计算的比特位数,c为进位输入值,比特位数为1,c的取值为0或1,c为1时,表示同时计算sum和sum+1,c为0时,则仅可得出sum。在本发明下述实施例中c的值取1。
在本发明下述任一实施例中,符号“+”表示加和计算,符号“|”表示逻辑或。
具体的,预处理电路16中的第一预处理电路17,包括两个输入端和两个输出端,两个输入端分别用于输入第一输入值A和第二输入值B,A和B分别为加数和被加数,根据A和B可生成第一进位传播项和第一进位产生项。第二预处理电路18,包括两个输入端和两个输出端,两个输入端分别用于输入进位输入值c和0,根据c和0可生成第二进位传播项和第二进位产生项。
具体的,第一预处理电路17根据n位的第一输入值A[n-1:0]和n位的第二输入值B[n-1:0]的每1个比特位生成第一进位传播项p[n-1:0]和第一进位产生项g[n-1:0]。
可选的,第一预处理电路具体用于,根据第一输入值A的每1个比特位A[i]和第二输入值B的每1个比特位B[i]生成第一进位传播项p[i]和第一进位产生项g[i];
其中,g[i]为A[i]和B[i]的相与,p[i]为A[i]和B[i]的相或,i的取值范围为0至n-1的正整数,n为第一输入值A和第二输入值B中较大数值的比特位数;
第二预处理电路具体用于,根据进位输入值c和0值生成第二进位传播项p0和第二进位产生项g0;
其中,g0为c和0的相与,p0为c和0的相或。
具体的,g[i]=A[i]B[i],p[i]=A[i]|B[i],i的取值范围为0至n-1的正整数,n为第一输入值和第二输入值中较大数值的比特位数。当A或B的比特位数不同时,例如B的比特位数低于n时,只需将B的高位自动补0即可。
具体的,第二预处理电路18根据1比特位的进位输入值1和0值生成第二进位传播项p0和第二进位产生项g0。其中,g0=0,p0=1。
具体的,稀疏树进位电路10的输入端与预处理电路16连接,稀疏树进位电路10的输出端分别与第一判断电路19和第二判断电路20连接,稀疏树进位电路10包括共用电路13、第一进位电路14和第二进位电路15。共用电路13用于根据第一进位传播项p和第一进位产生项g生成共用进位项,并将共用进位项输出给第一进位电路14和第二进位电路15。第一进位电路14将共用进位项直接输出作为第一进位输出值c1。第二进位电路15用于根据第二进位传播项p0、第二进位产生项g0和共用进位项生成第二进位输出值c2。第一进位电路14将第一进位输出值c1发送给第一判断电路19,第二进位电路15将第二进位输出值c2发送给第二判断电路20。
具体的,预求和电路11的输出端与第一判断电路19和第二判断电路20连接,用于计算进位为0时的求和(即第一输出值)、进位为1时的求和(即第二输出值),并将第一输出值、第二输出值输出到第一判断电路19和第二判断电路20。
具体的,第一判断电路19,判断第一进位输出值是否为1,当第一进位输出值不为1时,一般为0,输出第一输出值作为sum;当第一进位输出值为1时,输出第二输出值作为sum;
第二判断电路20,判断第二进位输出值是否为1,当第二进位输出值不为1时,输出第一输出值sum+1,当第二进位输出值为1时,输出第二输出值作为sum+1。
可选的,稀疏树进位电路10用于根据第一输入值和第二输入值的每4个比特位生成一个第一进位输出值和一个第二进位输出值。预求和电路11根据第一输入值和所述第二输入值的每4个比特位生成一个第一输出值和一个第二输出值。
示例性的,当稀疏树进位电路10根据第一输入值和第二输入值的每4个比特位生成第一进位输出值和第二进位输出值时,预求和电路11根据第一输入值和第二输入值的每4个比特位生成第一输出值和第二输出值。
第一判断电路19判断每4个比特位的第一进位输出值是否为1,当某一4位的第一进位输出值c1为0时,表明对应的4位的第一输入值A和第二输入值B的求和计算中的进位为0,输出对应4位的第一输出值作为加法器的求和计算中对应4位的输出sum;当某一4位的第一进位输出值c1为1时,表明对应的4位的第一输入值A和第二输入值B的求和计算中的进位为1,输出对应4位的第二输出值作为加法器的求和输出sum。
第二判断电路20,判断每4个比特位的第二进位输出值c2是否为1,当某一4位的第二进位输出值c2为0时,表明对应的4位的第一输入值A和第二输入值B的求和加1计算中的进位为0,输出对应4位的第一输出值作为加法器的求和并加1的输出sum+1;当某一4位的第二进位输出值c2为1时,表明对应的4位的第一输入值A和第二输入值B的求和加1计算中的进位为1,输出对应4位的第二输出值作为加法器的求和并加1的输出sum+1。可选的,也可以2个、8个比特位为单位进行计算,本发明对此不做限定。
在二进制数的求和过程中,sum[n-1:0]和sum+1(即sum1[n-1:0])中的任一位sum[i]和sum1[i]都取决于第一输入值A中的A[i]、第二输入值B中的B[i]以及来自第i-1的进位c1[i]和c2[i],而任一位的进位c1[i]均取决于第一输入值A中的A[i-1:0]以及第二输入值B中的B[i-1:0],任一位的进位c2[i]均取决于第一输入值A中的A[i-1:0]、第二输入值B中的B[i-1:0]以及进位输入值c。而c1[i]和c2[i]的取值均只有0与1两种情况,因此,可先同时计算c1[i]和c2[i]取0或取1时的两个值,再根据接收到的c1[i]和c2[i]的真实值进行选择,以避免在接收到c1[i]和c2[i]的值之后,再进行加法计算。故可直接将求和过程拆分为计算进位的稀疏树进位电路10和计算求和的预求和电路11。
由于计算求和的预求和电路11相比较稀疏树进位电路10结构简单,延时较少,为平衡电路结构,在预求和电路11中,分别计算进位为1和进位为0两种情况下的第一输出值s1和第二输出值s2,再根据真正的第一进位输出值c1选择s1或s2,根据真正的第二进位输出值c2选择s1或s2。
本发明实施例提供的加法器,通过在计算进位的过程中,采用稀疏树进位电路,使得高位的进位计算无需在接收到低位的进位后才开始计算,提高了进位计算的速度,同时先根据第一输入值和第二输入值提前计算出第一输出值和第二输出值,再根据实际进位值在第一输入值和第二输入值中进行选择,输出求和的结果,以及求和加1的结果,使得加法器电路结构可同时计算两个多位二进制数的求和以及求和加1,并能够简化电路结构,提高加法器的性能。
下面结合具体实施例,对本发明提供的加法器进行详细说明。下面以加法器为51位加法器、进位和求和运算中以4个比特位为单位为例,进行详细说明。
图3为本发明加法器实施例三的结构示意图。如图3所示,示意性的示出了第一输入值A[50:0]和第二输入值B[50:0]通过本发明加法器,以4个比特位为单位进行求和以及求和加1计算时的加法器结构。
通过以4个比特位为单位进行求和和进位输出值的计算,可实现进位电路的结构简化与面积减小。示例性的,当第一输入值和第二输入值均为N比特位时,共用电路13可包括M层级的进位生成电路,M为大于等于log2N的最小正整数,N为大于1的正整数。
每一级进位生成电路包括多个进位生成单元,各进位生成单元用于根据上一级的至少两个进位生成单元生成的进位中间项生成新的进位中间项,以供下一级的进位生成单元使用,或作为共用进位项输入到第一进位电路14或第二进位电路15。
如图3所示,以N为51为例,M则为6,共有6级进位生成单元。可将第一预处理电路17和第二预处理电路18记为0级,在第一预处理电路17和第二预处理电路18中得到g[50:0]和p[50:0],g0和p0。
可选的,第一进位电路具体用于根据n位的第一输入值和第二输入值中的低3位生成的低3位第一进位传播项和低3位第一进位产生项生成一个第一进位输出值。
为了在计算第一输出值E与第二输出值F中尽可能的模块复用,采用第一输入值和第二输入值的低三位与进位输入值相结合计算进位的方式。
在计算第一输出值E时,如图3中实线所示,对于E[2:0]没有进位,可认为进位为0。
对于E[6:3]的进位c1[3],其计算公式为:
c1[3]=g[2]∣p[2]g[1]∣p[2]p[1]g[0]∣p[2]p[1]p[0];
对于E[10:7]的进位c1[7],其计算公式为:
c1[7]=g[6]∣p[6]g[5]∣p[6]p[5]g[4]∣p[6]p[5]p[4]g[3]∣p[6]p[5]p[4]p[3]c1[3]。
在计算进位c1[7]时,可等进位c1[3]的值确定后,再计算。对于第一级进位生成电路的进位生成单元,用于以2个比特位为单位将仅与p[i]、g[i]、p[i+1]和g[i+1]相关的进位计算进行预处理,如p[2]g[1]、p[2]p[1]等,对于第二级进位生成电路的进位生成单元,则以4个比特位为单位,计算与p[i]、g[i]、p[i+1]、g[i+1]、p[i+2]、g[i+2]、p[i+3]和g[i+3]相关的进位计算。其他级则以此类推。
在计算第二输出值F时,如图3中虚线所示,对于F[2:0]的进位c2[0],为进位输入值c。
F[6:3]的进位c2[3],其计算公式为:
c1[3]=g[2]∣p[2]g[1]∣p[2]p[1]g[0]∣p[2]p[1]p[0]c1[0];
对于F[10:7]的进位c1[7],其计算公式为:
c1[7]=g[6]∣p[6]g[5]∣p[6]p[5]g[4]∣p[6]p[5]p[4]g[3]∣p[6]p[5]p[4]p[3]c2[3];
由上述分析可得出,对于加法器进位电路中的各级进位生成电路,存在大量可复用的进位生成单元,本发明采用如图3所示的以4个比特位为单位进行复用的方式,节约了加法器面积。
图4为本发明加法器实施例四的结构示意图。如图4所示,以任意4比特位[i,i+3]为例,示出预求和电路11的结构。
预求和电路11以4个比特位为例,对于任意的A[i,i+3]与B[i,i+3]进行求和计算,如图4中实线所示;以及求和加1计算,如图4中虚线所示。
具体的,图4中的4比特位的预求和电路11进一步包括第一预求和电路、第二预求和电路、第三预求和电路和第四预求和电路,依次对第i位至第i+3位的数据进行对应处理。
其中Psum[i]=A[i]+B[i];G[i]=A[i]B[i],P[i]=A[i]|B[i];G[i+1]=A[i+1]B[i+1],P[i+1]=A[i+1]|B[i+1];G[i+2]=A[i+2]B[i+],P[i+2]=A[i+2]|B[i+2]。
第一预求和电路根据Psum[i]获取A[i]+B[i],以及A[i]+B[i]+1,分别作为第一输出值[i]和第二输出值[i]。
第二预求和电路根据A[i+1]、B[i+1],以及第i位的P[i]和G[i]作为前一位的进位,获取A[i+1]+B[i+1],以及A[i+1]+B[i+1]+1,分别作为第一输出值[i+1]和第二输出值[i+1]。
第三预求和电路根据A[i+2]、B[i+2],以及G[i+1]、P[i+1]、G[i]和P[i],获取A[i+2]+B[i+2],以及A[i+2]+B[i+2]+1,分别作为第一输出值[i+2]和第二输出值[i+2];其中,第一进位合并电路用于根据G[i+1]、P[i+1],以及G[i]和P[i]进行进位预处理。
第四预求和电路根据A[i+3]、B[i+3],以及G[i+2]和P[i+2]、G[i+1]、P[i+1]、G[i]和P[i],获取A[i+3]+B[i+3],以及A[i+3]+B[i+3]+1,分别作为第一输出值[i+3]和第二输出值[i+3];其中,第二进位合并电路用于根据G[i+2]和P[i+2,以及第一进位合并电路的结果进行进位预处理。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种加法器,其特征在于,包括:稀疏树进位电路、预求和电路和输出电路;所述稀疏树进位电路包括共用电路、第一进位电路和第二进位电路;其中,
所述共用电路分别与所述第一进位电路和所述第二进位电路连接;所述共用电路用于,根据第一输入值和第二输入值,生成共用进位项;所述第一进位电路用于,根据所述共用进位项生成第一进位输出值;所述第二进位电路用于,根据进位输入值以及所述共用进位项生成第二进位输出值;
所述预求和电路用于,将所述第一输入值和所述第二输入值相加得到第一输出值,将所述第一输入值、所述第二输入值和1相加得到第二输出值;
所述输出电路分别与所述第一进位电路、所述第二进位电路和所述预求和电路连接;所述输出电路用于,根据所述第一进位输出值,输出所述第一输出值或所述第二输出值作为求和的结果;所述输出电路还用于,根据所述第二进位输出值,输出所述第一输出值或所述第二输出值作为求和加1的结果;
所述输出电路包括:第一判断电路和第二判断电路;
所述第一判断电路分别与所述第一进位电路的输出端和所述预求和电路的输出端连接;所述第二判断电路分别与所述第二进位电路的输出端和所述预求和电路的输出端连接;
所述第一判断电路,用于判断所述第一进位输出值是否为1,当所述第一进位输出值不为1时,输出所述第一输出值作为所述求和的结果,当所述第一进位输出值为1时,输出所述第二输出值作为所述求和的结果;
所述第二判断电路,用于判断所述第二进位输出值是否为1,当所述第二进位输出值不为1时,输出所述第一输出值作为所述求和加1的结果,当所述第二进位输出值为1时,输出所述第二输出值作为所述求和加1的结果。
2.根据权利要求1所述的加法器,其特征在于,所述加法器还包括:预处理电路;
所述预处理电路的输入端接收第一输入值、第二输入值、进位输入值和0值,所述预处理电路的输出端和所述稀疏树进位电路连接。
3.根据权利要求2所述的加法器,其特征在于,所述预处理电路包括第一预处理电路和第二预处理电路;
所述第一预处理电路与所述共用电路连接,用于根据所述第一输入值和所述第二输入值,生成第一进位传播项和第一进位产生项,并将所述第一进位传播项和所述第一进位产生项发送给所述共用电路;
所述第二预处理电路与所述第二进位电路连接,用于根据所述进位输入值和0值生成第二进位传播项和第二进位产生项,并将所述第二进位传播项和所述第二进位产生项发送给所述第二进位电路。
4.根据权利要求3所述的加法器,其特征在于,所述共用电路用于根据所述第一进位传播项和第一进位产生项生成共用进位项;
所述第二进位电路用于根据所述第二进位传播项和所述第二进位产生项以及所述共用进位项生成所述第二进位输出值。
5.根据权利要求3所述的加法器,其特征在于,所述第一预处理电路具体用于,根据所述第一输入值A的每1个比特位A[i]和所述第二输入值B的每1个比特位B[i]生成所述第一进位传播项p[i]和所述第一进位产生项g[i];
其中,g[i]为A[i]和B[i]的相与,p[i]为A[i]和B[i]的相或,i的取值范围为0至n-1的正整数,n为所述第一输入值A和所述第二输入值B中较大数值的比特位数;
所述第二预处理电路具体用于,根据所述进位输入值c和0值生成所述第二进位传播项p0和所述第二进位产生项g0;
其中,g0为c和0的相与,p0为c和0的相或。
6.根据权利要求5所述的加法器,其特征在于,所述稀疏树进位电路用于根据所述第一输入值和所述第二输入值的每4个比特位生成一个所述第一进位输出值和一个所述第二进位输出值。
7.根据权利要求6所述的加法器,其特征在于,所述第一进位电路具体用于根据n位的所述第一输入值和所述第二输入值中的低3位生成的低3位第一进位传播项和低3位第一进位产生项生成一个所述第一进位输出值。
8.根据权利要求7所述的加法器,其特征在于,所述预求和电路根据所述第一输入值和所述第二输入值的每4个比特位生成一个所述第一输出值和一个所述第二输出值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710350866.9A CN108958703B (zh) | 2017-05-18 | 2017-05-18 | 加法器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710350866.9A CN108958703B (zh) | 2017-05-18 | 2017-05-18 | 加法器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108958703A CN108958703A (zh) | 2018-12-07 |
CN108958703B true CN108958703B (zh) | 2020-11-06 |
Family
ID=64461748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710350866.9A Active CN108958703B (zh) | 2017-05-18 | 2017-05-18 | 加法器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108958703B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101027633A (zh) * | 2004-09-30 | 2007-08-29 | 英特尔公司 | 使用混合加法器用于地址生成的装置和方法 |
CN101097509A (zh) * | 2006-06-26 | 2008-01-02 | 英特尔公司 | 稀疏树加法器 |
CN102255618A (zh) * | 2010-05-20 | 2011-11-23 | 中国人民解放军国防科学技术大学 | 一种低开销的高速加法器瞬态故障自动校正电路 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7188134B2 (en) * | 2001-09-28 | 2007-03-06 | Intel Corporation | High-performance adder |
US20040220994A1 (en) * | 2003-04-30 | 2004-11-04 | Intel Corporation | Low power adder circuit utilizing both static and dynamic logic |
US7509368B2 (en) * | 2005-05-09 | 2009-03-24 | Intel Corporation | Sparse tree adder circuit |
-
2017
- 2017-05-18 CN CN201710350866.9A patent/CN108958703B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101027633A (zh) * | 2004-09-30 | 2007-08-29 | 英特尔公司 | 使用混合加法器用于地址生成的装置和方法 |
CN101097509A (zh) * | 2006-06-26 | 2008-01-02 | 英特尔公司 | 稀疏树加法器 |
CN102255618A (zh) * | 2010-05-20 | 2011-11-23 | 中国人民解放军国防科学技术大学 | 一种低开销的高速加法器瞬态故障自动校正电路 |
Non-Patent Citations (1)
Title |
---|
Power-Delay Optimized 32 Bit Radix-4, Sparse-4 Prefix Adder;N. Poornima 等;《2014 Fifth International Conference on Signal and Image Processing》;20140110;第201-205页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108958703A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6601077B1 (en) | DSP unit for multi-level global accumulation | |
US11301213B2 (en) | Reduced latency multiplier circuitry for very large numbers | |
US20210349692A1 (en) | Multiplier and multiplication method | |
CN110689125A (zh) | 计算装置 | |
KR101603471B1 (ko) | 디지털 신호 프로세서들에서의 신호 처리를 위한 시스템 및 방법 | |
Thomas et al. | Comparative study of performance vedic multiplier on the basis of adders used | |
CN112540743B (zh) | 面向可重构处理器的有无符号乘累加器及方法 | |
CN112204517A (zh) | 多输入浮点加法器 | |
Raju et al. | Parallel prefix adders—A comparative study for fastest response | |
CN112653448A (zh) | 用于二进制标志确定的设备和方法 | |
CN108958703B (zh) | 加法器 | |
US9164728B1 (en) | Ternary DSP block | |
Feng et al. | A high performance FPGA implementation of 256-bit elliptic curve cryptography processor over GF (p) | |
CN108255463B (zh) | 一种数字逻辑运算方法、电路和fpga芯片 | |
US20160344373A1 (en) | Resource-saving circuit structures for deeply pipelined systolic finite impulse response filters | |
US20030065700A1 (en) | High-performance adder | |
Basiri et al. | Multiplication acceleration through quarter precision Wallace tree multiplier | |
CN113407153B (zh) | 16位加法器及其实现方法、运算电路及芯片 | |
EP1710689A1 (en) | Combining circuitry for multipliers | |
Ramezani et al. | An Efficient Implementation of Low-Latency Two-Dimensional Gaussian Smoothing Filter using Approximate Carry-Save Adder | |
Armand et al. | Low power design of binary signed digit residue number system adder | |
US6182105B1 (en) | Multiple-operand addition with intermediate saturation | |
CN113419703A (zh) | 33位加法器及其实现方法、运算电路及芯片 | |
Bai et al. | Design of 128-bit Kogge-Stone low power parallel prefix VLSI adder for high speed arithmetic circuits | |
US7720902B2 (en) | Methods and apparatus for providing a reduction array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |