特殊函数计算:使用 MAC 调用的方法与实践
1. 特殊函数计算背景与方法概述
在数字电路设计中,实现特殊函数的计算是一个重要的任务。传统的 CORDIC 算法能以适中的成本实现多种函数,但对于一些高精度函数,它需要大量迭代,导致流水线实现时延迟较大。随着新的 FPGA 系列(如 Spartan 或 Cyclone)中快速嵌入式阵列乘法器的出现,通过多项式逼近实现特殊函数成为了可行的选择。常见的多项式逼近方法有泰勒级数逼近和切比雪夫逼近。泰勒级数逼近对于某些函数(如 exp(x))收敛较快,但对于其他特殊函数(如 arctan(x)),需要很多乘积项才能达到足够的精度,这时切比雪夫逼近就能发挥优势,它可以缩短所需的迭代次数或乘积项数量。
1.1 切比雪夫逼近原理
切比雪夫逼近基于切比雪夫多项式,其定义为 (T_k(x) = \cos (k \times \arccos(x))),范围是 (-1 \leq x \leq 1)。虽然看起来像三角函数,但通过代数恒等式和操作可以将其写成真正的多项式。前几个多项式如下:
- (T_0(x) = 1)
- (T_1(x) = x)
- (T_2(x) = 2x^2 - 1)
- (T_3(x) = 4x^3 - 3x)
- (T_4(x) = 8x^4 - 8x^2 + 1)
- (T_5(x) = 16x^5 - 20x^3 + 5x)
- (T_6(x) = 32x^6 - 48x^4 + 18x^2 - 1)
切比雪夫多项式遵循迭代规则 (T_k(x) = 2xT_{k - 1}(x) - T_{k - 2}(x))((\forall k \
超级会员免费看
订阅专栏 解锁全文
6万+

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



