问题描述
在浮点运算中,通常使用动态移位器来调整尾数。这可以通过桶形移位器来完成。可以使用 Mux 2:1
执行桶形移位器。由级联的 2:1 Mux 组成的桶形移位器的 2:1 Mux 数量为:
在 32 位桶形移位器的情况下,2:1 多路复用器的总数为 160。每个多路复用器具有 2 个与门、一个或门和一个非门。因此,执行 32 位桶形移位器的门总数为:
我认为这是一个非常昂贵的硬件资源成本,因此,我认为优化硬件利用率的一个好方法是通过定点乘法执行移位,因为移位相同,乘以 2 的幂,因此:
术语
可以存储在 ROM 或 LUT 中,并根据要移位的位数进行寻址。这样,只需要一个乘数。如果这个动态移位器的目的是用于 fp32 中的算术,那么只需要一个 24x24 位乘法器,即 48 位的结果,最后只得到结果的 MSB 位。是否有其他方法可以实现避免桶形移位器的动态移位器?我正在使用 Quartus II
编译器进行实验,使用桶形移位器的 ALM 必需品的数量比使用乘法器的要多得多。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)