二进制除法器技术详解
1. 除法基础与算法概述
在算术运算中,除法是最为复杂的操作之一。与其他基本算术运算不同,对于给定的被除数 (N) 和除数 (D),除法会产生两个结果:商 (Q) 和余数 (R),即 (N = D \times Q + R),且 (|R| < D)。可以将除法视为乘法的逆过程,但它在很多方面与乘法存在差异。乘法中所有部分积可以并行产生,而除法中每个商位是通过顺序的“试错”过程确定的。
在处理除法时,有几个关键要点需要考虑:
- 位宽假设 :大多数微处理器将除法视为乘法的逆过程,通常假设分子是乘法的结果,其位宽是分母和商的两倍。为避免复杂的商范围检查,我们采用更通用的假设,即 (Q \leq N) 且 (|R| \leq D),这样除 (N = 0) 外,无需进行商的有效范围检查。
- 有符号数处理 :处理有符号数时,最简单的方法是先将它们转换为无符号数,并通过对两个操作数的符号位进行异或或模 2 加法运算来确定结果的符号。不过,有些算法(如下面要讨论的不恢复除法)可以直接处理有符号数。在大多数硬件或软件系统中,假设余数和商具有相同的符号。例如,虽然 (234 \div 50 = 5) 余 (-16) 满足 (N = D \times Q + R),但通常更倾向于 (234 \div 50 = 4) 余 (34)。
常见的除法算法可分为线性收敛和二次收敛两类,具体如下:
| 收敛类型 | 算法名称 | 商位取值集合 |
| — | — | — |
| 线性收敛 | 二进制恢复除法、非执行除法、CORDIC 算法 | ({0, 1}
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



