是什么使非线性函数在硬件(例如FPGA)中的计算成本很高?

时间:2019-05-14 05:11:15

标签: hardware fpga

我读过一些文章,这些文章指出非线性函数(例如指数函数)在计算上是昂贵的。

我想知道是什么使它们在计算上变得昂贵。

当提到“计算上昂贵”时,是指所花费的时间还是所使用的硬件资源?

我曾尝试在Google上进行搜索,但找不到任何简单的解释。

1 个答案:

答案 0 :(得分:0)

不假装提供答案,而是从fpga中的功能开始。

通常,您只能使用加法器,乘法器和一些内存。你该怎么办?

线性函数-简单,只需一个乘法器和一个加法器。

非线性函数-那些是什么?多项式要么要求您花费大量乘数(多项式的阶数越高),要么甚至超越,要求您找到一些令人满意的近似值,并需要很多步骤。 即使简单的整数除法也无法在一个时钟中完成,在简单的实现中,需要的步数与被除数中的位数一样多。

另一种可能的解决方案是使用查找表。这对于一小部分争论非常有用。但是,如果要在广泛的参数范围内或更精确地找到函数值,最终将得到很大的查找表,以至于无法容纳必须使用的设备。

因此,这是主要成本-您将花费大量专用硬件资源(乘法器,用于查找表的内存),或者花费大量时间进行多步逼近算法或将结果精简为“一位”的算法迭代(整数除法,CORDIC等)。