1. Kogge-Stone
Kogge-Stone 加法器是利用 Peter M. Kogge 和 Harold S.Stone 于 1972 年提出的一
种并行算法生成的一种树形加法器。此种加法器在树形加法器中,具有逻辑层数低和较
低的扇入扇出的特点,美中不足的是布线拥塞度高。
2. 超前进位加法器
(1)超前进位加法器
Si=pi⊕Ci−1 Ci=gi+Ci−1⋅gi C0=Cin Cout=Cin
进位项和产生项如下:
pi=Ai⊕Bi gi=Ai⋅Bi
重点要解决的是进位链问题,进位链表达式形似一阶递归。
Ci=gi+Ci−1⋅pi xi=ai⋅xi−1+bi
3. Koggle-Stone 并行算法
对于序列x1,x2,x3,⋯,xN,满足xi=f(xi−1,xi−2,⋯,xi−m)。一阶递归问题如下:
xi=ai⋅xi−1+bi
定义函数:
Q^(m,n)=j=n∑m(r=j+1∏mar)⋅br
此外:r=m+1∏mar=1
可得到如下结果:
x1=b1=Q^(1,1)
x2=a2⋅x1+b2=a2⋅b1+b2=Q^(2,1)
x3=a3⋅x2+b3=a3⋅a2⋅b1+a3⋅b2+b3=Q^(3,1)
x4=a4⋅x3+b4=⋯=Q^(4,1)
x5=a5⋅x4+b5=⋯=Q^(5,1)
x6=a6⋅x5+b6=⋯=Q^(6,1)
x7=a6⋅x6+b7=⋯=Q^(7,1)
x8=a8⋅x7+b8=⋯=Q^(8,1)
即可得到如下形式:
Q^(1,1)=x1=b1
Q^(2,1)=x2=a2⋅b1+b2=a2⋅Q^(1,1)+Q^(2,2)
Q^(3,1)=x3=a3⋅x2+b3=a3⋅a2⋅Q^(1,1)+Q^(3,2)
Q^(4,1)=x4=a4⋅x3+b4=a4⋅a3⋅Q^(2,1)+Q^(4,3)
Q^(5,1)=x5=a5⋅x4+b5=a5⋅a4⋅a3⋅a2⋅Q^(1,1)+Q^(5,2)
Q^(6,1)=x6=a6⋅x5+b6=a6⋅a5⋅a4⋅a3⋅Q^(2,1)+Q^(6,3)
Q^(7,1)=x7=a7⋅x6+b7=a7⋅a6⋅a5⋅a4⋅Q^(3,1)+Q^(7,4)
Q^(8,1)=x8=a8⋅x7+b8=a8⋅a7⋅a6⋅a5⋅Q^(4,1)+Q^(8,5)
树形图:

4. 树形结构
进位链
Ci=gi+Ci−1⋅pi xi=ai⋅xi−1+bi
8比特的加法器进位链并行计算的Kogge-Stone形式的树形结构如下图所示:
以此类推:16比特的加法器进位链并行计算的Kogge-Stone形式的树形结构如下图所示:

5. 16位加法器实现
-
仿真

-
RTL原理图

-
源代码及测试代码在资源界面,可下载获取
6. 参考资料
- 论文:A Parallel Algorithm for the Efficient Solution of a General Class of Recurrence Equations
- 知乎:纸上谈芯