目录
一、问题背景
“多精度加法”就是在使用同一套运算电路实现多种精度加法的设计思想。
例如需要设计电路用以同时支持8/16/32/64 bit加法,假设SIMD宽度为128bit,该电路支持2个64bit加法、或者4个32bit加法/8个16bit加法/16个8bit加法。
为了实现上述电路,对每种计算精度都设计一套电路当然可以达到目的,即电路上设计2个64bit加法器,4个32bit加法器,8个16bit加法器,16和8bit加法器。
但是面积存在浪费。
二、设计方案
简单思考一下,如果硬件上存在2个8bit加法器,将一个加法器的最高进位连到另一个加法器的输入进位,即可实现16bit加法器。
在这个思路下,底层设计为8bit加法器情况下,可以通过配置进位方式支持任何8的整数倍加法运算,下图是一个实际的设计例子。
上图的加法器设计就是采用这种思路,不过底层实现是9bit加法器,因为为了支持有符号/无符号,以及溢出判断进行了符号扩展。
三、总结
对于进位不多的运算采用多精度设计是非常合适的;但是对于进位比较多的计算,