用固定常数对整数进行硬件除法的最快方法是什么?

我有一个16位数字,我想除以100。假设它是50000。目标是获得500。但是,我试图避免在我的FPGA上使用推断的分频器,因为它们会破坏时序要求。结果不一定是准确的;一个近似值即可。

我已尝试将硬件乘以0.01,但不支持实数。我现在正在研究流水线分隔符,但我希望它不会成为现实。

道格·柯里

从概念上讲:乘以655(= 65536/100),然后向右移16位。当然,在硬件中,右移是免费的。

如果您需要更快的速度,则可以将除法作为除法之和除以2的幂(移位)。例如,

1/100 ~= 1/128                  = 0.0078125
1/100 ~= 1/128 + 1/256          = 0.01171875
1/100 ~= 1/128 + 1/512          = 0.009765625
1/100 ~= 1/128 + 1/512 + 1/2048 = 0.01025390625
1/100 ~= 1/128 + 1/512 + 1/4096 = 0.010009765625
etc.

在C代码中,上面的最后一个示例是:

uint16_t divideBy100 (uint16_t input)
{
    return (input >> 7) + (input >> 9) + (input >> 12);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用两个整数键存储信息的最快方法是什么?

来自分类Dev

用C调用常数复数的最快方法

来自分类Dev

找出整数的最后N位的最快方法是什么?

来自分类Dev

获取向量中整数频率的最快方法是什么?

来自分类Dev

单周期乘法和硬件除法是什么意思?

来自分类Dev

单周期乘法和硬件除法是什么意思?

来自分类Dev

用R删除文件最快的方法是什么

来自分类Dev

用Java在null中填充ArrayList的最快方法是什么?

来自分类Dev

用C组织数据的最快方法是什么?

来自分类Dev

用R删除文件最快的方法是什么

来自分类Dev

在Python中,整数除法向零舍入的好方法是什么?

来自分类Dev

查找大整数是否为10的幂的最快方法是什么?

来自分类Dev

在Clojure中将两个整数数组相加的最快方法是什么?

来自分类Dev

在C ++中将十六进制转换为整数的最快方法是什么?

来自分类Dev

找到适合整数的最大斐波那契数的最快方法是什么?

来自分类Dev

没有AVX(2)进行SIMD收集的最快方法是什么?

来自分类Dev

R中的性能:在矩阵中对行的元素进行排序的最快方法是什么?

来自分类Dev

熊猫-在滚动窗口中对大于x的值进行计数的最快方法是什么?

来自分类Dev

在C ++中从两个从属向量中进行随机选择的最快方法是什么?

来自分类Dev

对列表中数字的增加位数进行排序/过滤/求和的最快方法是什么

来自分类Dev

对大型字节数组进行排序和解包的最快方法是什么?

来自分类Dev

用Datetime通过ID获取列表的最后元素的最快方法是什么?

来自分类Dev

用Java将很小的字符串写入文件的最快方法是什么?

来自分类Dev

用C填充磁盘上的可用空间的最快方法是什么?

来自分类Dev

用Python复制2D数组最快的方法是什么?

来自分类Dev

用Java搜索子字符串最快的方法是什么?

来自分类Dev

用c#计算文本文件总行数最快的方法是什么?

来自分类Dev

用node.js异步完成任务列表的最快方法是什么?

来自分类Dev

用Python计算数组的幂集最快的方法是什么?

Related 相关文章

  1. 1

    用两个整数键存储信息的最快方法是什么?

  2. 2

    用C调用常数复数的最快方法

  3. 3

    找出整数的最后N位的最快方法是什么?

  4. 4

    获取向量中整数频率的最快方法是什么?

  5. 5

    单周期乘法和硬件除法是什么意思?

  6. 6

    单周期乘法和硬件除法是什么意思?

  7. 7

    用R删除文件最快的方法是什么

  8. 8

    用Java在null中填充ArrayList的最快方法是什么?

  9. 9

    用C组织数据的最快方法是什么?

  10. 10

    用R删除文件最快的方法是什么

  11. 11

    在Python中,整数除法向零舍入的好方法是什么?

  12. 12

    查找大整数是否为10的幂的最快方法是什么?

  13. 13

    在Clojure中将两个整数数组相加的最快方法是什么?

  14. 14

    在C ++中将十六进制转换为整数的最快方法是什么?

  15. 15

    找到适合整数的最大斐波那契数的最快方法是什么?

  16. 16

    没有AVX(2)进行SIMD收集的最快方法是什么?

  17. 17

    R中的性能:在矩阵中对行的元素进行排序的最快方法是什么?

  18. 18

    熊猫-在滚动窗口中对大于x的值进行计数的最快方法是什么?

  19. 19

    在C ++中从两个从属向量中进行随机选择的最快方法是什么?

  20. 20

    对列表中数字的增加位数进行排序/过滤/求和的最快方法是什么

  21. 21

    对大型字节数组进行排序和解包的最快方法是什么?

  22. 22

    用Datetime通过ID获取列表的最后元素的最快方法是什么?

  23. 23

    用Java将很小的字符串写入文件的最快方法是什么?

  24. 24

    用C填充磁盘上的可用空间的最快方法是什么?

  25. 25

    用Python复制2D数组最快的方法是什么?

  26. 26

    用Java搜索子字符串最快的方法是什么?

  27. 27

    用c#计算文本文件总行数最快的方法是什么?

  28. 28

    用node.js异步完成任务列表的最快方法是什么?

  29. 29

    用Python计算数组的幂集最快的方法是什么?

热门标签

归档