流水线加法器的理解
CSDN上较好的文章分析
(理解图,配合着数据案例第一组G1
a1 0011_1100 b1 1100_0011
第二组G2
a2 0100_1100 b2 1110_0011
第三组G3
a3 1010_1010 b3 1111_1100)
因为Gn的同一个数据高低四位是需要分开计算的,低四位可能会产生进位,所以不一起计算
但是不同数据的高低四位是可以同时计算的
针对引用文章中的这一段话进行分析:
而如果采用流水线加法器序列(2),就得改装了,因为在T-2T秒的时候,低四位加法器的输入值会改变,观察上面流水线加法器时间序列(2)图,可以发现低四位加法器计算的是G2组的低四位,如果这时候还直接输出,则会在2T秒的时候接收到G2组的低四位,G1组的高四位组合值,这是错误的,我们期望得到G1组的高四位和第四位的组合值,所以在T秒G1组的低四位计算出来后,先存在寄存器中一个周期,在2T秒的时候释放出来,也就是我们的输出同步。
逐句分析
因为在T-2T秒的时候,低四位加法器的输入值会改变
确实会改变,因为在T-2T时,已经开始算G2了
如果这时候还直接输出,则会在2T秒的时候接收到G2组的低四位,G1组的高四位组合值,这是错误的,我们期望得到G1组的高四位和第四位的组合值,所以在T秒G1组的低四位计算出来后,先存在寄存器中一个周期,在2T秒的时候释放出来,也就是我们的输出同步
关键就是如果直接在其他周期产生值,会输出不匹配的结果,所以需要有一个寄存器暂时存储数据,再将对应的值放入对应的位置,相加
0-T秒 低四位加法器进行G1组的低四位计算,T秒时把结果存在寄存器一中
T-2T秒 低四位加法器进行G2组的低四位加法器,2T秒时寄存器一结果输出(为G1组低四位),再把G2组第四位结果存入寄存器一
2T-3T秒 低四位加法器进行G3组的低四位加法器,3T秒时寄存器一结果输出(为G1组低四位),再把G3组第四位结果存入寄存器
流水线加法器最重要的是输入输出同步,只有这样,某一个时刻(如T秒),我们输出的才是某一组数据的低四位和高四位和的组合,而不是交叉混乱的