并行除法器 ,并行除法器的结构原理是什么?
1.可控加法/减法(CAS)单元
与阵列乘法器非常相似,阵列除法器也是一大型集成电路制成的并行计算部件。与早期的串行除法器相比,阵列除法器不仅需要较少的控制线路,而且提供了令人满意的高速运行速度。
阵列除法器有多种形式,如不恢复余数阵列除法器、补码阵列除法器等。
首先介绍可控加法/减法(CAS)该单元将用于并行除法流动逻辑阵列,它有四个输出端和四个输入端。当输入线P=0时,CAS加法操作;当P=1时,CAS操作减法。逻辑结构图:
CAS以下逻辑方程可以表示单元输入输出之间的关系:
Si=Ai⊕(Bi⊕P)⊕Ci
Ci+1=(Ai+Ci)·(Bi⊕P)+AiCi (2.32)
当P=0,方程式(2.等于公式(2).23)是我们熟悉的全加器(FA)的公式:
Si=Ai⊕Bi⊕Ci
Ci+1=AiBi+BiCi+AiCi
当P=1时,需要求差公式:
Si=Ai⊕Bi⊕Ci
Ci+1=AiBi+BiCi+AiCi (2.33)
其中Bi=Bi⊕1。
输入减法Ci称为借位输入,而Ci+1称为借位输出。
为说明CAS实现单元实际内部电路,方程式(2.32)变换可以得到以下形式:
Si=Ai⊕(Bi⊕P)⊕Ci
=AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP
Ci+1=(Ai+Ci)(Bi⊕P)+AiCi
=AiBiP+AiBiP+BiCiP+BiCiP+AiCi
在这两种表达式中,每一种都可以通过三级组合逻辑电路(包括反向器)来实现。所以每一个基本的CAS单元延迟时间为3T单元。
2.阵列除法器不恢复余数
假设所有被处理的数字都是正小数。
不恢复余数的除法是加减交替法。在不恢复余数的除法阵列中,每行的操作是加减取决于前一行输出的符号是否与被除数的符号一致。当减少不足时,与被除数相比,部分余数将改变符号。此时应产生商位0,除数先沿对角线右移,再加到下一行的部分余数。当部分余数不改变其符号时,即商位1,下一行的操作应为减法。下图显示了4位除4位不恢复余数阵列除法器的逻辑原理图。其中
被除数 x=0.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (双倍长)
除数 y=0.y1y2y3 商数 q=0.q1q2q3 余数 r=0.00r3r4r5r6 字长 n+1=4
图2.9 余数阵列除法器逻辑结构图
从图中可以看出,阵列除法器采用可控加法/减法(CAS)实现单位组成的流水阵列。推广到一般情况,一个(n+1)位除(n+1)位置的加减交替除法阵列由(n+1)2个CAS由单元组成,两个操作数(被除数和除数)均为正。
单用单元之间的互连n=3阵列表示。除数x是一个6位的小数(双长度值):
x=0.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
它由顶部一行和最右边对角线上的垂直输入线提供。
除数y是一个三位的小数:
y=0.y1y2y3
它沿着对角线方向进入这个阵列。这是因为除法所需部分余数的左移可以用以下等效操作来代替保持余数固定,并沿对角线右移除除数。
商q是三位小数:
q=0.q1q2q3
它在阵列的左边产生。
余数r是一个6位的小数:
r=0.00r3r4r5r6
它产生在阵列的最下一行。
上行执行的初始操作通常是减法。因此,上行控制线P固定为1。减法是通过2的补码操作实现的。此时,右端各CAS单元上的反馈线用作初始进位输入。每行左侧单元的进位输出决定了业务值。将当前的业务反馈给下一行,我们可以确定下一行的操作。由于进位输出信号表示当前部分余数的符号,因此将决定下一行操作是加减。
对于不恢复余数阵列除法器,在操作过程中,它们沿着每一行传播进位(或借位),所有行都串行连接到它们的进位链。CAS单元延迟时间为3T因此,对于一个单元,n对于n位不恢复余数阵列除法器,单元数量为(n+1)2.考虑到最大信号延迟,除法执行时间为
td=3(n+1)2T (2.34)
n是尾数位数。
[例20] x=0.101001, y=0.111, 求q =x÷y。
[解:]
[x]补=0.101001
[y]补=0.111 [-y]补=1.001
故得
商 q=q0.q1q2q3=0.101
余数 r=(0.00r3r4r5r6)=0.000110
我们可以看到,当被除数x和除数y送到阵列除法器可以看到3(n+1)T延迟时间后,除法器输出端获得稳定的商数q和余数r信号电平。与串行除法器相比,明显的优点是节省了复杂的控制线,提高了操作速度。