·上一文章:H.264中二进制化编码器的FPGA实现
·下一文章:采用FPGA实现100G光传送网
对j=0
上述迭代推导过程说明了除法过程是由一系列加法、减法或移位所组成,对于基数r=2,q…∈{0,1}。
当部分被除数rR(j)不够除数D减时,商qj+1为0,同时补充被除数的下一位,组成更大的部分被除数;如果够减,则该位商为1,在部分被除数rR(j)中减去除数D,然后补充被除数的下一位,直至被除数的每一位都使用到为止。
在除法进行过程中,可使用专门的数据比较器来比较部分被除数rR(j)是否比除数D大(nonperforming算法),或直接用部分被除数减去除数。方式1浪费了专门的数据比较电路,运算延迟加大,降低了运算速度。方式2,当完成了减法操作后,如果不够减,把除数加回到产生的差,以恢复原来余数(恢复余数法);或把产生的差留给下一次运算时再处理(不恢复余数法)。
2.1 不恢复余数阵列除法器
为简化起见,下文用A表示被除数,D表示除数,R表示余数。在恢复余数法中,如果余数R为负数,即不够减,则需要加上除数D,恢复成原来的余数,即R+D。然后,余数R和被除数A联合左移1位。此时余数为2(R+D)+ai,其中ai为A中的一位,被移入R中。随后,进入下一步运算。即从余数中减去除数D:(2(R+D)+ai)-D,有
(2(R+D)+ai)-D=2R+ai+D (5)
因此,当在某一步中,余数R为负,无需再加上除数D来恢复成原来的余数,只需在下一步中把恢复余数法中的减去除数D改成加上除数D,这种算法称为不恢复余数法。恢复余数除法需要2个步骤来确定1个商位,而不恢复余数法没有这个缺点。